【发布时间】:2020-11-24 01:14:02
【问题描述】:
我使用 pivot_table 命令创建了一个数据框。数据框有 351 行和 120 列。数据框如下所示:
RY 2011 ... 2020
Month 1 2 3 4 5 6 7 8 9 10 ... 3 4 5 6 7 8 9 10 11 12
ID
AB10 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
AB1286 0 0 0 0 2 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
AB1951 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
AB2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
AB2338 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
现在我想计算 ID 的 12 个月的滚动总和。我写了以下命令来计算滚动和:
df.groupby('ID').rolling(12,on='Month').sum()
但是,它给出了以下错误:
ValueError: invalid on specified as Month, must be a column (of DataFrame), an Index or None
谁能帮我解决这个问题?
【问题讨论】:
-
您原来的
pandas.DataFrame列是什么样的?是["Year", "Month", "ID", "value"]吗?使用该布局来获得所需的结果可能更简单。 -
@AlexFortin 是的,实际数据框是 ["Year", "Month", "ID", "value"]。我转换为数据透视表的原因是我想获得从 2011 年到 2020 年期间的滚动总和。很少有 ID 没有几年或几个月的数据
标签: python python-3.x pandas