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

【Pandas】pandas DataFrame rename_axis

Pandas2.2 DataFrame

Reindexing selection label manipulation

方法描述
DataFrame.add_prefix(prefix[, axis])用于在 DataFrame 的行标签或列标签前添加指定前缀的方法
DataFrame.add_suffix(suffix[, axis])用于在 DataFrame 的行标签或列标签后添加指定后缀的方法
DataFrame.align(other[, join, axis, level, …])用于对齐两个 DataFrameSeries 的方法
DataFrame.at_time(time[, asof, axis])用于筛选 特定时间点 的行的方法
DataFrame.between_time(start_time, end_time)用于筛选 指定时间范围内的数据行 的方法
DataFrame.drop([labels, axis, index, …])用于从 DataFrame 中删除指定行或列的方法
DataFrame.drop_duplicates([subset, keep, …])用于删除重复行的方法
DataFrame.duplicated([subset, keep])用于检测 重复行 的方法
DataFrame.equals(other)用于比较两个 DataFrame 是否完全相等的方法
DataFrame.filter([items, like, regex, axis])用于筛选列或行标签的方法
DataFrame.first(offset)用于选取 时间序列型 DataFrame 中从起始时间开始的一段连续时间窗口 的方法
DataFrame.head([n])用于快速查看 DataFrame 前几行数据 的方法
DataFrame.idxmax([axis, skipna, numeric_only])用于查找 每列或每行中最大值的索引标签 的方法
DataFrame.idxmin([axis, skipna, numeric_only])用于查找 每列或每行中最小值的索引标签 的方法
DataFrame.last(offset)用于选取 时间序列型 DataFrame 中从最后时间点开始向前截取一段指定长度的时间窗口 的方法
DataFrame.reindex([labels, index, columns, …])用于重新索引 DataFrame 的核心方法
DataFrame.reindex_like(other[, method, …])用于将当前 DataFrame 的索引和列重新设置为与另一个对象(如另一个 DataFrame 或 Series)相同
DataFrame.rename([mapper, index, columns, …])用于重命名 DataFrame 的行索引标签或列名的方法
DataFrame.rename_axis([mapper, index, …])用于**重命名 DataFrame 的索引轴名称(index axis name)或列轴名称(column axis name)**的方法

pandas.DataFrame.rename_axis()

pandas.DataFrame.rename_axis() 是一个用于**重命名 DataFrame 的索引轴名称(index axis name)或列轴名称(column axis name)**的方法。它不修改行标签或列名本身,而是修改整个轴的“名称”属性,常用于数据整理和可视化时标注维度信息。


📌 方法签名
DataFrame.rename_axis(mapper=<no_default>, *, index=<no_default>, columns=<no_default>, axis=0, copy=None, inplace=False)

🔧 参数说明
参数类型说明
mapperstr、list-like 或 dict,可选新的轴名称;若未指定,则删除轴名称
indexstr、list-like 或 dict,可选单独设置行索引的名称(axis=0)
columnsstr、list-like 或 dict,可选单独设置列索引的名称(axis=1)
axis{0/'index', 1/'columns'},默认为 0指定作用于行轴还是列轴
copybool,默认 True是否复制底层数据
inplacebool,默认 False是否在原对象上修改

⚠️ rename_axis() 主要用于设置 IndexMultiIndex.name 属性。


✅ 返回值
  • 如果 inplace=False(默认),返回一个新的 DataFrame
  • 如果 inplace=True,则返回 None,原始 DataFrame 被修改。

🧪 示例代码及结果
示例 1:基本用法 - 设置行索引轴名称(axis=0)
import pandas as pddf = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]
}, index=['x', 'y', 'z'])# 设置行索引轴名称为 'rows'
df_renamed_axis = df.rename_axis('rows')print("Renamed row axis:")
print(df_renamed_axis)
print("\nAxis name:", df_renamed_axis.index.name)
输出结果:
Renamed row axis:A  B
x  1  4
y  2  5
z  3  6Axis name: rows

示例 2:设置列索引轴名称(axis=1)
# 设置列索引轴名称为 'cols'
df_renamed_cols_axis = df.rename_axis('cols', axis=1)print("Renamed column axis:")
print(df_renamed_cols_axis)
print("\nColumn axis name:", df_renamed_cols_axis.columns.name)
输出结果:
Renamed column axis:A  B
x  1  4
y  2  5
z  3  6Column axis name: cols

