当前位置 博文首页 > pandas数值排序的实现实例

    pandas数值排序的实现实例

    作者:不思量自难忘 时间:2021-08-07 17:55

    目录
    • 1.按照一列数值进行排序
      • 1.1按照五缺失值的一列进行排序
        • 1.1.1升序排列
        • 1.1.2 降序排列
      • 1.2按照有缺失值的一列进行排序
        • 1.2.1 缺失值显示在最后
        • 1.2.2 缺失值显示在最前面
    • 2.按照多列数值进行排序

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

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

      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参数用来指定需要排序的列名

      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,即可实现降序排列

      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)

      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,即可实现缺失值显示在最前面

      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参数,二者的列表要一一对应。

      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

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

      jsjbwy
      下一篇:没有了