zl程序教程

您现在的位置是:首页 >  工具

当前栏目

pandas VS Excel排序-单排序与多重排序

2023-06-13 09:13:56 时间

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)

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)

【代码汇总】

# -*- 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("成功")

【效果图】

====今天就学习到此====