我正在尝试使用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 ++)。 “显示所有字符”
在将该文件与可以加载的相似文件进行比较时,我找不到任何区别。 只是需要帮助进行上述故障排除,如果有人可以指出正确的方向。
答案 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('.', '')