pd.read_csv是否有可能导致KeyError?

时间:2019-07-24 06:10:44

标签: python pandas python-import

在分析时尚品牌的购买数据时,我的代码中不断出现“ KeyError”错误。我猜这是因为我将csv文件导入python的方式是错误的,但是我不知道要更改什么。如果您有任何解决办法,请帮帮我!

我曾经像

一样使用pd.read_csv
cst = pd.read_csv(rf'G:~~~~customer.csv', engine='python', encoding='cp932', dtype='unicode')

然后我将其更改为

cst = pd.read_csv(r'G:~~~~customer.csv', encoding='cp932', dtype={'ID': 'str})

不幸的是,它从未成功。

我只是想防止发生“ KeyError”。

3 个答案:

答案 0 :(得分:0)

Pandas没有dtype'unicode'或'str'。请参阅https://pbpython.com/pandas_dtypes.html 您必须使用dtype = {'ID':'object'}。

答案 1 :(得分:0)

最可能是因为键之间可能有空格

col1 , col2 , col3

将其更改为

col1,col2,col3

并确保您

cst = pd.read_csv('G:~~~~customer.csv', encoding='cp932')

您不需要dtype,上面的内容几乎可以正常工作。否则请确保您使用的是Documentation

中正确的dtypes

答案 2 :(得分:0)

您写道: dtype = {'ID':'str})(我假设缺少结尾的撇号 只是您的问题,而不是您的代码。

请注意,包含 string 值的列实际上是 object 类型的 Pandas

所以也许您应该更改为 dtype = {'ID':'object'})

另一个提示:运行 read_csv (作为测试)不使用 dtype 参数。 当然,这次 ID 列的类型将不是预期的, 但是我们只想检查 read_csv 是否完全可以读取此文件。

如果发生相同的错误,则真正的原因在其他地方。

还要检查您的输入内容是否实际包含 ID 列(区分大小写)。 如果您引用不存在的列,则 read_csv 可能会引发此错误。