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

一周学会Pandas2 Python数据处理与分析-Pandas2数据排序操作

锋哥原创的Pandas2 Python数据处理与分析 视频教程:  

2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

Pandas 2提供了多种灵活的数据排序方法,主要针对 DataFrame 和 Series 对象。

1. 按值排序:sort_values()

这是最常用的排序方法,根据指定列或行的值进行排序。

具体语法:

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, na_position='last')

参数说明:

  • by:要排序的列名(或行索引),可以是单个字符串或列表(多列排序)。

  • axis:排序方向,0 表示按列排序(默认),1 表示按行排序。

  • ascending:排序顺序,True 为升序,False 为降序(多列时可传入列表指定每列顺序)。

  • inplace:是否直接修改原对象,False 时返回新对象(默认)。

  • na_position:缺失值的位置,'last'(默认)或 'first'

参考示例:

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 30, 22, 28],'Score': [85, 95, 75, 88]
}
df = pd.DataFrame(data)# 单列升序排序
df_sorted = df.sort_values(by='Age')# 多列排序:先按 Score 降序,再按 Age 升序
df_sorted = df.sort_values(by=['Score', 'Age'], ascending=[False, True])

2. 按索引排序:sort_index()

根据索引(行或列标签)进行排序,常用于时间序列或需要恢复原始顺序的场景。

基本语法:

DataFrame.sort_index(axis=0, ascending=True, inplace=False)

参数说明:

  • axis0 表示按行索引排序(默认),1 表示按列索引排序。

  • ascending:排序顺序,True 为升序,False 为降序(多列时可传入列表指定每列顺序)。

  • inplace:是否直接修改原对象,False 时返回新对象(默认)。

示例:

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 30, 22, 28],'Score': [85, 95, 75, 88]
}
df = pd.DataFrame(data)# 按行索引降序排序
df_sorted_index = df.sort_index(ascending=False)# 按列索引升序排序
df_sorted_columns = df.sort_index(axis=1)

3. 处理缺失值 (na_position)

sort_values 中,可以通过 na_position 控制缺失值的位置:

import pandas as pd
df_with_nan = pd.DataFrame({'A': [2, None, 1]})
df_sorted = df_with_nan.sort_values(by='A', na_position='first')  # NaN 排在最前

4. 重置索引

排序后索引可能会混乱,可使用 reset_index() 重置:

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 30, 22, 28],'Score': [85, 95, 75, 88]
}
df = pd.DataFrame(data)
df_sorted = df.sort_values(by='Age').reset_index(drop=True)
  • drop=True 会丢弃旧索引,生成新索引。

http://www.xdnf.cn/news/5115.html

相关文章:

  • React 第三十八节 Router 中useRoutes 的使用详解及注意事项
  • OpenHarmony SystemUI开发——修改状态栏和导航栏的高度
  • Mamba 状态空间模型 笔记 llm框架 一维卷积
  • Android设备序列号获取方式全解析
  • 使用pyTorch 自然语言处理(NLP)知识库创建
  • 青少年编程与数学 02-019 Rust 编程基础 03课题、变量与可变性
  • Java中医门诊系统源码 中医诊所系统源码
  • Jenkins Maven 带权限 搭建方案2025
  • 什么是移动设备管理(MDM)
  • el-menu 折叠后小箭头不会消失
  • AKS 支持 Kata Container容器沙盒 -预览阶段
  • 峰与谷系列题
  • 深入解析多线程与多进程:从理论到Python实践
  • 【LLaMA-Factory】使用LoRa微调训练DeepSeek-R1-Distill-Qwen-7B
  • 深入解析WPF中的3D图形编程:材质与光照
  • 关于fastjson与fastjson2中toJava操作的区别
  • SD二轮省集总结
  • Docker的基础操作
  • Nacos源码—7.Nacos升级gRPC分析四
  • GitHub 趋势日报 (2025年05月08日)
  • C++:书架
  • Windows Server 2025开启GPU分区(GPU-P)部署DoraCloud云桌面
  • Flink之Table API
  • PostgreSQL 表空间占用分析与执行计划详解
  • 考研英一学习笔记 2018年
  • 设计模式-命令模式
  • Ntfs!NtfsFillStandardInfo函数分析在scb和ccb中得到文件的标准信息
  • ai解释前端路由 hash或者History路由
  • Spring 必会之微服务篇(1)
  • 打造网络安全堡垒,企业如何应对DDoS、CC、XSS和ARP攻击