如何从csv文件的文本数据中删除非英语

时间:2019-04-02 02:44:01

标签: python pandas csv character-encoding

我正在清理从多个URL爬取的文本数据。如何从csv文件的数据中删除非英语单词/符号?

我保存了数据,并使用以下代码读取了数据:

要将数据另存为csv文件:

df.to_csv("blogdata.csv", encoding = "utf-8")

保存数据后,csv文件显示如下,包括非英语单词和符号(例如'\ n \ t \ t \ t',m’等):

enter image description here

这些符号未显示在原始数据中,其中一些甚至出现在英语数据中。以第七行的“罗斯·帕克”为例。

保存在csv文件中的数据显示为:['\ n \ t \ t \ t','大约是我写了过去几个月来我们所做的更新的时候了。我们将要...

在从url抓取的原始数据中,其显示如下:

enter image description here

有人可以解释为什么会发生这种情况,并帮助我解决此问题并清除文件中的非英语数据吗?

非常感谢您!

1 个答案:

答案 0 :(得分:0)

这看起来像是试点错误:数据正确,但是即使您保存了数据,但您正在配置或硬编码为将文本显示为Latin-1(或Windows代码页1252?)的工具中查看数据作为UTF-8。

某些工具(尤其是在Windows上)将使用不带BOM的UTF-8进行异想天开的事情。也许可以尝试添加一个(如果确实有帮助,可以提交错误报告;该工具至少应允许您覆盖其默认编码,而无需修改输入数据)。

换句话说,如果包含损坏数据的屏幕截图来自Excel,则当询问如何导入此CSV文件时,您可能选择了DOS尾页(或贴错标签的“ ANSI”),而不是UTF-8。也许最好的解决办法是设计一个不涉及电子表格的工作流程。

或者也许您使用了一个什么都没问您的工具,然后尝试“嗅探”数据以确定其编码,但它猜错了。希望添加一个不可见的字节序列(称为BOM),这是UTF-8特有的,应该可以让它猜对;但这是越野车的行为-您不应将其明显不完美的启发法当作人质。 (有关相关故事,另请参见 "Bush hid the facts" 。)