如何用Python将日期列转换为星期名称?已尝试代码未生效
解决方案
先明确你代码里的两个核心问题:
- 你把列名
'Type of Day'直接传给strptime,这是字符串常量,不是列中的实际日期值,无法被解析。 - 格式符用错了:
%M代表分钟,月份对应的格式符是%m,正确的日期格式串应为%m/%d/%Y。
下面分两种常用场景给出可行方案:
场景1:用Pandas处理数据列(推荐)
如果你的数据存在Pandas DataFrame中,直接对整列操作效率最高:
import pandas as pd # 假设数据存储在名为df的DataFrame中 # 先将"Type of Day"列转换为datetime类型 df['Type of Day'] = pd.to_datetime(df['Type of Day'], format='%m/%d/%Y') # 提取星期名称到新列 df['Weekday Name'] = df['Type of Day'].dt.strftime('%A')
也可以合并为一行代码:
df['Weekday Name'] = pd.to_datetime(df['Type of Day'], format='%m/%d/%Y').dt.strftime('%A')
场景2:纯Python处理单个日期值
如果需要逐个遍历列中的日期字符串(比如处理单个值'1/27/2023'):
import datetime date_str = '1/27/2023' # 解析日期并转换为星期名称 weekday_name = datetime.datetime.strptime(date_str, '%m/%d/%Y').strftime('%A') print(weekday_name) # 输出: Friday
strptime的%m和%d会自动兼容单数字/双数字的月份、日期,无需额外调整格式串。
内容的提问来源于stack exchange,提问作者Ozymandias38
相关产品推荐
相关产品推荐

