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
使用级别为0的^{} 和
drop=True
删除MultiIndex
的第一级,因为与原始索引值对齐,所以更安全:如果仅分配numpy数组是可能的,则值添加不正确:
相关问题 更多 >
编程相关推荐