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

使用Pandas读取CSV文件列时出现KeyError问题求助

解决Pandas读取CSV列时的KeyError问题

问题场景

执行以下代码读取CSV文件的Nombre列时触发KeyError:

import pandas as pd
df = pd.read_csv('archivos\\hi.csv')
name = df['Nombre']
print(name)

CSV文件hi.csv内容:

'Nombre','Apellido','Edad'
'Daniela','Alvarez',21
'Eugenia','Ramos',44
'Marcelo','Hernandez',67

报错信息:

Traceback (most recent call last):
  File "c:\Users\PC\OneDrive\Escritorio\Python\archivos\leer.py", line 3, in <module>
    name = df['Nombre']
           ~~^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\core\frame.py", line 3893, in __getitem__
    indexer = self.columns.get_loc(key)
              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\core\indexes\base.py", line 3798, in get_loc
    raise KeyError(key) from err
KeyError: 'Nombre'

执行print(df.columns)发现列名实际被单引号包裹:

Index([''Nombre'', ''Apellido'', ''Edad''], dtype='object')

原因分析

CSV文件的列名和部分单元格值被单引号包裹,Pandas默认未识别这些单引号为引号分隔符,导致解析后列名包含单引号(实际列名为'Nombre'而非Nombre),因此直接调用df['Nombre']会触发KeyError。

解决方案

方法一:读取时指定引号解析参数(推荐)

通过quotechar参数告诉Pandas将单引号视为值的包裹符号,解析时自动去除列名和单元格的单引号:

import pandas as pd
df = pd.read_csv('archivos\\hi.csv', quotechar="'")
name = df['Nombre']
print(name)

方法二:手动清理列名

读取CSV后,批量去除列名前后的单引号:

import pandas as pd
df = pd.read_csv('archivos\\hi.csv')
# 去除列名首尾的单引号
df.columns = df.columns.str.strip("'")
name = df['Nombre']
print(name)

方法三:直接使用带单引号的列名(临时方案)

如果仅需临时读取,可直接使用包含单引号的列名:

import pandas as pd
df = pd.read_csv('archivos\\hi.csv')
name = df["'Nombre'"]
print(name)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:33:30