Перебирать группы, созданные с использованием group_by в столбце даты.Python

Программы на Python
Ответить
Anonymous
 Перебирать группы, созданные с использованием group_by в столбце даты.

Сообщение Anonymous »

Я новичок в Polars. Я хочу перебрать группы, созданные путем группировки по столбцу, где каждая ячейка этого столбца содержит список из двух дат. Для этого я использовал следующий (пример) фрагмент кода, и он отлично работал с версией Polars==0.20.18:

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

import polars as pl
import datetime

dt_str = [{'ts': datetime.date(2023, 7, 1), 'files': 'AGG_202307.xlsx',
'period_bins': [datetime.date(2023, 7, 1), datetime.date(2024, 1, 1)]},
{'ts': datetime.date(2023, 8, 1), 'files': 'AGG_202308.xlsx',
'period_bins': [datetime.date(2023, 7, 1), datetime.date(2024, 1, 1)]},
{'ts': datetime.date(2023, 11, 1), 'files': 'KFC_202311.xlsx',
'period_bins': [datetime.date(2023, 7, 1), datetime.date(2024, 1, 1)]},
{'ts': datetime.date(2024, 2, 1), 'files': 'KFC_202402.xlsx',
'period_bins': [datetime.date(2024, 1, 1), datetime.date(2024, 7, 1)]}]

dt = pl.from_dicts(dt_str)

df_groups = dt.group_by("period_bins")
print(df_groups.all().to_dicts())
Приведенный выше код не работает с Polars==1.x и выдает следующую ошибку:

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

thread 'polars-0' panicked at crates/polars-row/src/encode.rs:289:15:
not implemented: Date32
thread 'polars-1' panicked at crates/polars-row/src/encode.rs:289:15:
not implemented: Date32
Traceback (most recent call last):
File "testpad.py", line 18, in 
print(df_groups.all().to_dicts())
File "python3.10/site-packages/polars/dataframe/group_by.py", line 430, in all
return self.agg(F.all())
File "python3.10/site-packages/polars/dataframe/group_by.py", line 228, in agg
self.df.lazy()
File "python3.10/site-packages/polars/lazyframe/frame.py", line 2027, in collect
return wrap_df(ldf.collect(callback))
pyo3_runtime.PanicException: not implemented: Date32
Как исправить эту ошибку?


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

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

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

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

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

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