按索引和值对Pandas DataFrame进行排序

 
 

排序Pandas数据框

图片发布
图片作者
图片发布
图片作者
 

Pandas DataFrame按值排序

DataFrame。sort_valuesbyaxis = 0ascending = Trueinplace = Falsekind =' quicksort 'na_position ='last'ignore_index = Falsekey = None
图片发布
图片来源:作者

1.按一列对数据框进行排序

import pandas as pd
df=pd.read_csv("C:pandas_experimentpandas_sortingdata1.csv")
df


图片发布
数据框
df.sort_values('EmpID')
图片发布
按“ EmpID”中的值对数据框进行排序

2.按一列按降序对数据框进行排序

df.sort_values(‘EmpID’,ascending=False)
图片发布
按des顺序按“ EmpID”中的值对df进行排序

3.按两列对数据框进行排序

df.sort_values(by=['Skill','EmpID'])
 
图片发布
根据“技能”和“ EmpID”中的值对df进行排序

4.按两列以不同顺序对数据框进行排序

df.sort_values(by=['Skill','EmpID'],ascending=[True,False])
图片发布
按两个差异顺序按两列中的值对df进行排序

5.通过将NaN放在首位对数据帧进行排序

df.sort_values("Salary",na_position='first')
图片发布
首先将缺失值(NaN)排序df

6.就地排序数据框

df.sort_values("Salary",inplace=True)
df

图片发布
就地排序

7.通过忽略索引对数据帧进行排序。

df.sort_values("Salary",ignore_index=True)
图片发布
通过忽略索引对数据帧进行排序。

8.使用键功能对数据框进行排序

df.sort_values(by=["Skill"],key=lambda x:x.str.lower())
图片发布
按键功能排序
df.sort_values(by=["Skill"])
图片发布
按“技能”(Skill)列中的值对df进行排序,而没有按键功能

9.按字符串长度对数据框进行排序

df.sort_values(by=["Skill"],key=lambda x:x.str.len())
图片发布
根据“技能”列中的字符串长度对数据框进行排序

10.按行值对数据框进行排序

df = pd.DataFrame(data={'x':[10,30,20], 'y':[1,2,3],'z':[5,15,10]})
df
图片发布
数据框
图片发布
要排序的行
df.sort_values(by=0,axis=1)
图片发布
根据row0值对数据框进行排序
df1 = pd.DataFrame(data={'x':[10,10,"d"], 'y':['a',5,'c'],'z':[5,15,'a']})
df1
图片发布
数据框df1
图片发布
按第0行排序
df1.sort_values(by=0,axis=1)
图片发布
第1行和第2行
df1.sort_values(by=2,axis=1)
 
图片发布
按row2排序数据框
 

Pandas.DataFrame.sort_index

DataFrame.sort_index(axis=0, level=None, ascending=True, inplace=False, kind='quicksort', na_position='last', sort_remaining=True, ignore_index=False, key=None)

按标签(沿轴)对对象排序。

1.按行索引对数据框进行排序

df=pd.read_csv("C:pandas_experimentpandas_sortingdata2.csv") 
df
图片发布
df.set_index('EmpID',inplace=True)
图片发布
EmpId→行索引
图片发布
行索引
df.sort_index()
or
df.sort_index(axis=0)
图片发布
按row_index排序

2.按列索引对数据框进行排序

图片发布
列索引
df.sort_index(axis=1)
图片发布
按column_index排序

3.排序具有多索引的数据框

df=pd.read_csv("C:pandas_experimentpandas_sortingdata2.csv") 
df.set_index(["EmpID","Age"],inplace=True)
图片发布
具有multi_index的数据框
df.sort_index(level=0)

图片发布

仅根据row_index“ EmpID”排序
df.sort_index(level=1)
图片发布
按级别,多索引排序

4.仅将具有多索引的数据框按一级排序

df.sort_index(level="Age",sort_remaining=False)
图片发布
仅按一级排序,multi_index df

5.按索引降序对数据框排序

df.sort_index(axis=0,ascending=False)
图片发布
按desc顺序按行索引对数据帧进行排序
 

结论:

原文地址:https://www.cnblogs.com/a00ium/p/14322377.html