如何在 Pandas 中重命名列
Updated on
在使用 Pandas 进行数据清洗或整理时,重命名列几乎是最常见的操作之一。清晰、描述性强的列名可以让你的 DataFrame 更易阅读,并显著提升后续分析的效率与质量。
在这篇 2025 年更新的教程中,你将学到 在 Pandas 中重命名列的所有主流方法,包含最佳实践、示例以及常见坑点。
想更快地探索和可视化你的 Pandas DataFrame,而不用手写图表?
PyGWalker 可以将任意 DataFrame 转换为类似 Tableau 的可视化探索界面。 项目地址: https://github.com/Kanaries/pygwalker (opens in a new tab)
📌 在 Pandas 中重命名列是什么意思?
重命名列指的是 修改 DataFrame 中一个或多个列标签(列名)。
这在以下场景非常有用:
- 列名含义不清晰或风格不一致
- 列名包含空格、特殊字符或拼写错误
- 需要标准化列名以便合并数据或建模
- 为展示或可视化使用更友好的人类可读标签
Pandas 提供了多种便捷方式来重命名列 —— 不同方法适合不同需求。
🔧 在 Pandas 中重命名列的所有方法
下面是最常见、也最推荐的几种方式。
✅ 1. 使用 rename() 重命名单个列
这是最安全、最明确的方式。
import pandas as pd
df = pd.DataFrame({
'Name': ['John', 'Alex', 'Peter'],
'Age': [25, 24, 28],
'Gender': ['Male', 'Male', 'Male']
})
df = df.rename(columns={'Age': 'Years'})
print(df)输出:
Name Years Gender
0 John 25 Male
1 Alex 24 Male
2 Peter 28 Male✅ 2. 使用 rename() 重命名多个列
只需传入更大的字典即可:
df = df.rename(columns={
'Age': 'Years',
'Gender': 'Sex'
})这种方式可以避免意外改变列顺序,并且会保留原有索引。
✅ 3. 使用 df.columns = [...] 一次性重命名所有列
当你已经知道所有新列名时,这种方式很方便:
df.columns = ['ID', 'Years', 'Dept']⚠️ 重要提示:
列表长度必须与 DataFrame 的列数完全一致。
✅ 4. 使用 set_axis()(函数式风格)重命名列
该方法会返回一个新的 DataFrame,除非指定 inplace=True:
df = df.set_axis(['A', 'Years', 'B'], axis=1)虽然比较灵活,但对于简单重命名来说并不常用。
✅ 5. 使用列表推导式动态重命名列
非常适合批量格式化列名:
df.columns = [col.replace('_', ' ').title() for col in df.columns]用于自动化清理列名非常好用,例如:
- 全部转换为小写
- 去掉空格
- 批量添加前缀或后缀
示例:
df.columns = [col.lower() for col in df.columns]
df.columns = [f"user_{col}" for col in df.columns]✅ 6. 按索引重命名列
虽然不常见,但 Pandas 也支持按列索引重命名:
df = df.rename(columns={2: 'Dept'})当列名未知、存在重复,或者是动态生成时,这种方式会比较有用。
🧠 重命名列的最佳实践
✔ 优先使用 rename(),语义更清晰
rename() 的意图非常明确,不容易产生意外行为。
✔ 避免修改 df.columns,除非你要重命名所有列
直接替换整个列表虽然速度快,但如果列数不匹配就会报错,也更难排查。
✔ 在数据流水线中优先使用“全小写 + 下划线”风格
df.columns = [c.lower().replace(' ', '_') for c in df.columns]这种命名风格更适合自动化处理和长期维护。
✔ 避免使用 inplace=True
根据 Pandas 的官方建议,inplace=True 不会带来性能优势,反而会让代码不够简洁且难以链式调用。
⚡ 快速速查表(Cheatsheet)
df.rename(columns={'old': 'new'})
df.columns = ['A', 'B', 'C']
df = df.set_axis(['A', 'B', 'C'], axis=1)
df.columns = [col.lower() for col in df.columns]
df.rename(columns={2: 'new_name'})🏁 总结
重命名列是为 DataFrame 做分析前准备时一个简单却关键的步骤。Pandas 提供了多种方式来完成这件事——从使用 rename() 的显式重命名,到通过列表推导进行批量格式化。
推荐的使用策略是:
- 当你只想重命名部分列时,用
rename() - 当你要重命名所有列时,用
df.columns = [...] - 当需要动态批量转换列名时,用列表推导式
- 只有在必要时,才使用按索引重命名列的方式
利用好这些工具,就能让你的数据保持干净、统一且更易于后续分析和维护。
🔗 相关教程
- Dict to DataFrame in Pandas
- Add a Column to a DataFrame in Pandas
- Sort DataFrame in Pandas
- Creating an Empty DataFrame in Pandas
❓ 常见问题解答(FAQ)
1. 我该如何在 Pandas 中重命名某一列?
使用 rename():
df.rename(columns={'old': 'new'})2. 如何按列索引来重命名列?
df.rename(columns={0: 'id'})3. 如何一次性重命名所有列?
df.columns = ['A', 'B', 'C']