服务器之家

服务器之家 > 正文

pandas数值排序的实现实例

时间:2021-12-15 00:17     来源/作者:不思量自难忘

本文用到的表格内容如下:

pandas数值排序的实现实例

排序前先来看一下原始情形:

?
1
2
3
4
import pandas as pd
df = pd.read_excel(r'c:\users\admin\desktop\测试.xlsx')
print(df)

result:
   姓名     年龄  成绩
0  小明   23.0  78
1  小刚    nan  89
2  小红  876.0  65
3  李华   65.0  89
4  小美    nan  43
5  张三   34.0  90
6  李四    nan  34
7  王五   98.5  87

1.按照一列数值进行排序

按照某一列数值进行排序就是整个数据表都要以某一列为准,进行升序或降序
排序需要用到sort_values()方法,在sort_values()方法中要通过by参数指明要排序的列名,通过ascending参数知名升序还是降序。

1.1按照五缺失值的一列进行排序

1.1.1升序排列

该方法默认升序排列(即ascending参数的默认值是true),使用by参数用来指定需要排序的列名

?
1
2
df = pd.read_excel(r'c:\users\admin\desktop\测试.xlsx')
print(df.sort_values(by=["成绩"]))

result:
   姓名     年龄  成绩
6  李四    nan  34
4  小美    nan  43
2  小红  876.0  65
0  小明   23.0  78
7  王五   98.5  87
1  小刚    nan  89
3  李华   65.0  89
5  张三   34.0  90

1.1.2 降序排列

只要设置ascending参数的值为false,即可实现降序排列

?
1
2
df = pd.read_excel(r'c:\users\admin\desktop\测试.xlsx')
print(df.sort_values(by=["成绩"], ascending=false))

result:
   姓名     年龄  成绩
5  张三   34.0  90
1  小刚    nan  89
3  李华   65.0  89
7  王五   98.5  87
0  小明   23.0  78
2  小红  876.0  65
4  小美    nan  43
6  李四    nan  34

1.2按照有缺失值的一列进行排序

当待排序的列中有缺失值时,可以通过设置na_position参数对缺失值的显示位置进行设置

1.2.1 缺失值显示在最后

该方法默认缺失值显示在最后(na_position参数的默认值是last)

?
1
2
3
4
5
df = pd.read_excel(r'c:\users\admin\desktop\测试.xlsx')
print(df.sort_values(by=["成绩"]))
 
df = pd.read_excel(r'c:\users\admin\desktop\测试.xlsx')
print(df.sort_values(by=["年龄"]))

result:
   姓名     年龄  成绩
0  小明   23.0  78
5  张三   34.0  90
3  李华   65.0  89
7  王五   98.5  87
2  小红  876.0  65
1  小刚    nan  89
4  小美    nan  43
6  李四    nan  34

1.2.2 缺失值显示在最前面

只要设置na_position参数的值为first,即可实现缺失值显示在最前面

?
1
2
df = pd.read_excel(r'c:\users\admin\desktop\测试.xlsx')
print(df.sort_values(by=["年龄"], na_position='first'))

result:
   姓名     年龄  成绩
1  小刚    nan  89
4  小美    nan  43
6  李四    nan  34
0  小明   23.0  78
5  张三   34.0  90
3  李华   65.0  89
7  王五   98.5  87
2  小红  876.0  65

2.按照多列数值进行排序

按照多列数值排序是指同时依据多列数据进行升序、降序排列。当第一列出现重复值时按照第二列进行排序,第二列出现重复值时按照第三列进行排序,依次类推。
此时在sort_values()方法中需要排序的多个列名要以列表的形式传递给by参数,需要每个排序的列名所对应的排序方式也要以列表的形式传递给ascending参数,二者的列表要一一对应。

?
1
2
df = pd.read_excel(r'c:\users\admin\desktop\测试.xlsx')
print(df.sort_values(by=["成绩", "年龄"], ascending=[true, false]))

result:
   姓名     年龄  成绩
6  李四    nan  34
4  小美    nan  43
2  小红  876.0  65
0  小明   23.0  78
7  王五   98.5  87
3  李华   65.0  89
1  小刚    nan  89
5  张三   34.0  90

此时按照成绩进行升序排列,当成绩相同时再按照年龄进行降序排列。

到此这篇关于pandas数值排序的实现实例的文章就介绍到这了,更多相关pandas数值排序内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/6988136231750090766

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部