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

如何用pandas读取CSV时忽略表头空格,解决usecols匹配失败问题

解决CSV表头带空格时指定列读取的问题

直接给你几个靠谱的解决方案:

方法1:先处理表头再精准读取

先读取第一行表头,把每个列名的前后空格去掉,建立处理后列名与原始列名的映射,再用原始列名读取目标列:

import pandas as pd

# 读取表头行
header = pd.read_csv('datafiles/file2.csv', nrows=0).columns
# 构建处理后列名到原始列名的映射
header_map = {col.strip(): col for col in header}
# 通过映射找到原始列名,读取目标列
asd = pd.read_csv('datafiles/file2.csv', nrows=1, usecols=[header_map['Name']])

方法2:修正usecols的lambda写法

你之前的lambda写法有两处错误:一是用x.strip() in "Name"会判断字符是否在字符串里,而非列名匹配;二是逻辑有误导致迭代报错。正确的筛选写法如下:

import pandas as pd

asd = pd.read_csv(
    'datafiles/file2.csv',
    nrows=1,
    usecols=lambda x: x.strip() == 'Name'  # 判断处理后的列名是否为目标名称
)

方法3:读取后统一清理列名

如果需要批量处理多个带空格的表头,可以先完整读取数据,再统一去掉所有列名的前后空格,之后直接用目标列名提取:

import pandas as pd

df = pd.read_csv('datafiles/file2.csv', nrows=1)
# 移除所有列名的前后空格
df.columns = df.columns.str.strip()
# 现在直接用'Name'提取目标列
asd = df[['Name']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:12:06