Как применить маску построчно в полярах?Python

Программы на Python
Ответить
Anonymous
 Как применить маску построчно в полярах?

Сообщение Anonymous »

Предположим, мы хотели найти наибольшее количество последовательных единиц по строкам с указанным ниже df.

Код: Выделить всё

import polars as pl

df = pl.from_repr("""
┌─────┬─────┬─────┬─────┬─────┐
│ 0   ┆ 1   ┆ 2   ┆ 3   ┆ 4   │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ i64 ┆ i64 ┆ i64 │
╞═════╪═════╪═════╪═════╪═════╡
│ 0   ┆ 0   ┆ 0   ┆ 0   ┆ 0   │
│ 1   ┆ 0   ┆ 0   ┆ 1   ┆ 1   │
│ 0   ┆ 0   ┆ 1   ┆ 0   ┆ 1   │
│ 1   ┆ 0   ┆ 0   ┆ 0   ┆ 0   │
│ 1   ┆ 0   ┆ 1   ┆ 1   ┆ 1   │
│ 0   ┆ 0   ┆ 0   ┆ 0   ┆ 0   │
│ 1   ┆ 1   ┆ 1   ┆ 0   ┆ 0   │
│ 0   ┆ 0   ┆ 0   ┆ 0   ┆ 0   │
│ 1   ┆ 1   ┆ 0   ┆ 1   ┆ 1   │
│ 1   ┆ 1   ┆ 1   ┆ 0   ┆ 1   │
└─────┴─────┴─────┴─────┴─────┘
""")
В pandas мы можем сделать это:

Код: Выделить всё

m = df.to_pandas().eq(1)
m.cumsum(axis=1).sub(m.cumsum(axis=1).mask(m).ffill(axis=1).fillna(0)).max(axis=1)

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»