加入收藏 | 设为首页 | 会员中心 | 我要投稿 濮阳站长网 (https://www.0393zz.cn/)- 专属主机、数据湖、操作系统、媒体智能、数据分析!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

pandas怎样实现一列和多列的数值排序?

发布时间:2022-02-19 14:01:09 所属栏目:语言 来源:互联网
导读:今天我们来了解一下关于pandas数值排序的内容,对于筛选和排序是Excel中使用频率最多的功能,下面我们就来看看pandas怎样实现一列和多列的数值排序,感兴趣的朋友就继续往下看吧。 本文用到的表格内容如下: 排序前先来看一下原始情形: import pandas as pd d
    今天我们来了解一下关于pandas数值排序的内容,对于筛选和排序是Excel中使用频率最多的功能,下面我们就来看看pandas怎样实现一列和多列的数值排序,感兴趣的朋友就继续往下看吧。
 
    本文用到的表格内容如下:
 
    排序前先来看一下原始情形:
import pandas as pd

df = pd.read_excel(r'C:UsersadminDesktop测试.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参数用来指定需要排序的列名
df = pd.read_excel(r'C:UsersadminDesktop测试.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,即可实现降序排列
df = pd.read_excel(r'C:UsersadminDesktop测试.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)
df = pd.read_excel(r'C:UsersadminDesktop测试.xlsx')
print(df.sort_values(by=["成绩"]))
 
df = pd.read_excel(r'C:UsersadminDesktop测试.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,即可实现缺失值显示在最前面
df = pd.read_excel(r'C:UsersadminDesktop测试.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参数,二者的列表要一一对应。
df = pd.read_excel(r'C:UsersadminDesktop测试.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
 
    此时按照成绩进行升序排列,当成绩相同时再按照年龄进行降序排列。

(编辑:濮阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读