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

Python时间序列:基于日历周实现数据绘图与机器学习预测

基于日历周设置pandas时间索引的实现方法

pandas原生支持日历周格式的时间转换,不需要额外做复杂处理,你可以根据自己数据表的字段情况选择对应方案:

方案1:数据表包含「年、周数、周内第几天」三个字段

直接调用pd.to_datetime指定ISO周格式即可:

# 格式参数说明:%G为ISO周对应的公历年份,%V为ISO标准周数(范围1-53),%u为周内天数(1=周一,7=周日)
df.index = pd.to_datetime(df['year'].astype(str) + df['week'].astype(str) + df['weekday'].astype(str), format='%G%V%u')

如果你的周计数规则是周日为一周第一天,将格式中的%u替换为%w(0=周日,6=周六)即可。

方案2:数据表仅包含「年、周数」两个字段

可以固定取每周的第一天/最后一天作为该周数据的时间索引:

# 取每周周一作为该周的时间索引
df.index = pd.to_datetime(df['year'].astype(str) + df['week'].astype(str) + '1', format='%G%V%u')

# 取每周周日作为该周的时间索引
df.index = pd.to_datetime(df['year'].astype(str) + df['week'].astype(str) + '7', format='%G%V%u')

非ISO标准周的适配方法

如果你使用的是自定义周计数规则(非全球通用的ISO周标准),可以先手动计算每年第一周的起始日期,再按周数偏移生成对应日期:

# 示例:自定义每年1月1日为第一周第一天,周长度为7天
year_start = pd.to_datetime(df['year'].astype(str) + '-01-01')
df.index = year_start + pd.to_timedelta((df['week']-1)*7, unit='D')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:18:00