拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何根据列中的唯一值将dask资料帧拆分为多个磁区?

如何根据列中的唯一值将dask资料帧拆分为多个磁区?

白鹭 - 2022-03-04 1985 0 0

我有一个日期列一个DASK资料帧doc_date是在范围12-1-20211-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=Truedask.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 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *