我想对数据框的多个组应用操作,然后按结果填充该组的所有值。让我们以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
任何想法如何以一种很好的方式解决这个问题?
答案 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