大pandas:ascii编解码器不能编码字符序号不在范围内 – 哪个单元格?

我对Pandas和Excel有很大的问题。 我在Excel文档中读入一个数据框,这很好。 我做了计算,一切都很好。 然后,我尝试保存数据框以检查计算结果,pandas吹起了这个错误信息:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 4: ordinal not in range(128) 

这通常表示数据框中的某些单元格中存在一些非ASCII字符。 我通常的做法是放弃该列,因为我只是想分析数字,而不是string。

但是,我应该放弃哪一列? 我没有任何线索。 理想情况下,我想pandas告诉我哪些单元格有问题,哪些列是有问题的。 到目前为止,pandas不告诉我什么,所以我需要手动检查每个细胞find罪魁祸首。 我所做的是打印出不好的字符,然后手动检查每个单元格是否包含该字符。 这是不可行的。 所以我删除所有不可行的string列。 如何解决这个问题呢? 我怎样才能find细胞或列,这给我的坏字符问题?

我试图把所有的东西都转换成UTF-8,夹心等等,但是我无法得到它的工作。 所以我需要一种方法来find有问题的单元格,以便我可以手动删除string。

编辑:解决! 正如bdiamante所build议的,他的链接显示了解决这个问题的方法。 为了将来的参考,这工作:

 df.to_csv('file.csv',encoding='utf-8-sig')