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

求助:将pandas中YYYY-WNN格式列转换为日-月-年格式报错

Pandas中YYYY-WNN格式周数转日期的解决方法

问题原因

你用pd.to_datetime(df['YearWeekISO'], format="%Y-W%U")报错,核心原因是%U(以周日为一周起始的周数)或%W(以周一为一周起始的周数)的解析规则要求必须同时指定年份、周数和星期几,仅提供年和周数无法唯一确定日期。

解决方案

根据你需要的周内目标日期(比如周一/周日),选择以下任意一种方法:

方法1:转成ISO周的周一(最符合YYYY-WNN的ISO标准)

ISO周默认以周一为第一天,给原周字符串拼接-1表示周一,再解析:

# 处理跨年度周(比如2020-W53)更严谨的写法
df['Date'] = pd.to_datetime(df['YearWeekISO'] + '-1', format="%G-W%V-%u").dt.strftime("%d/%m/%Y")

# 简化写法(适用于周数不跨年度的场景)
df['Date'] = pd.to_datetime(df['YearWeekISO'] + '-1', format="%Y-W%W-%w").dt.strftime("%d/%m/%Y")

方法2:转成每周的周日(对应%U的周日起始规则)

如果需要以周日作为一周的结束日期,拼接-0表示周日:

df['Date'] = pd.to_datetime(df['YearWeekISO'] + '-0', format="%Y-W%U-%w").dt.strftime("%d/%m/%Y")

验证示例

针对示例2020-W53:

  • 用方法1会得到28/12/2020(该ISO周的周一)
  • 用方法2会得到03/01/2021(该周的周日)

内容的提问来源于stack exchange,提问作者André Lourenço

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:54:40