【问题标题】:Importing csv using pd.read_csv - invalid start byte error使用 pd.read_csv 导入 csv - 无效的起始字节错误
【发布时间】:2019-06-05 14:30:28
【问题描述】:

我正在尝试使用以下方法导入 csv 文件:

data = pd.read_csv("filename.csv")

我收到以下错误:"UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 2: invalid start byte".

本题答案:UnicodeDecodeError: 'utf8' codec can't decode byte 0x9c 可能可行,但我不确定如何实施(我无法评论答案,因为我还没有足够的声誉)。

任何帮助将不胜感激。

编辑:这个问题似乎与我有学位符号的事实有关。如果在导入期间跳过此问题,对我来说会很好。

【问题讨论】:

  • 您必须发布原始数据的链接
  • 感谢@EdChum 的回复,设法找到一个解决方法,即跳过具有违规符号的行:data = pd.read_csv("filename.csv", skiprows=[1 ])

标签: python-3.x pandas


【解决方案1】:

我解决了我的问题,只需返回 Excel 工作表并使用“CSV UTF-8”格式保存

【讨论】:

    【解决方案2】:

    如果您因为文件编码不是pd.read_csv() 文档中提到的默认编码而遇到编码错误,您可以通过首先安装chardet 后跟以下代码来查找文件的编码:

    import chardet    
    rawdata = open('D:\\path\\file.csv', 'rb').read()
    result = chardet.detect(rawdata)
    charenc = result['encoding']
    print(charenc)
    

    这将为您提供文件的编码。

    一旦你有了编码,你就可以读成:

    pd.read_csv('D:\\path\\file.csv',encoding = 'encoding you found')
    

    pd.read_csv(r'D:\path\file.csv',encoding = 'encoding you found')
    

    你会得到所有编码here的列表

    希望你觉得这很有用。

    【讨论】:

    • 感谢您的回复。真的很喜欢这个解决方案,它工作得很好,并且通过将 charenc 放入 read 语句中它会自动完成: pd.read_csv('D:\\path\\file.csv',encoding = charenc)
    【解决方案3】:

    您可以使用 pandas 函数 read_csv 的编码参数。

    如果真的需要用 utf-8 编码,它可能看起来像这样。

    import pandas as pd
    df = pd.read_csv("filename.csv", encoding = 'utf_8')
    

    【讨论】:

      猜你喜欢
      • 2016-01-08
      • 1970-01-01
      • 2020-10-06
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      • 2019-01-28
      • 1970-01-01
      相关资源
      最近更新 更多