即使名字没有按
transforming
这个
expanding
函数..
>>> df.assign(cumAverage=df.groupby('name', sort=False)['value'].transform(lambda x: x.expanding().mean()))
name value cumAverage
0 Jack 0.0 0.000
1 Jack 1.0 0.500
2 Jack 0.5 0.500
3 Jack 1.0 0.625
4 Jill 0.0 0.000
5 Jill 2.0 1.000
# Unsorted dataframe.
df = pd.DataFrame({"name": ['Jack'] * 3 + ['Jill'] * 2 + ['Jack'], "value": [0, 1, .5, 0, 2, 1]})
>>> df.assign(cumAverage=df.groupby('name', sort=False)['value'].transform(lambda x: x.expanding().mean()))
name value cumAverage
0 Jack 0.0 0.000
1 Jack 1.0 0.500
2 Jack 0.5 0.500
3 Jill 0.0 0.000
4 Jill 2.0 1.000
5 Jack 1.0 0.625