如何忽略DataFrame列名中的多余空格以匹配指定列?
解决DataFrame列名含多余空格导致的KeyError问题
核心思路
先统一清理DataFrame的列名格式,把所有连续空格替换为单个空格,同时去除列名首尾的空格,再用指定字段列表提取数据,就能避免因空格数量不一致导致的匹配失败。
具体实现代码
import pandas as pd fields = ['Assembled Weights', 'Assembled Heights'] dataframe = pd.read_excel(file) # 清理列名:替换连续空格为单个,去除首尾空格 dataframe.columns = dataframe.columns.str.replace(r'\s+', ' ', regex=True).str.strip() # 现在可以正常提取指定列 df = dataframe[fields]
补充说明
str.replace(r'\s+', ' ', regex=True):用正则匹配任意数量的连续空白字符(包括空格、制表符等),统一替换为单个空格,解决列名中多空格的问题。str.strip():去除列名首尾可能存在的空格,避免类似' Assembled Weights '这种带前后空格的列名导致匹配失败。- 如果你的字段列表本身也存在空格不规范的情况,可以同步清理fields:
fields = [field.strip().replace(r'\s+', ' ', regex=True) for field in fields]
内容的提问来源于stack exchange,提问作者rai
相关产品推荐
相关产品推荐

