【发布时间】:2021-08-14 18:46:12
【问题描述】:
我正在尝试使用 Python 为以下数据框计算基于人名的订单数量和收入的 12 个月滚动总和:
df = pd.DataFrame( columns = ['Name','Month','Orders','Revenue'])
df['Name'] = ['Ava','Ava','Ava','Baptiste','Baptiste','Baptiste','Baptiste','Cam','Cam']
df['Month'] =['2019-07','2020-04','2021-03','2020-03','2020-10','2021-03','2021-05','2020-01','2021-03']
df['Orders'] =[2,12,4,5,9,10,3,4,5]
df['Revenue'] = [10,25,15,5,8,10,12,20,5]
为了给出以下输出:
df['Rolling 12 Month Orders'] = [2,14,16,5,14,24,22,4,5]
df['Rolling 12 Month Revenue'] = [10,35,40,5,13,23,30,20,5]
滚动总和应将过去 12 个月按名称列分组的所有总数相加。
我尝试了以下方法:
df['Rolling 12 Month Orders'] = df.groupby(['Name','Month'])['Orders'].rolling(12).sum()
但它没有给我预期的结果。
【问题讨论】:
-
您好,您对我下面的回答有任何疑问吗?请让 mw 知道,我只是注意到您接受了答案,然后取消了它。我很乐意提供帮助。虽然我在发布之前检查了最后的代码。
-
它适用于小型数据集,但是对于较大的数据集需要一段时间,我打算使用它,所以决定等待,看看是否有替代方案。
标签: python pandas pandas-groupby rolling-computation