不用groupby的dask dataframe聚合(ddf.agg(['min','max'])?

1 投票
1 回答
32 浏览
提问于 2025-04-12 23:26

Pandas定义了dataframe.agg这个功能,但DASK只定义了dask_dataframe.groupby.agg。

有没有办法在DASK中对某一列进行多种聚合,而不使用groupby呢?

我知道describe()可以提供列的统计信息,这解决了一个特定的问题,但我想要一个更通用的解决方案。

我第一次尝试是创建一个只有一个值的虚拟列,然后用groupby(['min','max'])来处理。结果是可以的,但生成的dask_DF只有一行,且是多重索引的列,这样DASK就无法进行转置或堆叠(这个功能还没实现,除非我操作错了)。我希望能在DASK中保持所有数据,尽管结果表足够小,可以单独用Pandas处理,而且处理起来也很简单,但我在考虑如何在一般情况下做到这一点,特别是当从本地结果导出再重新导入到Pandas时,这样做是不可行的。

1 个回答

2

dask.series.reduction 可能能解决你的问题,具体可以查看 文档

如果我理解得没错,关键在于构建相关的函数:aggregatecombine

更新一下:还有 dask.dataframe.reduction,可以查看 文档

撰写回答