【问题标题】:What am I doing wrong when I am trying to read my csv file in python?当我试图在 python 中读取我的 csv 文件时,我做错了什么?
【发布时间】:2018-01-15 05:22:55
【问题描述】:

我在 Macbook 上通过 Anaconda 包使用 Spyder,当我使用以下命令时不断收到此错误

import pandas as pd 

file = ('/Users/JDMacBook/.spyder-py3/US Mass Shootings.csv')
df = pd.read_csv(file)
print(df.head) 

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd1 in position 87: invalid continuation byte

对不起,如果这是重复的——我用谷歌搜索和 youtube 搜索,甚至把这个问题的废话堆成一堆,但我似乎无法弄清楚这一点。你能帮帮这个新手吗?

【问题讨论】:

  • 欢迎来到 Stack Overflow!您可以先take the tour 学习How to Ask a good question 并创建Minimal, Complete, and Verifiable 示例。这让我们更容易为您提供帮助。
  • 好像是说CSV文件格式不正确。
  • 你知道文件的编码吗?您应该使用该编码打开文件,即:pd.read_csv(file, encoding="utf-8")
  • 如果您可以显示您遇到问题的文件的 sn-p,我们或许可以帮助您找出文件实际使用的编码。 Stack Overflow character-encoding tag info page 中有一个简短的指南。使用像 cp-1252 这样的传统 8 位编码肯定会将文件解码为 something 而不会出现任何 explicit 错误,但如果编码不正确,您就是基本上是在生产垃圾。

标签: python csv anaconda spyder data-science


【解决方案1】:

如果您尝试处理的文件是https://github.com/bruno78/python-capstone-project/blob/master/mj-1982-2016-US-mass-shootings.csv,则第 55 行有一个虚假的幽灵字节,需要将其删除才能正确解码文件。

第 55 行描述了Trolley Square shooting,因此有一个第三方来源(即维基百科),您可以在其中验证射手姓名的正确拼写。

【讨论】:

【解决方案2】:
import pandas as pd
file = '/Users/JDMacBook/.spyder-py3/US Mass Shootings.csv'
data = pd.read_csv(file, encoding='utf-8')

试试这个。

这是因为文件的编码是 utf-8。默认编码为 ascii。

【讨论】:

  • 不,错误特别指出文件不是有效的UTF-8。
猜你喜欢
  • 1970-01-01
  • 2021-04-22
  • 1970-01-01
  • 2022-12-04
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多