-
Anonymous
Как применить маску построчно в полярах?
Сообщение
Anonymous »
Предположим, мы хотели найти наибольшее количество последовательных единиц по строкам с указанным ниже df.
Код: Выделить всё
data = {0: [0, 1, 0, 1, 1, 0, 1, 0, 1, 1],
1: [0, 0, 0, 0, 0, 0, 1, 0, 1, 1],
2: [0, 0, 1, 0, 1, 0, 1, 0, 0, 1],
3: [0, 1, 0, 0, 1, 0, 0, 0, 1, 0],
4: [0, 1, 1, 0, 1, 0, 0, 0, 1, 1]}
Ввод df (панды):
Код: Выделить всё
0 1 2 3 4
0 0 0 0 0 0
1 1 0 0 1 1
2 0 0 1 0 1
3 1 0 0 0 0
4 1 0 1 1 1
5 0 0 0 0 0
6 1 1 1 0 0
7 0 0 0 0 0
8 1 1 0 1 1
9 1 1 1 0 1
В pandas мы можем сделать это:
Код: Выделить всё
m = df.eq(1)
m.cumsum(axis=1).sub(m.cumsum(axis=1).mask(m).ffill(axis=1).fillna(0)).max(axis=1)
Код: Выделить всё
to get the following result
0 0.0
1 2.0
2 1.0
3 1.0
4 3.0
5 0.0
6 3.0
7 0.0
8 2.0
9 3.0
dtype: float64
Как то же самое можно было бы сделать в полярах?
Подробнее здесь:
https://stackoverflow.com/questions/798 ... -in-polars
1772439342
Anonymous
Предположим, мы хотели найти наибольшее количество последовательных единиц по строкам с указанным ниже df.
[code]data = {0: [0, 1, 0, 1, 1, 0, 1, 0, 1, 1],
1: [0, 0, 0, 0, 0, 0, 1, 0, 1, 1],
2: [0, 0, 1, 0, 1, 0, 1, 0, 0, 1],
3: [0, 1, 0, 0, 1, 0, 0, 0, 1, 0],
4: [0, 1, 1, 0, 1, 0, 0, 0, 1, 1]}
[/code]
Ввод df (панды):
[code] 0 1 2 3 4
0 0 0 0 0 0
1 1 0 0 1 1
2 0 0 1 0 1
3 1 0 0 0 0
4 1 0 1 1 1
5 0 0 0 0 0
6 1 1 1 0 0
7 0 0 0 0 0
8 1 1 0 1 1
9 1 1 1 0 1
[/code]
В pandas мы можем сделать это:
[code]m = df.eq(1)
m.cumsum(axis=1).sub(m.cumsum(axis=1).mask(m).ffill(axis=1).fillna(0)).max(axis=1)
[/code]
[code]to get the following result
0 0.0
1 2.0
2 1.0
3 1.0
4 3.0
5 0.0
6 3.0
7 0.0
8 2.0
9 3.0
dtype: float64
[/code]
Как то же самое можно было бы сделать в полярах?
Подробнее здесь: [url]https://stackoverflow.com/questions/79898900/how-to-apply-a-mask-row-by-row-in-polars[/url]