Groupby.transform在dask datafram中不起作用

2024-06-27 18:47:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是数据帧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

我知道在熊猫数据帧中我可以使用:

^{pr2}$

获得:

0     6
1     6
2    36
3    36
4    36
5    36

我想用同样的数据帧它通常使用与pandas dataframe相同的函数,但在本例中给出了以下错误:

AttributeError: 'SeriesGroupBy' object has no attribute 'transform'

它可能是两种情况之一,要么是dask不支持它,要么是因为我使用的是python3?在

我尝试了以下代码:

AID.groupby('AID')['ANumOfF'].sum()

但这只给了我每一组的总和如下:

AID
1     6
2    36

我需要它像上面那样,在每一行重复一个和。我的问题是,如果不支持转换,是否还有其他方法可以实现相同的结果?在


Tags: 数据函数nodataframepandasobject错误attributeerror
1条回答
网友
1楼 · 发布于 2024-06-27 18:47:26

我想你可以用^{}

s = AID.groupby('AID')['ANumOfF'].sum()
AID = AID.set_index('AID').drop('ANumOfF', axis=1).join(s).reset_index()
print (AID)
   AID FID  ANumOfF
0    1   X        6
1    1   Y        6
2    2   Z       36
3    2   A       36
4    2   X       36
5    2   B       36

或使用^{}通过聚合Series或{}更快地解决:

^{pr2}$

相关问题 更多 >