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

Admin 2021-09-14 群英技术资讯 1096 次浏览

    今天我们来了解一下关于pandas数值排序的内容,对于筛选和排序是Excel中使用频率最多的功能,下面我们就来看看pandas怎样实现一列和多列的数值排序,感兴趣的朋友就继续往下看吧。

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

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

    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

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

        关于pandas实现一列和多列的数值排序就介绍到这,上述代码仅供参考,希望大家阅读完这篇有收获,想要了解更多pandas数值排序的内容,大家可以关注群英网络其它相关文章。

    文本转载自脚本之家

    群英智防CDN,智能加速解决方案
    标签: pandas数值排序

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

    猜你喜欢

    成为群英会员,开启智能安全云计算之旅

    立即注册
    专业资深工程师驻守
    7X24小时快速响应
    一站式无忧技术支持
    免费备案服务
    免费拨打  400-678-4567
    免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
    在线客服
    微信公众号
    返回顶部
    返回顶部 返回顶部
    在线客服
    在线客服