今天在完成实验时,遇到了一些问题
我将一个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
pandas计数函数 :value_counts( )和counts( )的使用 - 知乎在我们使用pandas进行数据分析时,时常需要对数据进行排序、计量,以获取数据的某些信息,在之前的文章中,我已经为大家介绍过如何用如何使用sort_value函数对数据进行排序,(忘记的同学可以在下面复习一下~)侦…https://zhuanlan.zhihu.com/p/113342292
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)