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

如何在Python Pandas中手动指定value_counts结果的行排序顺序?

手动指定Pandas DataFrame的自定义排序顺序

问题背景

执行counts = df["AssignedGroup"].value_counts(sort=False)后得到如下DataFrame:

"Column 1"         "Column 2"
    XYZ55 Data Tech    128
    XYZ59 Data Tech    117
    XYZ54 Data Tech     53
    XYZ64 Data Tech      7
    XYZ57 Data Tech     12
    XYZ56 Data Tech     10
    XYZ53 Data Tech      9

需要将其调整为以下自定义顺序的结果:

XYZ53 Data Tech    9
XYZ56 Data Tech    10
XYZ57 Data Tech    12
XYZ54 Data Tech    53
XYZ64 Data Tech    7
XYZ55 Data Tech    128
XYZ59 Data Tech    117

解决方案

当然可以手动指定这种非默认的排序顺序,通过Pandas的Categorical类型就能实现,具体步骤如下:

  1. 定义自定义排序列表
    先把你想要的顺序写成一个列表:

    custom_order = [
        "XYZ53 Data Tech",
        "XYZ56 Data Tech",
        "XYZ57 Data Tech",
        "XYZ54 Data Tech",
        "XYZ64 Data Tech",
        "XYZ55 Data Tech",
        "XYZ59 Data Tech"
    ]
    
  2. 将索引转换为分类类型
    把counts的索引转换成带有自定义顺序的分类类型:

    import pandas as pd
    counts.index = pd.Categorical(counts.index, categories=custom_order, ordered=True)
    
  3. 按索引排序
    最后调用sort_index()方法,就能得到你想要的顺序:

    counts_sorted = counts.sort_index()
    

执行完以上步骤后,counts_sorted就是你期望的自定义排序后的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:20:37