gpt4 book ai didi

python - 使用 lambda 时聚合失败

转载 作者:行者123 更新时间:2023-12-04 12:04:02 26 4
gpt4 key购买 nike

我正在尝试将我的应用程序的一部分从 Pandas 移植到 dask,并且在 dask DataFrame 的 groupby 中使用 lamdba 函数时遇到了障碍。

import dask.dataframe as dd

dask_df = dd.from_pandas(pandasDataFrame, npartitions=2)
dask_df = dask_df.groupby(
['one', 'two', 'three', 'four'],
sort=False
).agg({'AGE' : lambda x: x * x })

此代码失败并出现以下错误:
ValueError: unknown aggregate lambda
我的 lambda 函数在我的应用程序中比这里更复杂,但 lambda 的内容并不重要,错误总是相同的。在 documentation 中有一个非常相似的例子,所以这实际上应该有效,我不确定我错过了什么。

相同的 groupby 在 Pandas 中工作,但我需要提高它的性能。

我在 python 3.5 中使用 dask 0.12.0。

最佳答案

来自 the Dask docs :
“Dask 支持 Pandas 的聚合语法,在同一组上运行多个归约。直接支持常见的归约,例如 max、sum、list 和 mean。
Dask 还支持用户定义的缩减。为了确保适当的性能,必须根据三个独立的步骤来制定减少。块步骤独立地应用于每个分区并减少分区内的数据。聚合组合了分区内结果。可选的 finalize 步骤组合了从聚合步骤返回的结果,并应返回单个最终列。为了让 Dask 识别减少,它必须作为 dask.dataframe.Aggregation 的实例传递。
例如, sum 可以实现为:

custom_sum = dd.Aggregation('custom_sum', lambda s: s.sum(), lambda s0: s0.sum())
df.groupby('g').agg(custom_sum)

关于python - 使用 lambda 时聚合失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40845169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com