python中分区上的滚动求和

2024-04-27 03:33:36 发布

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

代码:

data['rolling_sum'] = data.groupby(['User_id'])['Amount'].rolling().sum()

错误

TypeError: incompatible index of inserted column with frame index

请帮忙找出代码中的错误。另请提供一种替代方法


Tags: of代码iddataindex错误columnamount
1条回答
网友
1楼 · 发布于 2024-04-27 03:33:36

使用级别为0的^{}drop=True删除MultiIndex的第一级,因为与原始索引值对齐,所以更安全:

data = pd.DataFrame({
         'Amount':[5,3,6,9,2,4],
         'User_id':list('aababb')
})
data['rolling_sum1'] = data.groupby(['User_id'])['Amount'].rolling(2).sum().reset_index(level=0, drop=True)

如果仅分配numpy数组是可能的,则值添加不正确:

data['rolling_sum2'] = data.groupby(['User_id'])['Amount'].rolling(2).sum().values
print (data)
   Amount User_id  rolling_sum1  rolling_sum2
0       5       a           NaN           NaN
1       3       a           8.0           8.0
2       6       b           NaN          12.0
3       9       a          12.0           NaN
4       2       b           8.0           8.0
5       4       b           6.0           6.0

相关问题 更多 >