如何对两个日期之间的最后7天熊猫进行求和



这是我的原始数据

原始数据这里是数据(包括类型)后,我添加列'Date_2wks_Ago'在Pandas

输入图片描述

我想添加一个新的列'Rainfall_Last7Days',用于计算上周每天的总降雨量。

所以(忽略其他不相关的列)它看起来像这样…

理想数据集

有人知道如何在Pandas中做到这一点吗?

我的数据大约有1000个观测值,所以不是很大。

我想你要找的是rolling()函数

本节重新创建表

的简化版本
import pandas as pd
import numpy as np

# Create df
rainfall_from_9am=[4.6
,0.4
,3.6
,3.5
,3.2
,5.5
,2.2
,1.3
,0
,0
,0.04
,0
,0
,0
,0.04
,0.4]
date=['2019-02-03'
,'2019-02-04'
,'2019-02-05'
,'2019-02-06'
,'2019-02-07'
,'2019-02-08'
,'2019-02-09'
,'2019-02-10'
,'2019-02-11'
,'2019-02-12'
,'2019-02-13'
,'2019-02-14'
,'2019-02-15'
,'2019-02-16'
,'2019-02-17'
,'2019-02-18'
]
# Create df from list
df=pd.DataFrame({'rainfall_from_9am':rainfall_from_9am
,'date':date
})

这部分计算当前和前6条记录的降雨量滚动总和。

df['rain_last7days']=df['rainfall_from_9am'].rolling(7).sum()
print(df)

输出:

date  rainfall_from_9am  rain_last7days
0   2019-02-03               4.60             NaN
1   2019-02-04               0.40             NaN
2   2019-02-05               3.60             NaN
3   2019-02-06               3.50             NaN
4   2019-02-07               3.20             NaN
5   2019-02-08               5.50             NaN
6   2019-02-09               2.20           23.00
7   2019-02-10               1.30           19.70
8   2019-02-11               0.00           19.30
9   2019-02-12               0.00           15.70
10  2019-02-13               0.04           12.24
11  2019-02-14               0.00            9.04
12  2019-02-15               0.00            3.54
13  2019-02-16               0.00            1.34
14  2019-02-17               0.04            0.08
15  2019-02-18               0.40            0.48

注意这个输出与你原来的问题中的例子不完全匹配。你能帮忙验证一下你所追求的正确逻辑吗?

最新更新