【发布时间】:2017-04-04 12:56:52
【问题描述】:
我正在使用以下 dask.dataframe AID:
AID FID ANumOfF
0 1 X 1
1 1 Y 5
2 2 Z 6
3 2 A 1
4 2 X 11
5 2 B 18
我知道在我可以使用的 pandas 数据框中:
AID.groupby('AID')['ANumOfF'].transform('sum')
得到:
0 6
1 6
2 36
3 36
4 36
5 36
我想对 dask.dataframes 使用相同的功能,它通常使用与 pandas 数据帧相同的功能,但在这种情况下会出现以下错误:
AttributeError: 'SeriesGroupBy' object has no attribute 'transform'
它可能是两件事之一,要么是 dask 不支持它,要么是因为我使用的是 python 3?
我尝试了以下代码:
AID.groupby('AID')['ANumOfF'].sum()
但这只是给了我这样的每个组的总和:
AID
1 6
2 36
我需要像上面那样在每一行中重复一个总和。我的问题是,如果不支持转换,还有其他方法可以达到相同的结果吗?
【问题讨论】:
-
嗨 Ed,在链接中它说上面的内容应该适用于你有两列,而我确实有两列,它确实适用于 pandas 数据框。我的问题是我有一个 dask 数据框,它似乎不支持转换。有没有办法在不使用变换的情况下实现变换?
-
我没有使用 dask dfs 的经验,这行得通吗:
AID.groupby('AID')[['ANumOfF']].transform('sum')?这在熊猫土地上将强制调用单列 df -
截至 2017 年 4 月,Dask.dataframe groupby 对象不支持 transform 方法。您可能想raise an issue 请求它。
-
EdChum,这适用于熊猫数据框是的。但是我的数据太大了,我无法使用 pandas,因此已切换到 dask。
标签: python python-3.x pandas dataframe dask