【发布时间】:2019-06-18 15:45:10
【问题描述】:
我正在尝试获取相同 ID 的过去 3 行的滚动总和,但滞后 1 行。我的尝试看起来像下面的代码,我是列。必须有一种方法可以做到这一点,但这种方法似乎不起作用。
for i in df.columns.values:
df.groupby('Id', group_keys=False)[i].rolling(window=3, min_periods=2).mean().shift(1)
id dollars lag
1 6 nan
1 7 nan
1 6 6.5
3 7 nan
3 4 nan
3 4 5.5
3 3 5
5 6 nan
5 5 nan
5 6 5.5
5 12 5.67
5 7 8.3
【问题讨论】:
-
向这个问题添加一些示例数据和预期输出。
-
检查与应用类似
df.groupby('Id', group_keys=False)[i].apply(lambda x : x.rolling(window=3, min_periods=2).mean().shift(1)) -
没用,TabError ;缩进中制表符和空格的不一致使用
-
您的标题显示“sum”,但您的代码显示“mean”。您能否提供示例数据并描述预期输出?
标签: python pandas pandas-groupby rolling-sum