python - Pandas:ascii 编解码器无法编码位置序号不在范围内的字符 - 哪个单元格?

标签 python excel pandas utf-8

我在使用 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/

相关文章:

python - 还获取不匹配 fnmatch 的元素

python - 收集子进程输出并在 python 中写入 excel

Excel 到 csv 文件转换 - 保留小数点后的数字

python - 访问 pandas DataFrame 中名为 "class"的列时出现语法错误

python - 识别字符串中的字典单词

Python频率检测

excel - 分钟到小时

python - 有条件地删除重复项 pandas python

python - 使用 AND 条件查询单行 DataFrame

python - 将 API 返回的元素传递给 Pandas DF