You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中对Dhaka数据集按日期计算滑动3天降水量求和

解决Dhaka数据集的3天滚动降水量求和问题

嘿,这个需求其实很常见,用数据分析工具就能轻松实现!我给你分两种常用场景来演示:

用Python Pandas处理(推荐用于批量/自动化分析)

Pandas的rolling函数专门用来处理这类滚动窗口计算,完全符合你的需求:

import pandas as pd

# 先构造你的Dhaka数据集
data = {
    'time': ['01/01/1998', '01/02/1998', '01/03/1998', '01/04/1998', '01/05/1998', '01/06/1998'],
    'precipitation': [5, 2, 4, 6, 7, 11]
}
df = pd.DataFrame(data)

# 把time列转换成标准日期格式(可选,但能避免后续日期相关的问题)
df['time'] = pd.to_datetime(df['time'], format='%d/%m/%Y')

# 核心:计算当天及前两天的滚动求和,不足3天时取现有数据的和
df['3day_precip_sum'] = df['precipitation'].rolling(window=3, min_periods=1).sum()

# 为了直观展示计算逻辑,我们可以加个注释列
df['calculation_detail'] = [
    '5',
    '5+2',
    '5+2+4',
    '2+4+6',
    '4+6+7',
    '6+7+11'
]

# 查看结果
print(df)

运行后会得到这样的输出:

time  precipitation  3day_precip_sum calculation_detail
0 1998-01-01              5              5.0                  5
1 1998-01-02              2              7.0                5+2
2 1998-01-03              4             11.0              5+2+4
3 1998-01-04              6             12.0              2+4+6
4 1998-01-05              7             17.0              4+6+7
5 1998-01-06             11             24.0             6+7+11

关键参数解释

  • window=3:指定滚动窗口包含当前行和前两行,正好对应「当天及前两天」的范围
  • min_periods=1:允许窗口中最少有1个数据就计算求和,这样前两行(窗口不足3个数据时)不会返回空值,而是取现有天数的和

用Excel手动处理(适合小数据集快速计算)

如果你的数据在Excel里,也可以用简单的公式实现:

  • 假设降水量数据在B列,日期在A列
  • 第1行数据(B2单元格):在C2输入=B2,直接取当天值
  • 第2行数据(B3单元格):在C3输入=SUM(B2:B3),计算前两天的和
  • 第3行及以后(从B4开始):在C4输入=SUM(B2:B4),然后下拉填充公式,Excel会自动调整窗口范围,实现「当天及前两天」的求和

内容的提问来源于stack exchange,提问作者Farah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:25:24