Python 对组应用操作而不进行聚合

Python 对组应用操作而不进行聚合,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我想对一个数据帧的多个组应用一个操作,然后用结果填充该组的所有值。以mean和np.cumsum为例,使用以下数据帧: df=pd.DataFrame({"a":[1,3,2,4],"b":[1,1,2,2]}) 看起来像这样 a b 0 1 1 1 3 1 2 2 2 3 4 2 df.groupby("b").mean().apply(np.cumsum) 现在我想按b对数据帧进行分组,然后取每组中a的平均值,然后将np.cumsum应用于平均值,然后用(组相关

我想对一个数据帧的多个组应用一个操作,然后用结果填充该组的所有值。以mean和np.cumsum为例,使用以下数据帧:

df=pd.DataFrame({"a":[1,3,2,4],"b":[1,1,2,2]})
看起来像这样

   a  b
0  1  1
1  3  1
2  2  2
3  4  2
df.groupby("b").mean().apply(np.cumsum)
现在我想按
b
对数据帧进行分组,然后取每组中
a
的平均值,然后将
np.cumsum
应用于平均值,然后用(组相关)结果替换
a
的所有值

对于前三个步骤,我将这样开始

   a  b
0  1  1
1  3  1
2  2  2
3  4  2
df.groupby("b").mean().apply(np.cumsum)

   a
b   
1  2
2  5
但我想得到的是

   a  b
0  2  1
1  2  1
2  5  2
3  5  2
有什么好办法可以解决这个问题吗?

您可以通过
系列
使用:

df1 = df.groupby("b").mean().cumsum()
print (df1)
   a
b   
1  2
2  5

df['a'] = df['b'].map(df1['a'])
print (df)
   a  b
0  2  1
1  2  1
2  5  2
3  5  2