如何使用Python将yyyymmdd格式数字字符串转换为星期?
Python实现yyyymmdd格式转星期全称
单个值转换
如果是单个yyyymmdd格式的数字(比如20230102),用Python标准库datetime模块即可处理:
from datetime import datetime date_num = 20230102 # 转字符串后按格式解析为日期对象 date_obj = datetime.strptime(str(date_num), "%Y%m%d") # 获取英文星期全称 weekday = date_obj.strftime("%A") print(weekday) # 输出: Monday
处理一列数据
如果是批量处理一列数字数据,分两种场景实现:
用pandas快速处理
适合数据量较大的表格场景:
import pandas as pd # 示例数据 df = pd.DataFrame({"date_num": [20230102, 20230103, 20230104]}) # 转换为日期格式后提取星期全称 df["weekday"] = pd.to_datetime(df["date_num"], format="%Y%m%d").dt.day_name() print(df)
输出结果:
date_num weekday 0 20230102 Monday 1 20230103 Tuesday 2 20230104 Wednesday
原生Python列表推导式处理
不需要第三方库时可用:
date_nums = [20230102, 20230103, 20230104] weekdays = [datetime.strptime(str(num), "%Y%m%d").strftime("%A") for num in date_nums] print(weekdays) # 输出: ['Monday', 'Tuesday', 'Wednesday']
注意事项
strftime("%A")默认跟随系统语言,若需强制返回英文星期,可指定locale:
import locale locale.setlocale(locale.LC_TIME, 'en_US.UTF-8') # 之后执行转换即可得到固定英文结果
内容的提问来源于stack exchange,提问作者user20817578
相关产品推荐
相关产品推荐

