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

Python中如何将年度周数列表转为指定格式的日期字符串?

解决年度周数转指定格式日期并存入Pandas列的问题

你当前代码输出的是datetime.date对象的默认表示形式,要得到YYYY-MM-DD格式的字符串,或者存入Pandas列,可按以下方式处理:

1. 直接生成指定格式的字符串列表

修改循环中添加日期的逻辑,将datetime.date对象转换为字符串格式:

import datetime
from dateutil.relativedelta import relativedelta

week = [25,31]
year = 2021
dates = []
for i in week:
    date = datetime.date(year, 1, 1) + relativedelta(weeks=+i)
    dates.append(str(date))  # 利用datetime.date的str方法直接生成ISO格式字符串
    # 或者用strftime自定义格式,效果一致:dates.append(date.strftime("%Y-%m-%d"))
print(dates)

运行后输出:

['2021-06-25', '2021-08-06']

2. 存入Pandas列的最佳实践

如果最终要将日期存入Pandas,建议优先保留datetime类型(便于后续日期相关操作,比如排序、计算时间差等),仅在需要输出特定格式时转换为字符串:

import pandas as pd
import datetime
from dateutil.relativedelta import relativedelta

week = [25,31]
year = 2021

# 生成datetime类型的列
df = pd.DataFrame({'week_number': week})
df['date'] = df['week_number'].apply(
    lambda x: datetime.date(year, 1, 1) + relativedelta(weeks=+x)
)

# 若需要字符串格式的日期列,添加以下代码
df['date_str'] = df['date'].dt.strftime("%Y-%m-%d")
print(df)

输出示例:

week_number        date    date_str
0           25  2021-06-25  2021-06-25
1           31  2021-08-06  2021-08-06

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 10:40:37