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

如何调整DataFrame中分类类型星期几的显示顺序?

问题:DataFrame中星期几分类顺序不符合需求,如何调整?

已知day_name列的数据类型已定义为category,但当前分类顺序为['Friday', 'Monday', 'Saturday', 'Sunday', 'Thursday', 'Tuesday', 'Wednesday'],不符合Sunday, Monday, Tuesday, Wednesday……的正确顺序。执行以下代码计算会员的星期众数时,分类顺序不符合预期:

# calculate the mode of week-day of members
mode_week_day_member = bike_data[bike_data['member_casual'] == 'member']
mode_week_day_member = mode_week_day_member['day_name'].mode()
mode_week_day_member

执行后输出:

0    Wednesday
Name: day_name, dtype: category
Categories (7, object): ['Friday', 'Monday', 'Saturday', 'Sunday', 'Thursday', 'Tuesday', 'Wednesday']

需要调整星期几的分类顺序为指定的正确顺序,该如何操作?


解决方案

你可以通过重新指定category的自定义分类顺序来解决这个问题,具体操作如下:

  • 定义正确的星期顺序列表
    先写出你需要的星期排序:

    week_order = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
    
  • 重新设置day_name列的分类规则
    使用cat.set_categories()方法覆盖原有的分类顺序,并设置ordered=True让该列遵循指定顺序:

    bike_data['day_name'] = bike_data['day_name'].cat.set_categories(week_order, ordered=True)
    
  • 验证效果
    此时再执行原来的众数计算代码,或者查看列的分类信息,就能看到顺序已经更新:

    # 查看分类信息
    print(bike_data['day_name'].cat.categories)
    # 输出:Index(['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dtype='object')
    

修改完成后,后续对day_name列的排序、统计(比如众数计算、分组聚合)都会按照你指定的星期顺序执行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:20:37