【发布时间】:2021-03-03 19:26:55
【问题描述】:
我需要计算数据框中每个组的滞后均值。这就是我的 df 的样子:
name value round
0 a 5 3
1 b 4 3
2 c 3 2
3 d 1 2
4 a 2 1
5 c 1 1
0 c 1 3
1 d 4 3
2 b 3 2
3 a 1 2
4 b 5 1
5 d 2 1
我想根据name 和round 计算列value 的滞后均值。也就是说,对于第 3 轮中的名称 a,我需要 value_mean = 1.5(因为 (1+2)/2)。当然,当round = 1时会有nan值。
我试过这个:
df['value_mean'] = df.groupby('name').expanding().mean().groupby('name').shift(1)['value'].values
但它给出了一个废话:
name value round value_mean
0 a 5 3 NaN
1 b 4 3 5.0
2 c 3 2 3.5
3 d 1 2 NaN
4 a 2 1 4.0
5 c 1 1 3.5
0 c 1 3 NaN
1 d 4 3 3.0
2 b 3 2 2.0
3 a 1 2 NaN
4 b 5 1 1.0
5 d 2 1 2.5
有什么办法,请问我该怎么做?我发现了这个,但它似乎与我的问题无关:Calculate the mean value using two columns in pandas
【问题讨论】:
标签: pandas