You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用函数批量重命名DataFrame的多列表头?

Pandas DataFrame 批量重命名表头的实用方法

当需要重命名大量列(比如100列)时,手动逐个指定映射的方法效率极低,以下是几种高效的实现方式:

1. 直接赋值列名列表(适合有统一规律的场景)

如果新列名有固定规律(比如序号命名、加统一前缀/后缀),直接生成新列名列表赋值给df.columns是最快捷的方式:

import pandas as pd

# 示例1:生成col_1到col_N的列名
df.columns = [f"col_{i+1}" for i in range(len(df.columns))]

# 示例2:给所有列名加统一前缀
df.columns = ["processed_" + col for col in df.columns]

# 示例3:批量替换列名中的特定字符
df.columns = df.columns.str.replace("raw_", "")

2. 结合自定义函数使用rename()方法(适合复杂自定义规则)

如果列名需要复杂的个性化处理,写一个自定义函数,通过rename()方法应用到所有列:

# 自定义列名处理函数
def process_col_name(col):
    # 这里可以写任意自定义逻辑:比如去空格、转驼峰、提取关键信息等
    cleaned_col = col.strip().replace(" ", "_").lower()
    # 示例:如果列名包含"date"就加后缀"_dt"
    if "date" in cleaned_col:
        cleaned_col += "_dt"
    return cleaned_col

# 应用函数到所有列,inplace=True直接修改原DataFrame
df.rename(columns=process_col_name, inplace=True)

3. 用lambda函数快速实现简单规则

对于简单的列名转换,用lambda函数可以省去单独定义函数的步骤:

# 示例1:所有列名转为大写
df.rename(columns=lambda x: x.upper(), inplace=True)

# 示例2:给每个列名添加对应的索引序号
df.rename(columns=lambda x, idx: f"{x}_{idx+1}", inplace=True)

选择哪种方法取决于你的具体需求:规律化的列名用直接赋值最高效,复杂逻辑用自定义函数更灵活。

内容的提问来源于stack exchange,提问作者Chun Seong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 08:45:38