Python中将日期列的dayofweek整数转换为星期字符串的方法求助
解决方案
你用date.weekday()不生效的原因是该方法仅支持单个datetime对象调用,无法直接作用于pandas日期列(Series类型),整列转换可以直接用map映射或者pandas内置方法实现:
方法1:手动映射(可控性高,无需修改系统配置)
你之前已经定义了映射字典,修改为中文映射后直接调用map方法即可整列转换:
# 定义0-6到中文星期的映射关系 days = {0:'星期一', 1:'星期二', 2:'星期三', 3:'星期四', 4:'星期五', 5:'星期六', 6:'星期日'} # 整列转换,将生成的星期字符串直接作为新列加入原数据集(df为你的原DataFrame变量名) df['weekday_cn'] = dte.dt.dayofweek.map(days)
方法2:内置方法直接生成(无需手动写映射)
通过修改系统时间区域配置,直接调用内置的day_name()方法获取中文星期:
import locale # 根据操作系统选择对应配置命令,二选一即可 # Windows系统使用: locale.setlocale(locale.LC_TIME, 'zh_CN.UTF-8') # Mac/Linux系统使用: # locale.setlocale(locale.LC_TIME, 'zh_CN') # 直接整列生成中文星期名称 df['weekday_cn'] = dte.dt.day_name()
两种方法都可以直接对全量504行数据生效,不需要逐行处理单个日期。
内容的提问来源于stack exchange,提问作者Baby Yoda
相关产品推荐
相关产品推荐

