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

Pandas按dayofweek分组后如何获取day_name()作为图表标签

报错原因:s1.index.dayofweek返回的是0~6的整数,分组后g1的索引为Int64类型,不支持DatetimeIndex专属的day_name()方法。

最优解决方法

按使用场景选择以下两种方案即可:

方案1:直接按周几名称分组(无特殊需求优先选该方案)

不需要后续用到周几的整数序号时,直接将day_name()的返回值作为分组键,一步得到带周几名称索引的结果:

# 默认返回英文周几名称
g1 = s1.groupby(s1.index.day_name()).mean()

# 如需中文周几名称,传入对应locale参数即可
g1 = s1.groupby(s1.index.day_name(locale='zh_CN.UTF-8')).mean()

# 如需按周一到周日的自然顺序排序,配合reindex调整即可
week_order = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
g1 = g1.reindex(week_order)

方案2:保留整数索引的同时生成周几标签

如果已经完成分组计算,或者后续需要用到0~6的周几序号,直接对现有Int64索引做映射即可,不需要重新计算分组:

# 方法A:通过pandas内置方法转换,适配多语言场景
week_labels = pd.to_datetime(g1.index, unit='D', origin='1970-01-04').day_name()

# 方法B:手动映射,性能更高
week_map = {0:'Monday',1:'Tuesday',2:'Wednesday',3:'Thursday',4:'Friday',5:'Saturday',6:'Sunday'}
week_labels = g1.index.map(week_map)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:48:00