Поляры – используйте is_in() с длительностьюPython

Программы на Python
Ответить
Anonymous
 Поляры – используйте is_in() с длительностью

Сообщение Anonymous »

У меня есть фрейм данных со столбцом, содержащим набор длительностей, например 5 м, 15 м и т. д.

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

df = pl.DataFrame({
"duration_m": [5, 15, 30]
})
df = df.with_columns(
duration = pl.duration( minutes = pl.col("duration_m"))
)
df

shape: (3, 2)
┌────────────┬──────────────┐
│ duration_m ┆ duration     │
│ ---        ┆ ---          │
│ i64        ┆ duration[ns] │
╞════════════╪══════════════╡
│ 5          ┆ 5m           │
│ 15         ┆ 15m          │
│ 30         ┆ 30m          │
└────────────┴──────────────┘
Я хочу отфильтровать этот фрейм данных, чтобы возвращать только строки длиной 5 или 15 м, используя is_in().
Однако, когда я это делаю:

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

my_durations = [pl.duration(minutes=5), pl.duration(minutes=15)]
df.filter(pl.col("duration").is_in(my_durations))
Я получаю:

InvalidOperationError: 'is_in' не может проверить наличие Object("object", Some(object- реестр)) значения в данных продолжительности (микросекунды)

Это не ошибка (но, очевидно, это не то, что я хочу):

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

df.filter(pl.col("duration").is_in(pl.duration(minutes=5)))
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/771 ... -durations
Ответить

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

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

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

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

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