Pandas 熊猫-计算不包括当前行的组的滚动平均值
例如:Pandas 熊猫-计算不包括当前行的组的滚动平均值,pandas,pandas-groupby,Pandas,Pandas Groupby,例如: data = {'Platoon': ['A','A','A','A','A','A','B','B','B','B','B','C','C','C','C','C'], 'Date' : [1,2,3,4,5,6,1,2,3,4,5,1,2,3,4,5], 'Casualties': [1,4,5,7,5,5,6,1,4,5,6,7,4,6,4,6]} df = pd.DataFrame(data) 这用于计算滚动平均值,包括当前行: df['avg']
data = {'Platoon': ['A','A','A','A','A','A','B','B','B','B','B','C','C','C','C','C'],
'Date' : [1,2,3,4,5,6,1,2,3,4,5,1,2,3,4,5],
'Casualties': [1,4,5,7,5,5,6,1,4,5,6,7,4,6,4,6]}
df = pd.DataFrame(data)
这用于计算滚动平均值,包括当前行:
df['avg'] = df.groupby(['Platoon'])['Casualties'].transform(lambda x: x.rolling(2, 1).mean())
其中:
Platoon Date Casualties Avg
A 1 1 1.0
A 2 4 2.5
A 3 5 4.5
A 4 7 6.0
......
我想得到的是:
Platoon Date Casualties Avg
A 1 1 1.0
A 2 4 1.0
A 3 5 2.5
A 4 7 4.5
......
我想我可以在这里使用shift,但我想不出来 您需要
shift
和bfill
df.groupby(['Platoon'])['Casualties'].apply(lambda x: x.rolling(2, 1).mean().shift().bfill())