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

一周学会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 会丢弃旧索引,生成新索引。

相关文章:

  • mysql主从同步
  • TRAE 配置blender MCP AI自动3D建模
  • HT71663同步升压2.7V-13V输入10A聚能芯半导体禾润一级代理
  • 深入理解指针(3)
  • docker常用命令总结
  • 动态路由匹配
  • 【计算机视觉】OpenCV实战项目: opencv-text-deskew:实时文本图像校正
  • 【高并发内存池】从零到一的项目之centralcache整体结构设计及核心实现
  • 第五节:对象与原型链:JavaScript 的“类”与“继承”
  • NoMachine 将虚拟显示器改为物理显示器
  • 【nestjs】一般学习路线
  • 常见降维算法分析
  • Java游戏服务器开发流水账(3)游戏数据的缓存简介
  • spark缓存-persist
  • 算法与数据结构 - 二叉树结构入门
  • 【HarmonyOS NEXT+AI】问答05:ArkTS和仓颉编程语言怎么选?
  • 使用 React Native实现鸿蒙开发的详细方案
  • 双端口ram与真双端口ram的区别
  • 解决 MySQL 数据库无法远程连接的问题
  • BLURRR剪辑软件免费版:创意剪辑,轻松上手,打造个性视频
  • 婚姻登记“全国通办”首日观察:数据多跑路,群众少跑腿
  • 工行回应两售出金条发现疑似杂质:情况不属实,疑似杂质应为金条售出后的外部附着物
  • 习近平会见委内瑞拉总统马杜罗
  • 协会:坚决支持司法机关依法打击涉象棋行业的违法行为
  • 中国以优化营商环境为支点,为全球企业提供可预期市场环境
  • 上海启动万兆光网试点建设,助力“模速空间”跑出发展加速度