pandas VS Excel排序-单排序与多重排序
【要求】
1.以总分排序
2.以“部门” “总分”排序
3.分别输入排序后的名次
【知识点】
pandas.sort_values 与pandas.rank()
[sort_values]
#表示pd按照by=xxx这个字段排序,inplace默认为False,如果该值为False,那么原来的pd顺序没变,只是返回的是排序的,
如果用
d.sort_values(by='总分',ascending= False)
print(d)
#这样打印出来的数据还是原来的数据
print(d.sort_values(by='总分',ascending= False))
#这样打印才能看出来是排序了的数据
所以我们为了能打印出来的数据看到有变化,常常要加上inplace=True这一句
======以总分排序=====
d.sort_values(by='总分',inplace=True,ascending= False)
======以“部门” “总分”排序=====
d.sort_values(by=['部门','总分'],inplace=True,ascending=[0,0])
用sort_values进行排序时只是排序,没能输入名次,如果要输入名次,就要用到rank()函数
====以总分的高低在后面输入一个增加一个“总分名次”列并输入名次数字===
d['总分名次']=d['总分'].rank(ascending=False)
代码语言:javascript复制DataFrame.rank(axis=0, method='average',numeric_only=None, na_option='keep', ascending=True, pct=False)
Method=”average”平均排名:为相同的值分配一个平均排名
顺序排名:对于相同的值按照出现的顺序排名
Method=”min”最小值排名:对于相同的值都取小的排名
Method=”max”最大值排名:对于相同的值都取大的排名
降序排名se5.rank(method="first",ascending=False)
【代码汇总】
代码语言:javascript复制# -*- coding: UTF-8 -*-
import pandas as pd
d=pd.read_excel('pandas VS excel排序-单排序与多重排序.xlsx')
print(d)
#d.sort_values(by='总分',inplace=True,ascending= False)#inplace=True,
#表示pd按照by=xxx这个字段排序,inplace默认为False,如果该值为False,那么原来的pd顺序没变,只是返回的是排序的,True
#print(d)#这样打印出来的数据还是原来的数据
#print(d.sort_values(by='总分',ascending= False))#这样打印才能看出来是排序了的数据
#print(d['总分'].rank())这样的排序是所有的列都排序并打印出排序后的“次”
d.sort_values(by=['部门','总分'],inplace=True,ascending=[0,0])
d['总分名次']=d['总分'].rank(ascending=False)
d.to_excel("pandas VS excel排序-单排序与多重排序_out.xlsx",index=False)
print("成功")
【效果图】
====今天就学习到此====