在我的应用程序中,我使用groupby对dask数据帧执行聚合,按特定id排序。
但是我希望聚合维护分区划分,因为我打算与其他数据帧进行相同分区的连接。
import pandas as pd
import numpy as np
import dask.dataframe as dd
df =pd.DataFrame(np.arange(16), columns=['my_data'])
df.index.name = 'my_id'
ddf = dd.from_pandas(df, npartitions=4)
ddf.npartitions
# 4
ddf.divisions
# (0, 4, 8, 12, 15)
aggregated = ddf.groupby('my_id').agg({'my_data': 'count'})
aggregated.divisions
# (None, None)
有没有办法实现这个目标?
答案 0 :(得分:2)
您可能无法维护相同的分区,因为dask需要在分区之间聚合计数。您的数据必须以依赖于数据值的方式移动。
如果您希望确保输出包含多个分区,则可以选择使用split_out=
关键字agg