Python:在数据透视表上应用滚动求和

2024-09-29 17:19:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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

有人能帮我解决这个问题吗


Tags: 数据命令iddfontablepivot总和
2条回答

“ID”包含什么?您是否尝试过使用转换透视表

df.T.groupby('ID').rolling(12,on='Month').sum()

在创建透视表之前,请尝试运行该代码。但是,请确保首先创建一个datetime列,其中包含以下内容:

df['Date'] = pd.to_datetime(df['Year'].astype(str) + '-' + df['Month'].astype(str) + '-01')

然后:

df.groupby('ID').rolling(12,on='Date').sum()

相关问题 更多 >

    热门问题