python - 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
我已经尝试检查是否存在无效字符(使用记事本++)。“显示所有字符”
将此文件与可以加载的类似文件进行比较时,我找不到任何区别。只需要帮助解决上述问题,如果有人能指出我正确的方向。
解决方案
您发布的数据对我来说很好,但它与您的来源相去甚远。打开文件时指定编码可能会解决问题。您可以通过以下几种方式做到这一点:使用编解码器包打开文件并让它决定编码,或者在 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('.', '')
推荐阅读
- python - Django Celery Beat 没有按时运行任务
- tsql - Mssql 错误:选择列表中的列 'dbo.History.Email' 无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中
- docker - 在 Docker 中使用时如何设置 QuestDB 配置默认值?
- html - 视频链接断开时隐藏 Youtube 视频 Iframe
- react-native - 总是调用父组件方法而不是子组件
- google-drive-api - Android 中的 Google Drive 限制文档访问
- javascript - 我如何从 wix 中的已选中复选框中获取价值?
- azure - 无法在 Azure 消息服务中使用自定义 ApplicationProperties 发送消息
- sap-cloud-sdk - 如何在租户上下文中正确使用 spring webclient
- r - 如何在 R 中的 emmeans() 命令中评估字符串变量作为因子?