小白入门,Pandas 实现数据列重命名的4种方法详解

在数据分析过程中,数据列的命名往往会影响代码的可读性和分析的效率.pandas 提供了简单高效的方法来重命名数据列,无论是针对单个列还是多个列.本文将详细介绍如何利用pandas 实现数据列的重命名,并结合代码示例进行讲解.

这里插播一条粉丝福利,如果你正在学习Python或者有计划学习Python,想要突破自我,对未来十分迷茫的,可以点击这里获取最新的Python学习资料和学习路线规划(免费分享,记得关注)


方法一:使用DataFrame.rename()

rename() 方法是 pandas 提供的官方方法,可以通过字典形式传入新旧列名的映射关系来实现列名的重命名.

示例代码

python


复制代码
import pandas as pd

# 创建示例数据
data = {
    "old_name1": [1, 2, 3],
    "old_name2": [4, 5, 6],
    "old_name3": [7, 8, 9],
}
df = pd.DataFrame(data)

# 使用 rename 方法重命名列
df_renamed = df.rename(columns={
    "old_name1": "new_name1",
    "old_name2": "new_name2",
})

print("原始数据:")
print(df)
print("\n重命名后的数据:")
print(df_renamed)

运行结果

plaintext


复制代码
原始数据:
   old_name1  old_name2  old_name3
0          1          4          7
1          2          5          8
2          3          6          9

重命名后的数据:
   new_name1  new_name2  old_name3
0          1          4          7
1          2          5          8
2          3          6          9

详细说明

  1. rename(columns={旧列名: 新列名}) 参数中,提供一个字典以定义旧列名与新列名之间的映射关系.

  2. 如果未指定inplace=True,rename() 返回一个修改后的副本,而不更改原始数据.

  3. 如果希望直接修改原始数据,可以添加参数inplace=True.


方法二:直接修改columns 属性

如果需要重命名所有列名,可以直接修改DataFrame.columns 属性,提供一个新的列名列表.

示例代码

python


复制代码
# 修改列名
df.columns = ["column1", "column2", "column3"]

print("修改列名后的数据:")
print(df)

运行结果

plaintext


复制代码
修改列名后的数据:
   column1  column2  column3
0        1        4        7
1        2        5        8
2        3        6        9

详细说明

  1. 需要确保新列名列表的长度与原列名数量一致,否则会报错.

  2. 这种方法简单直接,但不适用于部分列重命名的场景.


方法三:利用列表推导式实现批量重命名

当列名具有一定的模式(如添加前缀或后缀)时,可以利用列表推导式结合DataFrame.columns 实现批量操作.

示例代码

python


复制代码
# 添加前缀 'new_'
df.columns = ["new_" + col for col in df.columns]

print("添加前缀后的数据:")
print(df)

运行结果

plaintext


复制代码
添加前缀后的数据:
   new_column1  new_column2  new_column3
0            1            4            7
1            2            5            8
2            3            6            9

详细说明

  1. 通过列表推导式可以根据自定义规则修改列名,例如添加前缀、后缀,或进行格式化操作.

  2. 操作简洁高效,适用于列名具有规律的场景.


方法四:通过正则表达式实现复杂的重命名

对于复杂的列名转换需求,可以结合str.replace() 方法和正则表达式进行灵活处理.

示例代码

python


复制代码
# 创建复杂列名示例数据
data = {
    "2021_sales": [100, 200, 300],
    "2021_profit": [50, 80, 120],
    "2021_expense": [30, 40, 60],
}
df = pd.DataFrame(data)

# 使用正则表达式移除年份前缀
df.columns = df.columns.str.replace(r"\d{4}_", "", regex=True)

print("移除年份前缀后的数据:")
print(df)

运行结果

plaintext


复制代码
移除年份前缀后的数据:
   sales  profit  expense
0    100      50       30
1    200      80       40
2    300     120       60

详细说明

  1. str.replace() 方法支持正则表达式匹配,可以灵活处理复杂的列名变换.

  2. 添加regex=True 参数以启用正则表达式功能.


总结

适用场景总结

方法

适用场景

rename()

部分列重命名,适合小规模修改.

修改columns 属性

全列重命名,简单直接.

列表推导式

批量重命名,适用于列名具有规律的场景.

正则表达式结合str.replace()

复杂列名转换,灵活高效.

熟练掌握以上方法,能够帮助我们在数据清洗和处理过程中大幅提高工作效率.根据具体需求选择合适的方法,能更快、更准确地完成列名的重命名任务.

最后,我精心筹备了一份全面的Python学习大礼包,完全免费分享给每一位渴望成长、希望突破自我现状却略感迷茫的朋友。无论您是编程新手还是希望深化技能的开发者,都欢迎加入我们的学习之旅,共同交流进步!

🌟 学习大礼包包含内容:

Python全领域学习路线图:一目了然,指引您从基础到进阶,再到专业领域的每一步学习路径,明确各方向的核心知识点。

超百节Python精品视频课程:涵盖Python编程的必备基础知识、高效爬虫技术、以及深入的数据分析技能,让您技能全面升级。

实战案例集锦:精选超过100个实战项目案例,从理论到实践,让您在解决实际问题的过程中,深化理解,提升编程能力。

华为独家Python漫画教程:创新学习方式,以轻松幽默的漫画形式,让您随时随地,利用碎片时间也能高效学习Python。

互联网企业Python面试真题集:精选历年知名互联网企业面试真题,助您提前备战,面试准备更充分,职场晋升更顺利。

👉 立即领取方式:只需【点击这里】,即刻解锁您的Python学习新篇章!让我们携手并进,在编程的海洋里探索无限可能 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值