分享好友 最新动态首页 最新动态分类 切换频道
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)

结果如下

最新文章
耐玩又不氪金的手游排行榜
简介:  3733游戏盒子集合全网公益服手游,包括BT版、满VIP版、GM版、无敌汉化版等,内置的游戏,充值低至0.1折,可20倍加速,让任务/跑环更轻松。3733游戏盒还重磅打造帐号交易与小号回收功能,小号不玩,官方高价回收。此外,盒子还拥
刘春雄:快消品时代之问:新增长与高效率 | 营销盛典分享
12月6日至7日,以“越关山·突破周期,创新增长”为主题,由销售与市场杂志社与安得智联主办,名仁苏打水、淘工厂・淘宝买菜赞助的第二十一届中国营销盛典暨第二届中国消费品新供应链新增长大会在广东佛山顺德如期举行,来自不同领域的品牌
最好的Google关键词长尾词查找挖掘工具 – 2019收藏版
英文SEO内容优化是一个复杂的系统工程,要提高这项工作的能力,除了应该具备一套完整的结构化思维之外,找到一个好用的工具能够极大的提高工作效率。1.  AdWordSEO Keyword Permutation Generator想找到更多的关键词组合,这个工具可以轻
谷歌推广是什么?谷歌推广怎么做?
谷歌推广是什么? GoogleAds,原名GoogleAdWords,是Google公司主要的广告服务产品。AdWords是一种在Google搜索结果页展示的按点击付费的关键字广告。 谷歌推广怎么做? 一:外贸网站建设 外贸网站建设是谷
服装品牌策划方案(大全8篇)
随着市场经济的飞速发展,女性的生活品味、生活质量,正在发生着质的飞跃,饰物与服装也实现了完美结合。下面是本站小编为你带来的服装品牌策划方案范文,欢迎参阅。一、专场活动名称:源于自然 演绎时尚——---------专业毕业设计作品展示
该股的最大炒作亮点是什么?潜在题材又是什么?验证成为手机用户,查看该股万隆原创动态分析报告
老铁们,今天行情,如果没有昨天那个会议利好和高开的走势,老白会觉得微涨还不错,加上美股那边已经跌了两天,而A股则是连涨两天,但是现在的情况好像是昨天那波高开低走是消失了一样,一点都没影响到A股,今天来到了3432点,成交量也有1.
国际站店铺装修指南:打造高转化率的视觉营销空间
尊敬的店主,您是否曾遇到这样的情况:您精心挑选了商品,却发现销售效果并不理想,顾客在进入店铺后很快流失?不用担心,今天就为大家分享一份宝贵的指南,教您如何打造一个高转化率的视觉营销空间。第一步:合理规划空间布局第二步:选用
目前有那些信息流广告(5个搜索引擎信息流广告效果和投放体验)
我们致力于提供一个高质量内容的交流平台。为落实国家互联网信息办公室依法管网、依法办网、依法上网的要求,为完善跟帖评论自律管理,为了保护用户创造的内容、维护开放、真实、专业的平台氛围,我们团队将依据本公约中的条款对注册用户和
百度网站收录提交,百度网站收录提交器
快速提升网站可见度与搜索引擎排名的必备技巧一、理解网站收录的重要性百度作为中国最大的搜索引擎,拥有庞大的用户群体和高度的市场占有率。为了确保您的网站能够被更多潜在用户发现并访问,网站是至关重要的一步。正确的提交方式不仅能加
一步到位,利用AI生成超逼真美女写真,轻松上手!
在这个科技飞速发展的年代,AI的应用已经渗透到我们生活的方方面面。其中,AI绘画、AI写真制作更是得到了广泛的关注。不少小伙伴们都曾幻想过,拥有一张属于自己的专属美女写真,甚至可以用它来当做社交平台的头像,或者送给好友作为惊喜。
相关文章
推荐文章
发表评论
0评