在python中的分区上滚动总和

问题描述 投票:0回答:1

代码:

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

错误

TypeError: incompatible index of inserted column with frame index

[请帮助查明代码中的错误。一种替代方法也将不胜感激。

python pandas dataframe
1个回答
1
投票

用途:

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)

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
© www.soinside.com 2019 - 2024. All rights reserved.