分享好友 最新动态首页 最新动态分类 切换频道
dataframe python 排序取前十_DataFrame(12):DataFrame的排序与排名问题
2024-12-27 04:20

1、说明

DataFrame中的排序分为两种,一种是对索引排序,一种是对值进行排序。

索引排序:sort_index()

值排序:sort_values()

值排名:rank()

对于索引排序,涉及到对行索引、列索引的排序,并且还涉及到是升序还是降序。函数df.sort_index(axis= , ascending= , inplace=),需要特别注意这三个参数。axis表示对行操作,还是对列操作;ascending表示升序,还是降序操作。

对于值排序,同样也是涉及到行、列排序问题,升序、降序排列问题。函数df.sort_values(by= , axis= , ascending= , inplace=),也需要特别注意这几个参数,只是多了一个by操作,需要我们指明是按照哪一行或哪一列,进行排序的。

注意:axis=0表示对行操作,axis=1表示对列进行操作;ascending=True表示升序,ascending=False表示降序;inplace=True表示对原始DataFrame本身操作,因此不需要赋值操作,inplace=False相当于是对原始DataFrame的拷贝,之后的一些操作都是针对这个拷贝文件进行操作的,因此需要我们赋值给一个变量,保存操作后的结果。

2、索引排序:df.sort_index()

① 对行索引,进行升序排列

df = pd.DataFrame({"A":[1,3,5,7,9],

"D":[1,2,3,4,5],

"C":[3,6,9,12,15],

"B":[2,4,6,8,10]},

index=list("acbed"))

display(df)

display(id(df))

df.sort_index(axis=0,ascending=True,inplace=True)

display(df)

display(id(df))

df1 = df.sort_index(axis=0,ascending=True)

display(df1)

display(id(df1))

结果如下

② 对列索引,进行降序排列

df = pd.DataFrame({"A":[1,3,5,7,9],

"D":[1,2,3,4,5],

"C":[3,6,9,12,15],

"B":[2,4,6,8,10]},

index=list("acbed"))

display(df)

df.sort_index(axis=1,ascending=False,inplace=True)

display(df)

结果如下

3、值排序:df.sort_values()

① 对某一列进行升序排列(有实际意义)

df = pd.DataFrame({"A":[3,1,5,9,7],

"D":[4,1,2,5,3],

"C":[3,15,9,6,12],

"B":[2,4,6,10,8]},

index=list("acbed"))

display(df)

df.sort_values(by="A",axis=0,ascending=True,inplace=True)

display(df)

结果如下

② 对某一行进行降序排列(实际意义不大)

df = pd.DataFrame({"A":[3,1,5,9,7],

"D":[4,1,2,5,3],

"C":[3,15,9,6,12],

"B":[2,4,6,10,8]},

index=list("acbed"))

display(df)

df.sort_values(by="A",axis=1,ascending=False,inplace=True)

display(df)

结果如下

③ 对多列进行联合排序(重要)

df = pd.DataFrame({"A":[3,1,3,9,7],

"D":[666,1,888,5,3],

"C":[3,15,9,6,12],

"B":[2,4,6,10,8]},

index=list("acbed"))

display(df)

df.sort_values(by=["A","D"],axis=0,ascending=[True,False],inplace=True)

df

结果如下

4、sort_values()中的na_position参数

na_position参数用于设定缺失值的显示位置,first表示缺失值显示在最前面;last表示缺失值显示在最后面。

df = pd.DataFrame({"A":[10,8,np.nan,2,4],

"D":[1,7,5,3,8],

"B":[5,2,8,4,1]},

index=list("abcde"))

display(df)

df.sort_values(by="A",axis=0,inplace=True,na_position="first")

display(df)

df.sort_values(by="A",axis=0,inplace=True,na_position="last")

display(df)

结果如下

5、“值排名”:rank()函数

1)rank()函数的常用参数说明

2)原始数据

= {"name":["张三","李四","王五","赵六","郑七","陈八","黄九","孙十"],

"sales":[60,40,50,40,30,80,70,60]}

df = pd.DataFrame(x)

display(df)

结果如下

3)rank()函数使用如下

① method="first"

= {"name":["张三","李四","王五","赵六","郑七","陈八","黄九","孙十"],

"sales":[60,40,50,40,30,80,70,60]}

df = pd.DataFrame(x)

display(df)

df["排名"] = df["sales"].rank(method="first")

display(df)

结果如下

② method="min"

= {"name":["张三","李四","王五","赵六","郑七","陈八","黄九","孙十"],

"sales":[60,40,50,40,30,80,70,60]}

