【发布时间】:2017-07-15 03:07:25
【问题描述】:
我有一些这样的数据:
date, group_name, value
-------------------
2017-07-01, A, 10
2017-07-05, A, 4
2017-07-05, B, 21
我想计算每组的滚动 7 天总和,但只有当那一天的值 > 0 时,每组的数据才有记录。
我希望输出看起来像:
日期、组名、值、7d_sum_of_value -------------------------------------- 2017-07-01, A, 10, 10 2017-07-05, A, 4, 14 2017-07-05, B, 21, 21【问题讨论】:
-
你如何定义每 7 天?例如,是从月初开始每 7 天,还是每 7 天都在特定周内的每 7 天?
-
添加那些缺少的
index和groupbyrollingsum -
@joceratops,我将 7 天定义为当天和前 6 天。
-
@Wen,你能举一个添加缺失索引的例子吗?我以高基数对多列进行分组,约 700 万个独特排列。谢谢!
-
df.groupby('group_name')['value'].apply(lambda x:pd.rolling_sum(x.resample("1d"), 7, min_periods=1)).reset_index()andmergewith originaldf你需要我写完作为答案吗?