UnicodeDecodeError:“ utf-8”编解码器无法解码位置8的字节0xa0

时间:2019-04-01 02:50:01

标签: python pandas parsing

我正在尝试使用pd.read_csv读取CSV,但出现错误:

  

UnicodeDecodeError跟踪(最近的调用)   最后)pandas_libs \ parsers.pyx在   pandas._libs.parsers.TextReader._convert_tokens()

     

pandas_libs \ parsers.pyx在   pandas._libs.parsers.TextReader._convert_with_dtype()

     

pandas_libs \ parsers.pyx在   pandas._libs.parsers.TextReader._string_convert()

     

pandas._libs.parsers._string_box_utf8()中的pandas_libs \ parsers.pyx

     

UnicodeDecodeError:'utf-8'编解码器无法解码其中的字节0xa0   位置8:无效的起始字节

     

在处理上述异常期间,发生了另一个异常:

     

UnicodeDecodeError
追溯(最近一次通话)   模块中的ipython-input-84-c0272ccf19e6

我的数据示例:

Time,Type,Instrument,Product,Qty.,Avg. price,Status
3/27/2019 13:46,BUY,MFSL,MIS,1600,115.25,COMPLETE
3/27/2019 13:46,BUY,MFSL,MIS,500,115.3,COMPLETE

我已经尝试检查是否有无效字符(使用Notepad ++)。 “显示所有字符”

在将该文件与可以加载的相似文件进行比较时,我找不到任何区别。 只是需要帮助进行上述故障排除,如果有人可以指出正确的方向。

1 个答案:

答案 0 :(得分:1)

您发布的数据对我来说效果很好,但是从您的来源中删除了几个度数。打开文件时指定编码可能会解决此问题。您可以通过以下两种方式执行此操作:使用编解码器包打开文件,然后由它决定编码,或者在csv_read()中指定编码

    import codecs

doc = codecs.open('document','rU','UTF-16') #open for reading with "universal" type set

df = pandas.read_csv(doc, sep=',')

您还可能希望清理列名,因为空格和小数点可能会导致引用问题。

df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_').str.replace('(', '').str.replace(')', '').str.replace('.', '')