pandas 的 DataFrame.sort_values(by,axis,ascending,na_position)方法用于对数据排序
#参数
#by 后跟要排序的名字 可以是列名 也可以是行名 可以是单个名字:如by = "北京"
也可以是多个名字 by = ["北京","上海","广州"] 要用列表括起来
#axis 表示轴 axis = 0 表示按行排序 axis = 1表示按列排序默认 axis = 0按行排序
#ascending 升序或者降序排序 ascending = True 表示降序排序 ascending = False 表示
升序排序 默认为升序排序
#na_position 空值在排序中显示的位置 na_position = "first" 表示空值在排序中显示的位置为第一位
na_position = "last" 表示空值在排序中显示的位置为最后一位。
这里有一份数据
df3
北京 上海 广州 成都 武汉 沈阳 西安
日期
2019-01-01 62 48 63 39.0 29.0 16 18
2019-10-01 3534 2887 2845 1460.0 NaN 878 819
2019-11-01 7758 6087 5602 NaN 2942.0 1621 1625
2019-12-01 4920 3877 3527 1772.0 1977.0 1074 1078
我们按北京这个字段做升序排序
df3.sort_values(by="北京",axis = 0,ascending=True) #这里df3是上面的表格数据
我们按多个字段排序 如北京 上海
df3.sort_values(by=["北京","上海"],axis = 0,ascending=True)
对有空值的列 我们把空值排在第一位
df3.sort_values(by="武汉",na_position="first",axis = 0,ascending=True)
#na_position = "first" 表示把空值放在第一位
#na_position = "last" 表示把空值放在最后一位
我们按列排序 按一个行标签
df3.sort_values(by="2019-10-01",na_position="first",axis = 1,ascending=True)#注意案列排序 axis = 1
我们按列排序 按多个行标签
df3.sort_values(by=["2019-10-01","2019-11-01"],na_position="first",axis = 1,ascending=True)
总结:根据需求 我们对参数进行不同的设置 满足不同的排序需求