我在使用 Pandas 和 Excel 时遇到了很大的问题。我将 Excel 文档读入数据框,这很好。我做了计算,一切都很好。然后我尝试保存数据框以检查计算结果,pandas 爆炸并显示此错误消息:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 4: ordinal not in range(128)
这通常表示数据框中的某些单元格中存在一些非 ascii 字符。我通常的做法是删除该列,因为我只想分析数字,而不是字符串。
但是,我应该删除哪一列?我没有任何线索。理想情况下,我希望 pandas 告诉我哪些单元格有问题,或者哪些列有问题。截至目前,pandas 什么也没告诉我,所以我需要手动检查每个单元格以找到罪魁祸首。我所做的是打印出坏字符,并手动检查每个单元格中是否有该打印字符。这是不可行的。所以我删除了所有也不可行的字符串列。如何解决这个问题呢?我怎样才能找到给我带来错误字符问题的单元格或列?
我已尝试将所有内容转换为 utf-8、夹心等等,但我无法让它工作。所以我需要一种方法来找到有问题的单元格,以便我可以手动删除字符串。
编辑:已解决!正如 bdiamante 所建议的,他的链接显示了这个问题的解决方案。为了将来引用,这有效:
df.to_csv('file.csv',encoding='utf-8-sig')
最佳答案
在问题中回答,复制在这里:
df.to_csv('file.csv',encoding='utf-8-sig')
关于python - Pandas:ascii 编解码器无法编码位置序号不在范围内的字符 - 哪个单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44630798/