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

Pandas调用pd.read_csv指定usecols报ValueError: Usecols do not match names

报错原因

pd.read_csv()的usecols参数要求传入由列名/列索引组成的可迭代对象(如列表、元组),你直接传入了字符串类型的单个列名"Test Column"。由于字符串本身属于可迭代对象,pandas会把字符串的每个字符拆分为单独的目标列名去匹配数据文件的列,自然找不到对应列触发ValueError,这也是你不传入usecols时读取完全正常的核心原因。

解决方法

有两种常用的修正方案:

  • 把单个列名放到列表/元组中传入,将代码中usecols=test_column修改为usecols=[test_column]即可
  • 如果你使用的是0.24及以上版本的pandas,也可以使用lambda表达式写法:usecols=lambda x: x == test_column
修正后的可运行代码
import pandas as pd

test_column = "Test Column"
data = pd.DataFrame([1, 2, 3, 4, 5], columns=[test_column])

data.to_csv("test_data.csv", decimal=",", sep=";")

# 修正usecols传参格式
data_read = pd.read_csv("test_data.csv", decimal=",", sep=";", usecols=[test_column])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:45:04