Pandas 1.0.0升级后weekday_name失效,day_name调用异常求助
解决Pandas 1.0.0中
weekday_name属性失效及day_name调用问题 嘿,这个问题我刚好踩过坑!别担心,这是Pandas升级到1.0.0版本后的一个常见小变化,咱们一步步来搞定:
问题根源
Pandas 1.0.0正式移除了weekday_name这个属性,取而代之的是**day_name()方法**——划重点:它是方法,不是属性,所以必须加括号调用!你之前写s.dt.day_name没加括号,返回的自然是方法的绑定对象,而不是实际的星期名称。
解决步骤
直接把原来的写法替换成带括号的day_name()就行,另外这个方法还支持指定语言区域,实用性拉满:
基础用法(默认英文)
import pandas as pd s = pd.date_range('2016-12-31', '2017-01-08', freq='D').to_series() # 正确调用方式:必须加括号 weekday_names = s.dt.day_name() print(weekday_names)
获取中文星期名
如果需要中文的星期名称,可以传入locale参数(需要系统支持对应语言包):
# 生成中文星期名称 chinese_weekdays = s.dt.day_name(locale='zh_CN') print(chinese_weekdays)
为什么要做这个改动?
Pandas团队用day_name()方法替代weekday_name属性,主要是为了支持多语言场景,让星期名称的获取更灵活,同时统一了API风格——把这类动态生成内容的操作改成方法形式,逻辑上更合理。
内容的提问来源于stack exchange,提问作者nBytes
相关产品推荐
相关产品推荐

