python - 如何在 dask 中执行分组聚合后保留分区

标签 python pandas dataframe distributed dask

在我的应用程序中,我使用 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)

有没有办法做到这一点?

最佳答案

您可能无法维护相同 分区,因为 dask 需要聚合分区之间的计数。您的数据必须以取决于数据值的方式移动。

如果您希望确保输出有多个分区,那么您可以选择使用 split_out= 关键字来agg

关于python - 如何在 dask 中执行分组聚合后保留分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48832364/

相关文章:

python - 如何为时间序列数据创建线性回归模型?

python - 如何在保留其他列的同时对 Pandas 数据框中的特定列执行操作

r - 将一列与另一个包含多个条目的 df 中的另一列进行比较

Python 相当于 excel 嵌套 if 用于过滤 Pandas DataFrame 行的条件

python - Spyder 未启动

javascript - JSON XMLHttpRequest POST/PUT 到 Cherrypy 应用程序 - 没有获取数据

python - Ubuntu 中的 Kivy 安装错误

python - 如何在 PyQt 中隐藏布局?

python - 按索引从 Pandas 系列中删除元素

python - 为什么在 Pandas 中使用 "=="返回一个系列而不是 bool ?