【发布时间】:2016-02-20 21:55:01
【问题描述】:
我有一个看起来像的熊猫数据框
Name Date Value
Sarah 11-01-2015 3
Sarah 11-02-2015 2
Sarah 11-03-2015 27
Bill 11-01-2015 42
Bill 11-02-2015 5
Bill 11-03-2015 15
.... (a couple hundred rows)
如何获得这些值的 30 天(或 x 天)滚动总和,由“名称”列中的任何人分列?理想的输出将具有与当前数据框相同的列,但不是将每一行的值作为该人当天的值,而是将其在过去 30 天内的值的累积总和。
我知道我能做到
result = pd.rolling_sum(df, 30)
获得整体的滚动总和。但是如何返回按“名称”列分组的滚动总和的数据框?
【问题讨论】:
-
就在几天前,有一个 bounty question 用于类似(几乎完全)的 python 滚动总和,但过去 7 天。我的回答建议使用 SQL 来执行此操作,并避免让 pandas 在内存中对其进行重组。如果您的数据框来自数据库,请考虑这样的路线。
-
啊,感谢@Parfait 的提醒!
标签: python pandas dataframe rolling-sum