在没有聚合的情况下对组应用操作

时间:2017-07-17 18:19:49

标签: 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

现在,我想按b对数据框进行分组,然后在每个组中取a的平均值,然后将np.cumsum应用于均值,然后替换{{{{}}的所有值1}}由(依赖于组)结果。

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

a

给出了

df.groupby("b").mean().apply(np.cumsum)

但我想得到的是

   a
b   
1  2
2  5

任何想法如何以一种很好的方式解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以Series使用map

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