df = pd.DataFrame(x)

display(df)

df["排名"] = df["sales"].rank(method="min")

display(df)

结果如下

③ method="max"

= {"name":["张三","李四","王五","赵六","郑七","陈八","黄九","孙十"],

"sales":[60,40,50,40,30,80,70,60]}

df = pd.DataFrame(x)

display(df)

df["排名"] = df["sales"].rank(method="max")

display(df)

结果如下

④ method="average"

= {"name":["张三","李四","王五","赵六","郑七","陈八","黄九","孙十"],

"sales":[60,40,50,40,30,80,70,60]}

df = pd.DataFrame(x)

display(df)

df["排名"] = df["sales"].rank(method="average")

display(df)

结果如下

最新文章
中国人工智能生成内容(AIGC)行业产业链全景、市场规模及投资前景研究报告(2025版)
在当今这个信息爆炸的时代,如何精准把握市场动态,洞悉行业趋势,成为企业和投资者共同关注的焦点。为此,智研咨询分析团队倾力打造的《2025-2031年中国人工智能生成内容(AIGC)行业市场全景调查及战略咨询研究报告》,旨在为各界精英提
跳转微信公众号解决方案?你想不到的最快捷引流方式?
目前最简便、最快捷且流量最大的方法是使用微信中的“扫一扫”功能,通过扫描商家自己的微信公众号二维码实现进入公众号的目的。如果不想使用二维码,而是使用外链的方式让用户进入商家自己的微信公众号.可以借助第三方外链平台实现[比如:
粤剧《牡丹亭》之游园惊梦(文汝清/曾小敏演唱)
粤剧《牡丹亭》之游园惊梦演唱:文汝清 曾小敏杜丽娘【游园曲】春光满眼万花妍,三春景致何曾见。玉燕双双绕翠轩,蝶儿飞舞乐绵绵,乐绵绵,万花争吐艳。绿柳娇嫩,倚池畔随风曳展。心忧岁月变迁,一朝美艳化烟,叹春光易逝愁深牵。看牡丹
WordPress functions.php,函数文件 文字详细教程
不知道WordPress的function.php文件是什么,或者你能用它做什么?简而言之,WordPress的function.php文件为你提供了一个向你的网站添加代码段的方法。你可以以各种有用的方式使用这些代码段,所以了解function.php文件的工作方式可以帮助你
排序算法:插入排序
插入排序的思想是假设前n个元素是有序的,那么就把第n+1个元素插入到前n个元素中的适当位置,直到第m个元素 假设我有个数组{3,1,4,2} 那么对于第一次遍历来说: 有序的就是 arr[0] 要插入的是arr[1] 经过比较后 第一
如何提高新站被百度收录的速度:深度分析与加速策略
新站被百度收录,是站点上线后需重点关注之事。然而,该收录时长并非固定,受多种因素影响。本篇文章将深度剖析影响这一时长的主要因素,并给出加快收录速度的策略。网站性质对收录时间的影响网站特性对百度收录时限影响显著。新设站点通常
新鲜早科技丨ChatGPT搜索功能上新;谷歌推出视频模型VEO 2;苏姿丰辟谣AMD与Intel可能合并的传言
21世纪经济报道新质生产力研究院综合报道 早上好,新的一天又开始了。在过去的24小时内,科技行业发生了哪些有意思的事情?来跟21tech一起看看吧。 【巨头风向标】 1、 ChatGPT搜索功能上新,新增实时搜索和高级语音功能。12月17日,OpenAI
深圳亚马逊中级运营岗位职责
一、您能收获什么?A.公司优势:1.【专注精品】公司为精品模式,注重产品的质量及产品生命周期,看重客户的用户体验;2.【产品成果】我们的产品在小类目中处于前列;3.【持续培训】我们提供内部培训机会,定期的前端运营打法培训交流沟通,
php实现动态口令认证(谷歌身份验证器)
PHP Google 身份验证器演示这并不是一个功能齐全的应用程序。 仅演示如何将 Google Authenticator 移动应用程序与您的网站一起用作 2 因素登录系统或一次性密码。 这个简单的 PHP 脚本演示了使用 PHP 实现 Google Authenticator。 要使用此
每日凌晨对注册建造师专业、数量进行自动比对!该省住建厅发文
点击上方蓝字 关注我们 了解更多精彩12月11日,河北省住建厅发布关于公开征求《关于建立资质常态预警和动态核查机制加强全省建筑业企业资质批后监管的通知(征求意见稿)》意见的公告。自动比对+预警!(一)常态比对依托河北省建筑市场监
相关文章
推荐文章
发表评论
0评