pandas怎样完成一列和多列的数值排序?
发布时间:2022-01-14 14:24 所属栏目:13 来源:互联网
导读:今天我们来了解一下关于pandas数值排序的内容,对于筛选和排序是Excel中使用频率最多的功能,下面我们就来看看pandas怎样实现一列和多列的数值排序,感兴趣的朋友就继续往下看吧。 排序前先来看一下原始情形: import pandas as pd df = pd.read_excel(rC:\Us
今天我们来了解一下关于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 此时按照成绩进行升序排列,当成绩相同时再按照年龄进行降序排列。 (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读