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

Python Pandas:将yyyyww整数列索引转换为每周一Timestamp

解决方法:将yyyyww格式的整数列索引转换为对应周一的DatetimeIndex

直接给你一套简洁可行的步骤,结合pandas的工具就能轻松搞定:

  • 第一步:将整数列索引转为字符串
    因为pd.to_datetime处理字符串格式的周数更可靠,先把你的Int64Index转成字符串类型,确保每个值都是yyyyww的6位格式:

    cols_as_str = df.columns.astype(str)
    
  • 第二步:解析为对应周一的DatetimeIndex
    使用pd.to_datetime,指定格式为%Y%W(4位年份+2位周数),并通过weekday=0指定取该周的周一:

    new_columns = pd.to_datetime(cols_as_str, format="%Y%W", weekday=0)
    
  • 第三步:重新设置DataFrame的列索引
    把转换后的DatetimeIndex赋值回DataFrame的列,同时保留原索引名称'timeline':

    df.columns = pd.DatetimeIndex(new_columns, name="timeline")
    

验证示例

针对你提到的测试值:

  • 201601会被解析为Timestamp('2016-01-04 00:00:00')(2016年第1周的周一)
  • 201553会被解析为Timestamp('2015-12-28 00:00:00')(2015年第53周的周一)

这个方法完美适配你104列的场景,不管是常规周数还是53周的特殊情况都能正确处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:15:38