首页 > 解决方案 > pandas 统计过去 7 天的总数,但 groupby 的日期不同

问题描述

我有这个数据框:

    date        state   cases flag
0   2020-03-13  Alabama 6     0
1   2020-03-14  Alabama 12    0
2   2020-03-15  Alabama 23    0
3   2020-03-16  Alabama 29    1
4   2020-03-17  Alabama 39    0

我想从标志列 = 1 的日期算起过去 7 天的案例数。我尝试了对此处找到的其他答案的一些变体,但没有运气。我有多个州的数据,需要按州分组。

输出应如下所示:

state     count
Alabama   70

标签: pythonpandasdate

解决方案


您需要 7 天的滚动总和(假设我们有所有州的所有数据):

res_df = df[['state', 'cases']].groupby('state')['cases'].apply(lambda x: x.rolling(7, 1).sum().iloc[-1])
print(res_df)

推荐阅读