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

【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.lqws.cn/news/87031.html

相关文章:

  • vue-15 (实践练习:使用路由防护实现身份验证和授权)
  • MTK的Download agent是什么下载程序?
  • 【开源工具】Python+PyQt5打造智能桌面单词记忆工具:悬浮窗+热键切换+自定义词库
  • 【开源工具】超全Emoji工具箱开发实战:Python+PyQt5打造跨平台表情管理神器
  • 【C++高并发内存池篇】性能卷王养成记:C++ 定长内存池,让内存分配快到飞起!
  • 第三章 3.MAC Address(CCNA)
  • Redis 缓存粒度如何控制?缓存整个对象还是部分字段?
  • 写读后感的时候,可以适当地引用书中的内容吗?
  • C++智能指针的知识!
  • 2048小游戏C++板来啦!
  • 第一篇:揭示模型上下文协议(MCP):AI的通用连接器
  • JavaSE:面向对象进阶之内部类(Inner Class)
  • STM32 智能小车项目 L298N 电机驱动模块
  • “application/json“,“text/plain“ 分别表示什么
  • 源码解析(三):Stable Diffusion
  • MySQL——事务
  • Java转义字符
  • PostgreSQL的扩展 insert_username
  • 复变函数 $w = z^2$ 的映射图像演示
  • BUUCTF[ACTF2020 新生赛]Include 1题解
  • 【linux 入门】第六章 磁盘分区+网络配置
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Sound Board(音响控制面板)
  • IPtables部署和使用
  • Gartner《Emerging Patterns for Building LLM-Based AIAgents》学习心得
  • 碳中和新路径:铁电液晶屏如何破解高性能与节能矛盾?
  • SOC-ESP32S3部分:26-物联网MQTT连云
  • 《深度剖析:基于Meta的GameFormer构建自博弈AI游戏代理》
  • 在Linux中配置内网可访问的YUM光盘源
  • 大模型前处理-CPU
  • 第四十天打卡