Python Pandas对DataFrame列值计数后按类别值升序排序方法
实现方案
pandas 中 DataFrame/Series 的 value_counts() 方法默认会按照计数值降序返回结果,要实现类别值升序排列、保留对应计数的效果,直接对计数结果按索引升序排序即可,两种常用写法如下:
- 写法1:链式调用排序方法,适配所有pandas版本
其中# 将column_name替换为你实际要统计的目标列名 count_result = df['column_name'].value_counts().sort_index(ascending=True)sort_index()会以计数结果的索引(也就是你统计的原类别值)作为排序依据,ascending=True指定按升序排列,输出效果和你预期的1.0、4.0、7.0、10.0依次对应计数的规则完全一致。 - 写法2:关闭默认计数排序后重排,逻辑更直观
先传入count_result = df['column_name'].value_counts(sort=False).sort_index()sort=False关闭value_counts默认按计数值排序的逻辑,再按索引升序排列,最终输出结果和写法1完全相同。
执行后得到的计数结果样例如下:
1.0 1
4.0 1
7.0 2
10.0 1
... 其余类别均按数值从小到大依次排列,对应计数保持匹配
内容的提问来源于stack exchange,提问作者Randy
相关产品推荐
相关产品推荐

