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

Pandas重命名列问题:含双单引号表头无法用pd.rename解决

解决表头含单双引号无法用pd.rename修改的替代方案
  • 直接修改DataFrame的columns属性
    直接获取当前列名数组,清洗掉引号后重新赋值给columns,简单直接:

    # 清洗列名,去除所有单双引号
    cleaned_columns = [col.strip('"\'') for col in df.columns]
    # 直接替换原列名
    df.columns = cleaned_columns
    

    如果需要精准替换特定列(不是全部清洗),可以手动构建新列名列表对应原列顺序:

    df.columns = ['新列名1', '新列名2', '新列名3']  # 列表顺序必须和原列完全对应
    
  • 读取数据阶段提前处理表头
    如果数据是从文件读取的,在读取时就处理表头,避免后续麻烦:

    import pandas as pd
    
    # 先读取表头行并清洗(分隔符根据实际文件调整,比如\t、;等)
    with open('your_data.csv', 'r', encoding='utf-8') as f:
        raw_header = f.readline().strip().split(',')
    cleaned_header = [col.strip('"\'') for col in raw_header]
    
    # 读取数据时指定处理后的表头
    df = pd.read_csv('your_data.csv', header=0, names=cleaned_header)
    
  • 使用set_axis方法批量替换列名
    利用pandas的set_axis方法设置列轴标签,支持链式调用:

    cleaned_columns = [col.replace('"', '').replace("'", "") for col in df.columns]
    # 非原地修改,返回新的DataFrame
    df = df.set_axis(cleaned_columns, axis='columns', inplace=False)
    # 若想直接修改原DataFrame,设置inplace=True
    # df.set_axis(cleaned_columns, axis='columns', inplace=True)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:52:04