首页 > 解决方案 > UnicodeDecodeError:“utf-8”编解码器无法解码位置 8 中的字节 0xa0

问题描述

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

pandas._libs.parsers.TextReader._convert_tokens() 中的 UnicodeDecodeError Traceback(最近一次调用最后一次)pandas_libs\parsers.pyx

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

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

pandas_libs\parsers.pyx 在 pandas._libs.parsers._string_box_utf8()

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

在处理上述异常的过程中,又出现了一个异常:

模块中的UnicodeDecodeError
Traceback(最近一次调用最后一次)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

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

将此文件与可以加载的类似文件进行比较时,我找不到任何区别。只需要帮助解决上述问题,如果有人能指出我正确的方向。

标签: pythonpandasparsing

解决方案


您发布的数据对我来说很好,但它与您的来源相去甚远。打开文件时指定编码可能会解决问题。您可以通过以下几种方式做到这一点:使用编解码器包打开文件并让它决定编码,或者在 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('.', '')

推荐阅读