我有一个日期列一个DASK资料帧doc_date
是在范围12-1-2021
来1-2-2022
。我想重新磁区并将此 dask 资料帧拆分为 26 个磁区,以便每个磁区在上述日期范围内只有 1 个日期。
这是我尝试过的:
doc_dates = [dt.strftime("%Y-%m-%d") for dt in pd.date_range('2021-12-08', '2022-01-02')]
predictions_df = predictions_df.set_index('doc_date')
predictions_df = predictions_df.repartition(divisions=sorted(doc_dates))
但我似乎收到此错误:
ValueError: left side of old and new divisions are different
uj5u.com热心网友回复:
问题是您需要传递compute=True
到dask.dataframe.set_index
以确保资料实际上按日期排序,然后才能向repartition
命令提供排序的日期串列:
predictions_df = predictions_df.set_index('doc_date', compute=True)
predictions_df = predictions_df.repartition(divisions=sorted(doc_dates))
或者,您可以使用divisions
自变量dask.dataframe.set_index
:
predictions_df = predictions_df.set_index(
'doc_date',
divisions=sorted(doc_dates),
compute=True,
)
0 评论