导入包
import pandas as pd
import numpy as np
from pandas import Series,DataFrame
‘’’
pandas排序
**obj.sort_index**(**axis=0,ascending=True,inplace = False**)
**obj.sort_value**(**by=label,axis=0,ascending=True,inplace = False**)
**by**:str 表示根据axis方向索引名进行排序
**axis**:0/1轴
**ascending**:升序降序
‘’’
series排序
s1=Series(np.random.randint(1,10,6),index=list('cbaefd'))
print(s1)
print(s1.sort_index(ascending=False))
print(s1.sort_values(inplace=True))
dataframe排序
df1 =DataFrame(
np.random.choice(range(100),(3,5),replace=False),
index='three/one/two'.split('/'),
columns=list('bdcae')
)
print(df1)
按索引排序 默认行索引
print(df1.sort_index())
按照列索引排序
print(df1.sort_index(axis=1))
按值排序 axis=0 by 选择列索引
print(df1.sort_values(by='a',axis=0))
print(df1.sort_values(by='one',axis=1))
模拟创建一个成绩 语文 数学 英语 各科成绩有重复
names = '一、二、三、四、五、六、牛、今、天、金、木、水、火、土、儿 ,大 ,小,口 ,几 ,人, 入, 日 ,月, 己, 上, 下, 白 ,丫, 匕, 卜 ,土 ,子 ,力 ,个, 井 ,了, 木 ,又, 巾 , 王 ,寸, 飞 ,不, 少, 斤, 太, 才,之, 士, 万'.replace('、',',').split(',')
print(len(names))
df2 = DataFrame(
{
'语文':np.random.randint(90,100,50),
'数学':np.random.randint(80,100,50),
'英语':np.random.randint(70,100,50)
},
index=[np.random.choice(list('赵钱孙李周吴郑王'))+names.pop(np.random.randint(0,len(names))) for x in range(0,50)]
)
print(df2)
对df2 排序 按照语文成绩降序
print(df2.sort_values(by='语文',ascending=False))
按照多个值排序
print(df2.sort_values(by=['语文','数学','英语'],ascending=False))
按照总分排序
df2['总分']=df2.sum(axis=1)
print(df2)
df2.sort_values(by='总分',ascending=False)