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

【Pandas】pandas DataFrame rename

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 的行索引标签或列名的方法

pandas.DataFrame.rename()

pandas.DataFrame.rename() 是一个用于重命名 DataFrame 的行索引标签或列名的方法。它允许通过映射函数、字典或函数来修改索引或列的名称,常用于数据清洗和预处理。


📌 方法签名
DataFrame.rename(mapper=None, *, index=None, columns=None, axis=None, copy=None, inplace=False, level=None, errors='ignore')

🔧 参数说明
参数类型说明
mapperdict 或 callable用于映射旧标签到新标签的字典或函数(默认作用于 axis=1 即列)
indexdict 或 callable仅用于重命名行索引
columnsdict 或 callable仅用于重命名列名
axis{0/'index', 1/'columns'},默认为 1指定作用轴
copybool,默认 True是否复制底层数据
inplacebool,默认 False是否在原对象上修改
levelint 或 str,可选多级索引时指定层级
errors{'ignore', 'raise'},默认 'ignore'如果键不存在是否报错

✅ 返回值
  • 返回一个新的 DataFrame,其索引或列名已被重命名;
  • inplace=True,则返回 None

🧪 示例代码及结果
示例 1:使用字典重命名列名
import pandas as pddf = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]
}, index=['x', 'y', 'z'])# 使用字典重命名列名
df_renamed = df.rename(columns={'A': 'NewA', 'B': 'NewB'})print("Original DataFrame:")
print(df)
print("\nRenamed Columns:")
print(df_renamed)
输出结果:
Original DataFrame:A  B
x  1  4
y  2  5
z  3  6Renamed Columns:NewA  NewB
x     1      4
y     2      5
z     3      6

示例 2:使用函数批量重命名列名(如添加前缀)
# 使用函数添加前缀
df_prefix = df.rename(columns=lambda col: 'Col_' + col)print("\nColumns with prefix:")
print(df_prefix)
输出结果:
Columns with prefix:Col_A  Col_B
x      1      4
y      2      5
z      3      6

示例 3:重命名行索引标签
# 重命名行索引
df_index_renamed = df.rename(index={'x': 'row1', 'y': 'row2'})print("\nIndex renamed:")
print(df_index_renamed)
输出结果:
Index renamed:A  B
row1  1  4
row2  2  5
z     3  6

示例 4:同时重命名行和列(使用 indexcolumns
df_both = df.rename(index={'x': 'rowX', 'y': 'rowY'},columns={'A': 'ColA', 'B': 'ColB'}
)print("\nBoth index and columns renamed:")
print(df_both)
输出结果:
Both index and columns renamed:ColA  ColB
rowX       1     4
rowY       2     5
z          3     6

示例 5:使用 inplace=True 原地修改
df.rename(columns={'A': 'AAA'}, inplace=True)
print("\nInplace rename (modified original):")
print(df)
输出结果:
Inplace rename (modified original):AAA  B
x    1  4
y    2  5
z    3  6

示例 6:忽略不存在的键(errors=‘ignore’)
# 忽略不存在的列名
df_ignore = df.rename(columns={'C': 'NewC'}, errors='ignore')
print("\nIgnore non-existent column 'C':")
print(df_ignore)
输出结果:
Ignore non-existent column 'C':AAA  B
x    1  4
y    2  5
z    3  6

示例 7:多级索引重命名(level 参数)
# 创建多级索引 DataFrame
df_multi = pd.DataFrame({'value': [10, 20, 30]
}, index=pd.MultiIndex.from_tuples([('a', 1), ('a', 2), ('b', 1)], names=['group', 'id']))# 重命名第一级索引
df_level_renamed = df_multi.rename(index={'a': 'groupA', 'b': 'groupB'}, level=0)print("\nMultiIndex rename (level=0):")
print(df_level_renamed)
输出结果:
MultiIndex rename (level=0):value
group    id          
groupA   1        102        20
groupB   1        30

🧠 应用场景
  • 数据清洗中统一列名格式(如大小写、空格、前缀等);
  • 多源数据合并前标准化字段名;
  • 多级索引结构优化;
  • 提高可读性(如将英文列名翻译成中文);
  • 模型预测后与原始数据结构对齐。

⚠️ 注意事项
  • 默认不会修改原始 DataFrame,除非设置 inplace=True
  • 可以使用字典或函数进行灵活重命名;
  • 支持多级索引,通过 level 控制层级;
  • 使用 errors='ignore' 可避免因不存在的键报错;
  • rename() 不会改变数据内容,只改变标签名称。
http://www.lqws.cn/news/100135.html

相关文章:

  • Apache Druid
  • Linux 测试本机与192.168.1.130 主机161/udp端口连通性
  • Python Pytest
  • AI视频编码器(0.4.3) 调试训练bug——使用timm SoftTargetCrossEntropy时出现loss inf
  • 接口自动化测试之pytest接口关联框架封装
  • MySQL的MVCC机制
  • HA: Wordy靶场
  • 攻防世界-unseping
  • DeepSeek 赋能 NFT:数字艺术创作与交易的革新密码
  • 一个html实现数据库自定义查询
  • DApp 开发:开启去中心化应用新时代
  • 如何避免工具过多导致的效率下降
  • 移动Web Day03
  • 深入解析Linux死锁:原理、原因及解决方案
  • LeetCode刷题 -- 542. 01矩阵 基于 DFS 更新优化的多源最短路径实现
  • 深度学习学习率调度器指南:PyTorch 四大 scheduler 对决
  • 机器学习在多介质环境中多污染物空间预测的应用研究
  • 如何写一条高效分页 SQL?
  • 高考数学易错考点02 | 临阵磨枪
  • Go Modules 详解 -《Go语言实战指南》
  • 【图像处理入门】4. 图像增强技术——对比度与亮度的魔法调节
  • 悟饭游戏厅苹果版(悟饭掌悦)|iOS游戏社区手柄工具
  • 建筑工程施工进度智能编排系统 (SCS-BIM)
  • 基于大模型的短暂性脑缺血发作(TIA)全流程预测与诊疗辅助系统详细技术方案
  • 前端验证下跨域问题(npm验证)
  • 【前端AI实践】简说AI大模型:AI大模型的基本概念和使用
  • WebFuture 系列产品 15.2.4 发布公告
  • 负载均衡相关基本概念
  • grpc的二进制序列化与http的文本协议对比
  • 【IOS】GCD学习