【问题标题】:Error while trying to use pandas to read a csv尝试使用 pandas 读取 csv 时出错
【发布时间】:2017-09-15 00:47:43
【问题描述】:
import pandas
df = pandas.read_csv("trial.csv")

以上代码用于读取一个简单的 csv 文件。但我不断收到以下错误

File "C:\Users\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 1748, in read
    data = self._reader.read(nrows)
  File "pandas\_libs\parsers.pyx", line 890, in pandas._libs.parsers.TextReader.read (pandas\_libs\parsers.c:10862)
  File "pandas\_libs\parsers.pyx", line 912, in pandas._libs.parsers.TextReader._read_low_memory (pandas\_libs\parsers.c:11138)
  File "pandas\_libs\parsers.pyx", line 989, in pandas._libs.parsers.TextReader._read_rows (pandas\_libs\parsers.c:12175)
  File "pandas\_libs\parsers.pyx", line 1117, in pandas._libs.parsers.TextReader._convert_column_data (pandas\_libs\parsers.c:14136)
  File "pandas\_libs\parsers.pyx", line 1169, in pandas._libs.parsers.TextReader._convert_tokens (pandas\_libs\parsers.c:14972)
  File "pandas\_libs\parsers.pyx", line 1273, in pandas._libs.parsers.TextReader._convert_with_dtype (pandas\_libs\parsers.c:17119)
  File "pandas\_libs\parsers.pyx", line 1289, in pandas._libs.parsers.TextReader._string_convert (pandas\_libs\parsers.c:17347)
  File "pandas\_libs\parsers.pyx", line 1524, in pandas._libs.parsers._string_box_utf8 (pandas\_libs\parsers.c:23041)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe3 in position 43: invalid continuation byte

【问题讨论】:

  • 请试试 -- df = pandas.read_csv("trial.csv", encoding='latin-1')
  • 添加编码标志对我有用。

标签: python-3.x pandas csv


【解决方案1】:

您好,抱歉我来晚了,请将您的代码更改为以下代码,看看是否有效。

import pandas
df = pandas.read_csv("trial.csv", encoding="ISO-8859-1")

【讨论】:

    【解决方案2】:
    import pandas
    df = pandas.read_csv("trial.csv", "rb")
    

    如果上述建议都不起作用,“rb”读取二进制文件可能会解决问题

    【讨论】:

      【解决方案3】:

      您的解析器正在尝试解析 utf-8 数据,但您的文件似乎是另一种编码(或者可能只是一个无效字符)。

      尝试指示解析器解析为plain ascii,可能需要一些代码页(我不懂 Python,所以无能为力)。


      看来您需要使用encoding 参数。

      这里是list with possible encodings

      【讨论】:

        【解决方案4】:
        store=pd.read_csv('Super_Store.csv', encoding='windows-1252') 
        

        我们只需要告诉 Python 这个文件的实际编码。经过一些尝试和错误,我发现它是在windows-1252 编码中。

        这可能是因为这些文件在某个时间点保存在 Windows 计算机上,而这是该计算机的默认字符编码。 详情请至:
        HTML Windows-1252 (ANSI) Reference

        【讨论】:

          猜你喜欢
          • 2019-05-19
          • 2023-04-05
          • 2021-11-08
          • 2019-10-06
          • 2022-12-31
          • 2020-07-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多