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

如何在Pandas中将星期全称转换为缩写形式?

解决Pandas中星期全称转缩写的问题

你直接用m.DOW.strftime("%a")失败的原因是:strftime是datetime对象专属方法,而你的DOW列存储的是字符串类型的星期全称(比如"Monday"),不是datetime类型,所以无法直接调用该方法。下面提供几种可行的解决方案:

方法一:先转datetime类型再提取缩写

利用pd.to_datetime将星期全称字符串解析为datetime对象,再通过dt.strftime('%a')获取缩写:

import pandas as pd
# 将字符串转为datetime,%A对应星期全称格式
m['DOW'] = pd.to_datetime(m['DOW'], format='%A').dt.strftime('%a')

如果列中存在非标准星期名称(拼写错误、大小写不一致),可以添加errors='coerce'参数将异常值转为NaN,后续再处理:

m['DOW'] = pd.to_datetime(m['DOW'], format='%A', errors='coerce').dt.strftime('%a')

方法二:手动映射字典替换(高效直观)

直接创建星期全称到缩写的映射字典,用map方法批量替换,适合数据量较大的场景:

dow_full_to_abbr = {
    'Monday': 'Mon',
    'Tuesday': 'Tue',
    'Wednesday': 'Wed',
    'Thursday': 'Thu',
    'Friday': 'Fri',
    'Saturday': 'Sat',
    'Sunday': 'Sun'
}
m['DOW'] = m['DOW'].map(dow_full_to_abbr)

方法三:借助calendar模块自动生成映射

无需手动编写字典,用Python内置的calendar模块自动生成全称与缩写的对应关系:

import pandas as pd
import calendar

# 生成星期全称到缩写的映射字典
dow_map = dict(zip(calendar.day_name, calendar.day_abbr))
m['DOW'] = m['DOW'].map(dow_map)

额外注意事项

如果你的DOW列字符串存在大小写不一致的情况(比如"monday"、"MONDAY"),可以先统一标准化字符串格式再映射:

# 先将字符串转为首字母大写、其余小写的格式
m['DOW'] = m['DOW'].str.capitalize().map(dow_map)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:02:31