使用pd.read_excel导入Excel时,如何仅修改部分列名?
如何在使用pd.read_excel()导入文件时仅修改指定列名
针对你的需求,有两种高效的解决方案,无需手动写出全部99列的列名:
方法一:导入后使用rename()修改指定列(推荐)
先正常导入数据,再利用DataFrame的rename()方法仅修改目标列名,其他列名保持不变,这是最直观简便的方式:
import pandas as pd # 正常导入Excel文件,保留原列名 df = pd.read_excel('data.xlsx') # 定义需要修改的列名映射字典 rename_map = {'col_1': 'ID', 'col_2': 'name', 'col_3': 'score'} # 仅修改指定列名,其余列名不受影响 df.rename(columns=rename_map, inplace=True)
columns参数传入列名映射字典,键为原列名,值为新列名inplace=True表示直接在原DataFrame上修改;若不想改动原对象,可去掉该参数,将结果赋值给新变量(如new_df = df.rename(columns=rename_map))
方法二:导入时构造列名列表实现修改
如果需要在导入阶段就完成列名修改,可以先获取原文件的列名,再替换指定项后传入names参数:
import pandas as pd # 读取Excel文件的原列名(仅读取表头行) excel_handler = pd.ExcelFile('data.xlsx') original_cols = excel_handler.parse(nrows=0).columns.tolist() # 定义列名映射字典 rename_map = {'col_1': 'ID', 'col_2': 'name', 'col_3': 'score'} # 构造新列名列表:替换指定列,其余保留原名称 new_cols = [rename_map[col] if col in rename_map else col for col in original_cols] # 导入数据时使用新列名 df = pd.read_excel('data.xlsx', names=new_cols, header=0)
header=0表示将原文件的第一行作为表头的位置,并用names参数替换为我们构造的新列名- 此方法适合需要在数据导入环节就完成列名调整的场景
内容的提问来源于stack exchange,提问作者user3685918
相关产品推荐
相关产品推荐

