【发布时间】:2022-01-12 20:26:07
【问题描述】:
我想使用 Dask 进行表单的操作
df.groupby(some_columns).apply(some_function)
some_function() 可以计算一些汇总统计数据、执行时间序列预测,甚至只是将组保存到 AWS S3 中的单个文件中。
Dask documentation 声明(以及其他几个 StackOverflow 答案引用) groupby-apply 不适合聚合:
Pandas 的 groupby-apply 可用于应用任意函数,包括导致每组一行的聚合。 Dask 的 groupby-apply 将对每个分区组对应用一次 func ,因此当 func 是一个缩减时,您最终会得到每个分区组对一行。要使用 Dask 应用自定义聚合,请使用 dask.dataframe.groupby.Aggregation。
尚不清楚Aggregation 是否支持对多列的操作。然而,this DataFrames tutorial 似乎完全符合我的建议,大致为some_function = lambda x: LinearRegression().fit(...)。该示例似乎按预期工作,到目前为止,我同样没有遇到任何问题,例如some_function = lambda x: x.to_csv(...).
在什么条件下我可以期望some_function 将被传递到组的所有行?如果这永远无法保证,有没有办法打破LinearRegression 的例子?最重要的是,处理这些用例的最佳方式是什么?
【问题讨论】:
标签: dask dask-dataframe