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
相关产品推荐
相关产品推荐

