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

如何用Pandas将每日新冠病例数据转换为周度均值数据

问题解决:将每日新冠病例数据转为周度均值

你遇到的AttributeError是因为pandas的pd.offsets模块里根本没有timedelta这个属性,而且旧代码里的loffset参数在新版pandas中已被弃用,用以下方法即可实现按周计算均值的需求:


正确实现代码

基于你已经处理好的df,直接执行以下代码:

# 将Date列设为时间索引(resample操作依赖时间索引)
df = df.set_index('Date')

# 按周重采样,计算New Cases的均值
# 默认周周期为「周日到周六」,若要改为「周一到周日」,将规则改为'W-MON'
weekly_df = df.resample('W')['New Cases'].mean().reset_index()

# 可选:将周标签从周末(如周日)调整为周初(如周一)
weekly_df['Date'] = weekly_df['Date'] - pd.Timedelta(days=6)

# 可选:重命名列名,让结果更清晰
weekly_df = weekly_df.rename(columns={'New Cases': 'Weekly Average New Cases'})

关键说明

  1. resample规则:'W'代表自然周(默认以周日为周结束),其他常用规则包括'W-MON'(周一结束)、'W-TUE'(周二结束),可根据需求调整。
  2. 时间差正确用法:用pd.Timedelta(days=6)替代错误的pd.offsets.timedelta,这是pandas中生成时间差的标准方式。
  3. 索引重置:reset_index()将时间索引转回普通列,方便后续的数据分析或可视化操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:55:23