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

读取多Sheet Excel至Pandas时,如何清理列名空格避免重复列?

解决多Sheet Excel导入Pandas时列名空格导致重复列的问题

嘿,这个列名带空格的坑我可太熟了!其实不用等到合并后再处理,我们完全可以在读取每个Sheet的时候就把列名清理干净,这样合并的时候自然就不会出现重复列了。

具体思路

pd.read_excel当你传入多个sheet名时,返回的是一个字典(key是sheet名称,value是对应Sheet的DataFrame)。我们只需要遍历这个字典,对每个Sheet的DataFrame先清理列名,再进行合并操作。

完整代码示例

import pandas as pd

# 1. 读取Excel文件,得到包含多个Sheet的字典
df_dict = pd.read_excel("你的文件路径", sheet_name=['TEST', 'TEST2', 'TEST3'])

# 2. 遍历字典,清理每个Sheet的列名
cleaned_df_dict = {}
for sheet_name, df in df_dict.items():
    # 对列名执行strip(),去除前后空格
    df.columns = df.columns.str.strip()
    cleaned_df_dict[sheet_name] = df

# 3. 合并处理后的DataFrame
df = pd.concat(cleaned_df_dict.values(), axis=0, sort=False)
df = df.reset_index(drop=True)  # 加上drop=True可以去掉冗余的原索引列,结果更干净

为什么这样更高效?

如果等到合并后再处理,你会发现存在重复列(比如ID3和ID3 ),这时候还要额外做列名清理+合并重复列的操作;而提前在每个Sheet的DataFrame阶段处理,合并时列名完全一致,一步到位就能得到干净的结果。

额外补充

如果你的列名中间也有空格需要处理(不只是前后),可以把str.strip()换成str.replace(" ", "")来移除所有空格;如果只想去除开头/结尾的空格,str.lstrip()或str.rstrip()也能满足需求,根据你的实际情况调整就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:57:44