关于Python中的value_counts()排序的一些问题
Python的value_counts()使用
·
问题提出
今天在完成实验时,遇到了一些问题
我将一个series对象转换成字典以后,想要让它以索引排序输出
在搜索一番后,发现大部分的排序都是以值进行排序。
value_counts的函数体结构如下
value_counts(values,sort=True, ascending=False, normalize=False,bins=None,dropna=True)
其中的sort是指以值进行排序
以下是我使用的数据集常规排序输出的结果
df1 =df['carat'].value_counts(sort=True)
print(df1)
#会得到以下结果
0.30 2604
0.31 2249
1.01 2242
0.70 1981
0.32 1840
...
2.70 1
3.67 1
5.01 1
2.77 1
3.40 1
如果不进行排序的话是这样的,会以乱序输出
df1 =df['carat'].value_counts(sort=False)
print(df1)
#会得到以下结果
0.25 212
1.00 1558
0.50 1258
2.00 265
3.00 8
...
2.74 3
1.18 123
0.57 430
0.29 130
3.40 1
对比一下,可以看出sort是以值进行排序的。
函数结构体中还有 'ascending= '这个参数
如果ascending=False,那么字典以值降序输出
如果ascending=True,那么字典以值升序输出
这两种并不能达到以索引排序输出的结果。
问题解决
在搜寻一番后,发现有sort_index()这个用法
df3 =df['carat'].value_counts(sort=False).sort_index()
print(df3)
#会得到以下结果
0.20 12
0.21 9
0.22 5
0.23 293
0.24 254
...
4.00 1
4.01 2
4.13 1
4.50 1
5.01 1
这次就达到了我想要的结果,以索引排序输出。
tips:ascending=True或False也可以应用于sort_index()
总结
想要以索引进行排序输出的话,在value_counts()方法后加上sort_index()
想要以值进行排序输出的话,直接使用value_counts()方法,根据自身需要设置sort参数和asceding参数即可
参考文章:https://www.qedev.com/bigdata/198236.htmlhttps://www.qedev.com/bigdata/198236.html
更多推荐
已为社区贡献2条内容
所有评论(0)