Press "Enter" to skip to content

Pandas的排序函数sort_values(by=None)

pandas中的sort_values()函数可以将数据集依照某个字段中的数据进行排序,该函数即可根据指定列数据也可根据指定行的数据排序。

sort_values()函数的语法

DataFrame.sort_values(by='##',axis=0,ascending=True, inplace=False)

参数说明:

by:指定列名(axis=0或’index’)或索引值(axis=1或’columns’)
axis:若axis=0或’index’,则按照指定列中数据大小排序;若axis=1或’columns’,则按照指定索引中数据大小排序,默认axis=0
ascending:是否按指定列的数组升序排列,默认为True,即升序排列
inplace:是否用排序后的数据集替换原来的数据,默认为False,即不替换

下面用一个例子来演示一下这个排序的功能

首先打开一份数据

假设我需要对交易日期这一列进行排序,我想让它按照降序排列,就可以使用这个sort_values()函数

import pandas as pd
pd.set_option('display.unicode.ambiguous_as_wide', True)  #处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)   #无法对齐主要是因为列标题是中文

df=pd.read_csv(r'data\a_stock_201903.csv',encoding='gbk')

result=df.sort_values(by=['交易日期'],ascending=False) # by参数指定按照什么进行排序,acsending参数指定是顺序还是逆序,Ture是升序,False是降序
print(result)

这样就能实现这个排序的需求了,当然这个sort_values()函数还可以进行多列排序,假设我要对股票代码和交易日期进行排序,只需要在里面加上需要多列排序的列就可以了。如:

import pandas as pd
pd.set_option('display.unicode.ambiguous_as_wide', True)  #处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)   #无法对齐主要是因为列标题是中文

df=pd.read_csv(r'data\a_stock_201903.csv',encoding='gbk')

result=df.sort_values(by=['交易日期','股票代码'],ascending=[True,True]) # by参数指定按照什么进行排序,acsending参数指定是顺序还是逆序,Ture是升序,False是降序
print(result)
发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注