seo站长工具平台,建站行业市场容量,深圳网络营销公司,重新做网站import pandas as pd df pd.DataFrame(……) 说明#xff1a;以下“df”为DataFrame对象。
1. df. sort_values()
作用#xff1a;既可以根据列数据#xff0c;也可根据行数据排序。 注意#xff1a;必须指定by参数#xff0c;即必须指定哪几行或哪几列#xff1b;无法…import pandas as pd df pd.DataFrame(……) 说明以下“df”为DataFrame对象。
1. df. sort_values()
作用既可以根据列数据也可根据行数据排序。 注意必须指定by参数即必须指定哪几行或哪几列无法根据index名和columns名排序由.sort_index()执行
调用方式
DataFrame.sort_values(by, axis0, ascendingTrue, inplaceFalse, kindquicksort, na_positionlast)axis{0 or ‘index’, 1 or ‘columns’}, default 0默认按照列排序即纵向排序如果为1则是横向排序。 bystr or list of str如果axis0那么by列名如果axis1那么by行名。 ascending布尔型True则升序如果by[列名1,列名2]则该参数可以是[True, False]即第一字段升序第二个降序。 inplace布尔型是否用排序后的数据框替换现有的数据框。 kind排序方法{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太关心。 na_position{‘first’, ‘last’}, default ‘last’默认缺失值排在最后面。
原数据:
df pd.DataFrame({b:[1,2,3,2],a:[4,3,2,1],c:[1,3,8,2]},index[2,0,1,3]) b a c 2 1 4 1 0 2 3 3 1 3 2 8 3 2 1 2
1.按b列升序排序
df.sort_values(byb) #等同于df.sort_values(byb,axis0) b a c 2 1 4 1 0 2 3 3 3 2 1 2 1 3 2 8
2.先按b列降序再按a列升序排序
df.sort_values(by[b,a],axis0,ascending[False,True]) #等同于df.sort_values(by[b,a],axis0,ascending[False,True]) b a c 1 3 2 8 3 2 1 2 0 2 3 3 2 1 4 1
3.按行3升序排列
df.sort_values(by3,axis1) #必须指定axis1 a b c 2 4 1 1 0 3 2 3 1 2 3 8 3 1 2 2
4.按行3升序行0降排列
df.sort_values(by[3,0],axis1,ascending[True,False]) a c b 2 4 1 1 0 3 3 2 1 2 8 3 3 1 2 2
注意指定多列多行排序时先按排在前面的列行排序如果内部有相同数据再对相同数据内部用下一个列行排序以此类推。如何内部无重复数据则后续排列不执行。即首先满足排在前面的参数的排序再排后面参数 2. df. sort_index()
作用默认根据行标签对所有行排序或根据列标签对所有列排序或根据指定某列或某几列对行排序。 注意df. sort_index()可以完成和df. sort_values()完全相同的功能但python更推荐用只用df. sort_index()对“根据行标签”和“根据列标签”排序其他排序方式用df.sort_values()。
调用方式
sort_index(axis0, levelNone, ascendingTrue, inplaceFalse, kindquicksort, na_positionlast, sort_remainingTrue, byNone) axis0按照行名排序1按照列名排序 level默认None否则按照给定的level顺序排列---貌似并不是文档 ascending默认True升序排列False降序排列 inplace默认False否则排序之后的数据直接替换原来的数据框 kind排序方法{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太关心。 na_position缺失值默认排在最后{first,last} by按照某一列或几列数据进行排序但是by参数貌似不建议使用
源数据:
import pandas as pd df pd.DataFrame({b:[1,2,2,3],a:[4,3,2,1],c:[1,3,8,2]},index[2,0,1,3]) b a c 2 1 4 1 0 2 3 3 1 3 2 8 3 2 1 2 1.默认按“行标签”升序排列推荐
df.sort_index() #默认按“行标签”升序排序或df.sort_index(axis0, ascendingTrue) b a c 0 2 3 3 1 3 2 8 2 1 4 1 3 2 1 2 2.按“列标签”升序排列推荐
df.sort_index(axis1) #按“列标签”升序排序 a b c 2 4 1 1 0 3 2 3 1 2 3 8 3 1 2 2 3.指定“多列”排序不推荐
#先按b列“降序”排列因为b列中有相同值相同值再按a列的“升序”排列 df.sort_index(by [b,a],ascending [False,True]) b a c 1 3 2 8 3 2 1 2 0 2 3 3 2 1 4 1 #先按a列“降序”排列而a列中没有相同值因此这里按b列的“升序”排列不起作用。 df.sort_index(by [a,b],ascending [False,True]) b a c 2 1 4 1 0 2 3 3 1 3 2 8 3 2 1 2