【发布时间】:2021-02-12 00:07:33
【问题描述】:
我可能做错了什么,但我试图在对数据框进行分组后计算滚动平均值(为简单起见,我们在此示例中使用 sum)。直到这里一切正常,但是当我应用班次时,我发现值溢出到下面的组中。请参见下面的示例:
import pandas as pd
df = pd.DataFrame({'X': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'Y': [1, 2, 3, 1, 2, 3, 1, 2, 3]})
grouped_df = df.groupby(by='X')['Y'].rolling(window=2, min_periods=2).sum().shift(periods=1)
print(grouped_df)
预期结果:
X
A 0 NaN
1 NaN
2 3.0
B 3 NaN
4 NaN
5 3.0
C 6 NaN
7 NaN
8 3.0
我实际得到的结果:
X
A 0 NaN
1 NaN
2 3.0
B 3 5.0
4 NaN
5 3.0
C 6 5.0
7 NaN
8 3.0
您可以看到 A2 的结果被传递给 B3,而 B5 的结果被传递给 C6。我不确定这是预期的行为,我做错了什么或者熊猫中有一些错误?
谢谢
【问题讨论】: