如何解决如何在两个日期之间总结 Pandas 的最后 7 天
这是我的原始数据
这是我在 Pandas 中的“Date_2wks_Ago”列上添加后的数据(包括类型)
我想添加一个新列“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.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
意识到此输出与原始问题中的示例不完全匹配。你能帮忙验证一下你所追求的正确逻辑吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。