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

Pandas实现:从年份和周数字段获取对应周的周一日期

解决方案:根据年份和周数计算对应周一日期

要实现这个需求,我们可以利用Pandas的日期解析功能,通过将年份和周数组合成特定格式的字符串,再转换为对应的周一日期。以下是具体步骤和代码:

步骤1:准备原始数据

首先构建你提供的DataFrame:

import pandas as pd

data = {'year': [2020, 2020, 2021, 2021], 'week': [52, 53, 1, 2]}
df = pd.DataFrame(data=data)

步骤2:生成周一日期列

我们可以通过拼接年份、周数和代表周一的标识,再用pd.to_datetime解析为日期:

# 拼接成 "YYYY-WW-1" 格式的字符串,最后一位1代表周一
df['period'] = pd.to_datetime(
    df['year'].astype(str) + '-' + df['week'].astype(str).str.zfill(2) + '-1',
    format='%Y-%W-%w'
)

代码解释:

  • str.zfill(2):确保周数是两位字符(比如第1周转为"01"),符合日期格式的解析要求;
  • format='%Y-%W-%w':指定解析规则:
    • %Y:4位数的年份;
    • %W:周数(周一为一周的起始,范围00-53);
    • %w:星期几(0=周日,1=周一,...,6=周六),这里我们用1明确指定取该周的周一。

验证结果

执行上述代码后,你的DataFrame会生成目标period列,结果如下:

yearweekperiod
02020522020-12-21
12020532020-12-28
2202112021-01-04
3202122021-01-11

这个方法完美兼容周数为53的特殊情况,也能准确解析跨年的周次。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 13:27:48