示例 3:使用 indexcolumns 同时设置多个轴名称
df_multi_axis = df.rename_axis(index='rows', columns='cols')print("Both axes renamed:")
print(df_multi_axis)
print("Row axis name:", df_multi_axis.index.name)
print("Column axis name:", df_multi_axis.columns.name)
输出结果:
Both axes renamed:A  B
x  1  4
y  2  5
z  3  6Row axis name: rows
Column axis name: cols

示例 4:删除轴名称(传入 None)
# 删除行索引轴名称
df_no_axis_name = df.rename_axis(None)print("No row axis name:")
print(df_no_axis_name)
print("Axis name:", df_no_axis_name.index.name)
输出结果:
No row axis name:A  B
x  1  4
y  2  5
z  3  6Axis name: None

示例 5:多级索引重命名轴名称(适用于 MultiIndex)
# 创建多级索引 DataFrame
df_multi_index = pd.DataFrame({'value': [10, 20, 30]
}, index=pd.MultiIndex.from_tuples([('a', 1), ('a', 2), ('b', 1)], names=['group', 'id']))# 重命名行索引轴名称
df_renamed_multi = df_multi_index.rename_axis(['category', 'identifier'])print("MultiIndex renamed axis:")
print(df_renamed_multi)
print("Index names:", df_renamed_multi.index.names)
输出结果:
MultiIndex renamed axis:value
category identifier          
a          1         102         20
b          1         30Index names: ['category', 'identifier']

示例 6:原地修改(inplace=True)
df.rename_axis('new_rows', inplace=True)
print("Inplace rename axis:")
print(df)
print("New index name:", df.index.name)
输出结果:
Inplace rename axis:A  B
x  1  4
y  2  5
z  3  6New index name: new_rows

🧠 应用场景
  • 数据可视化时标注坐标轴名称;
  • 多级索引结构中清晰标识层级含义;
  • 数据导出到文件(如 Excel)时保留轴名称;
  • 提高 DataFrame 的可读性和语义清晰度;
  • 在数据分析报告中展示更明确的维度信息。

⚠️ 注意事项
  • rename_axis() 不改变行/列标签本身,只改变轴的“名称”属性;
  • 可以通过 indexcolumns 分别设置不同轴的名称;
  • 支持多级索引,可用于重命名每一层的名称;
  • 若传入 None,则会删除当前轴名称;
  • 默认不会修改原始 DataFrame,除非设置 inplace=True
http://www.xdnf.cn/news/10869.html

相关文章:

  • Registry和docker有什么关系?
  • Vue.js 后台管理系统
  • java后端生成心电图-jfreechart
  • Java高级 | (二十二)快速应用开发框架——Spring Boot
  • 基于谷歌ADK的 智能产品推荐系统(1): 功能简介
  • 黑马Java面试笔记之 消息中间件篇(RabbitMQ)
  • LeetCode刷题 -- 542. 01矩阵 基于 DFS 更新优化的多源最短路径实现
  • 【Java实用工具类】手撸SqlBuilder工具类,优雅拼接动态SQL,MyBatisPlus同款风格!
  • NodeMediaEdge任务管理
  • 第11节 Node.js 模块系统
  • Redis 缓存问题及其解决方案
  • 接口继承和实现继承
  • OpenCV CUDA模块霍夫变换------在 GPU 上执行概率霍夫变换检测图像中的线段端点类cv::cuda::HoughSegmentDetector
  • OpenCV 滑动条调整图像亮度
  • 相机camera开发之差异对比核查一:测试机和对比机的硬件配置差异对比
  • 国标GB28181设备管理软件EasyGBS视频平台筑牢文物保护安全防线创新方案
  • Unity 性能优化终极指南 — GameObject 篇
  • 从零开始,学会上传,更新,维护github仓库
  • KV Cache:大语言模型推理加速的核心机制详解
  • AD转嘉立创EDA
  • Mac电脑_钥匙串操作选项变灰的情况下如何删除?
  • 机器学习——使用多个决策树
  • 从仿射矩阵得到旋转量平移量缩放量
  • MySQL 全量、增量备份与恢复
  • HJ73 计算日期到天数转换
  • 解决MyBatis参数绑定中参数名不一致导致的错误问题
  • 剑指offer14_二进制中1的个数
  • 谷歌地图免费下载手机版
  • OpenLayers 地图标注之Popup标注
  • 符号执行与SemFix、DirectFix 、Angelix的主要思想