如何使用Python修改Excel指定位置的列名?
用Python修改Excel指定行的列名(Pandas实现)
你的核心问题在于没有指定正确的表头行索引——因为你的列名位于第3行(A3、B3),而Pandas默认会把Excel的第一行(行号1)作为表头(索引0),所以需要先调整读取参数,再修改列名。
以下是两种可靠的实现方式:
方法一:按列名映射修改(推荐,不受列位置变化影响)
import pandas as pd # 读取Excel时,指定第3行(索引为2,因为索引从0开始)作为表头 df = pd.read_excel('filename.xlsx', header=2) # 通过字典映射旧列名到新列名,直接修改目标列 df.rename(columns={ 'id': 'sample_id', 'singal': 'DBS VCA Signal' }, inplace=True) # 保存修改后的文件,index=False避免生成多余的索引列 df.to_excel('modified_excel_file.xlsx', index=False)
方法二:按列位置修改(适配你原有的思路)
import pandas as pd # 同样先指定正确的表头行 df = pd.read_excel('filename.xlsx', header=2) # 按位置修改:A3对应第0列,B3对应第1列 df.columns.values[0] = 'sample_id' df.columns.values[1] = 'DBS VCA Signal' df.to_excel('modified_excel_file.xlsx', index=False)
注意事项
- 确认旧列名的拼写完全匹配(比如你写的
singal如果实际是signal,需要同步修正) - 如果Excel中表头行上方有无关内容,
header参数要对应调整(比如列名在第4行就设header=3) - 若需要保留Excel原格式(如单元格样式、公式等),Pandas无法完全实现,可改用
openpyxl库直接操作单元格;但仅修改列名的话,Pandas足够高效。
内容的提问来源于stack exchange,提问作者user23526603
相关产品推荐
相关产品推荐

