当前位置: 首页 > news >正文

6. Pandas 数据排序与排名

数据排序与排名

在数据分析中,排序与排名是基础而关键的操作。Pandas 提供了高效方法,包括按列或索引排序 (sort_valuessort_index) 以及数值排名 (rank)。掌握这些操作可以快速提取关键信息、生成报表、判断趋势。本文通过实例演示常用排序与排名技巧。


1. 按列排序(sort_values)

1.1 升序排序

import pandas as pddata = {"姓名": ["张三", "李四", "王五", "赵六"],"年龄": [23, 34, 29, 40],"成绩": [88, 92, 75, 95]
}df = pd.DataFrame(data)
print("原始数据:\n", df)# 按年龄升序排序
df_sorted_age = df.sort_values(by='年龄')
print("\n按年龄升序排序:\n", df_sorted_age)
原始数据:姓名  年龄  成绩
0  张三  23  88
1  李四  34  92
2  王五  29  75
3  赵六  40  95按年龄升序排序:姓名  年龄  成绩
0  张三  23  88
2  王五  29  75
1  李四  34  92
3  赵六  40  95

1.2 降序排序

# 按成绩降序排序
df_sorted_score = df.sort_values(by='成绩', ascending=False)
print("按成绩降序排序:\n", df_sorted_score)
按成绩降序排序:姓名  年龄  成绩
3  赵六  40  95
1  李四  34  92
0  张三  23  88
2  王五  29  75

2. 按多列排序

可同时指定多列及各列的排序顺序:

# 先按年龄升序,再按成绩降序
df_sorted_multi = df.sort_values(by=['年龄', '成绩'], ascending=[True, False])
print("多列排序(年龄升序,成绩降序):\n", df_sorted_multi)
多列排序(年龄升序,成绩降序):姓名  年龄  成绩
0  张三  23  88
2  王五  29  75
1  李四  34  92
3  赵六  40  95

3. 按索引排序(sort_index)

  • axis=0(默认)表示按行索引排序
  • axis=1 表示按列索引排序
# 重置索引以演示索引排序
df_reset = df_sorted_age.reset_index(drop=True)
print("重置索引后:\n", df_reset)# 按行索引排序
df_index_sorted = df_reset.sort_index()
print("\n按索引排序:\n", df_index_sorted)
重置索引后:姓名  年龄  成绩
0  张三  23  88
1  王五  29  75
2  李四  34  92
3  赵六  40  95按索引排序:姓名  年龄  成绩
0  张三  23  88
1  王五  29  75
2  李四  34  92
3  赵六  40  95
点击添加单元格。

3. 排名函数(rank)

rank 可对数值列进行排名,支持多种方法处理重复值。

# 按成绩排名(默认平均排名)
df['排名'] = df['成绩'].rank()
print("成绩排名(平均排名法):\n", df)# method='min':相同值取最小排名
df['min'] = df['成绩'].rank(method='min')# method='max':相同值取最大排名
df['max'] = df['成绩'].rank(method='max')# method='first':按出现顺序排名
df['first'] = df['成绩'].rank(method='first')print("\n不同排名方法:\n", df)df['成绩排名_desc'] = df['成绩'].rank(ascending=False)
print("\n成绩降序排名:\n", df)
成绩排名(平均排名法):姓名  年龄  成绩   排名
0  张三  23  88  2.0
1  李四  34  92  3.0
2  王五  29  75  1.0
3  赵六  40  95  4.0不同排名方法:姓名  年龄  成绩   排名  min  max  first
0  张三  23  88  2.0  2.0  2.0    2.0
1  李四  34  92  3.0  3.0  3.0    3.0
2  王五  29  75  1.0  1.0  1.0    1.0
3  赵六  40  95  4.0  4.0  4.0    4.0成绩降序排名:姓名  年龄  成绩   排名  min  max  first  成绩排名_desc
0  张三  23  88  2.0  2.0  2.0    2.0        3.0
1  李四  34  92  3.0  3.0  3.0    3.0        2.0
2  王五  29  75  1.0  1.0  1.0    1.0        4.0
3  赵六  40  95  4.0  4.0  4.0    4.0        1.0

4. 小结

  • sort_values:按列排序,可升序或降序,支持多列排序。
  • sort_index:按行或列索引排序,便于数据整理和重排。
  • rank:生成数值列排名,处理重复值灵活(平均、最小、最大、按顺序)。

排序与排名是数据分析、报表生成和趋势判断的重要工具。熟练掌握这些方法,可帮助快速提取关键信息,提高数据处理效率。

http://www.dtcms.com/a/438719.html

相关文章:

  • lanqiao1110 小王子单链表——单链表
  • 张店网站建设价免费的编程自学软件
  • 农机网站建设目标php网站mysql数据库导入工具
  • 浙江网站建设平台app开发费用计入什么科目
  • 2025年渗透测试面试题总结-100(题目+回答)
  • 做网站赚钱容易吗推广赚钱平台有哪些
  • AutoOps:简单的 Elasticsearch 集群监控与管理现已支持本地部署
  • Async++ 源码分析3---cancel.h
  • Async++ 源码分析4---continuation_vector.h
  • 一个做搞笑类视频的网站取名网站建设平台协议书
  • 机器学习、数据科学、深度学习、神经网络的区别与联系
  • 上海嘉定网站设计商城首页网站
  • 显示系统(二):显示适配器(显卡)背后的历史
  • 嘉兴网站制作案例无代码制作网页
  • 网站页面seo做网站的语
  • 建设银行注册网站的用户名怎么写建设一个货架网站
  • 排序(Sort)
  • [Web网页] Web 基础
  • 做商铺的网站有那些怎么检查网站的死链
  • 网站做qq发送链接广东省建设监理协会网站 - 首页
  • 操作系统应用开发(十八)RustDesk-API服务器数据库——东方仙盟金丹期
  • 济南小型网站建设厦门人才网唯一官方网站
  • 1518. 换水问题
  • 中国空间站完成了多少404错误页面放在网站的哪里
  • 新媒体运营需要哪些技能seo知识分享
  • Java数据类型与字符串操作全解析
  • linux文件系统学习
  • Effective Python 第37条:用组合类实现多层结构,避免嵌套内置类型
  • C语言计算矩阵的逆
  • 如何传递上层变数到编译过的模组当中