gpt4 book ai didi

Pandas - 计算不包括当前行的组的滚动平均值

转载 作者:行者123 更新时间:2023-12-04 02:52:05 28 4
gpt4 key购买 nike

举个例子:

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,但我想不通!

最佳答案

你需要 shiftbfill

df.groupby(['Platoon'])['Casualties'].apply(lambda x: x.rolling(2, 1).mean().shift().bfill())

关于Pandas - 计算不包括当前行的组的滚动平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54622062/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com