我有一个dataframe,看起来像:
df
ID RY Month INCIDENT_NO
AB10 2019 7 3
AB10 2019 12 3
AB1286 2011 5 2
AB1286 2012 1 2
AB1286 2014 4 1
我正在尝试根据ID创建12个月的事件编号滚动总和。我正在编写如下代码:
df.groupby('ID').rolling(12,on='RY').INCIDENT_NO.sum()
它产生以下输出:
ID RY
AB10 2019 NaN
2019 NaN
AB1286 2011 NaN
2012 NaN
2014 NaN
...
WS7 2020 30.0
WS8 2016 NaN
WS9 2014 NaN
2018 NaN
2019 NaN
然而,它并没有产生预期的结果。例如,在ID AB10中,它出现了两次,应该出现一次。有人能告诉我哪里出错了吗?此外,我想显示每年的滚动总和(即使数据不存在)。例如,ID ws9没有任何RY 2020的数据,它应该显示零和
任何帮助都将不胜感激
我想你需要{}和{}:
如果数据中缺少年份和月份,则可以对数据执行
reindex
操作并创建pivot_table
我认为您应该首先通过分组“ID”、“RY”和“month”(每行代表每个月),确保每个ID上每个月的数据按正确的升序排列,然后添加滚动(12)
相关问题 更多 >
编程相关推荐