Python:使用pandas从CSV文件中删除非ascii字符
发布时间:2020-12-20 12:03:08 所属栏目:Python 来源:网络整理
导读:我有一个utf-8编码的文本短信的csv文件. import pandas as pddata = pd.read_csv('my_data.csv',sep=',')data.head() 它的输出如下: id city department sms category01 khi revenue quk respns. 102 lhr revenue good. 103 lhr revenue ?h h2h hh 004 i
我有一个utf-8编码的文本短信的csv文件.
import pandas as pd data = pd.read_csv('my_data.csv',sep=',') data.head() 它的输出如下: id city department sms category 01 khi revenue quk respns. 1 02 lhr revenue good. 1 03 lhr revenue ?h h2h hh 0 04 isb accounts ?x?1?i?üe÷ü??8i 0 05 isb accounts %a??‘??$?a?±t%r??????a£ 0 我想删除sms列中有垃圾值的所有记录/行,例如记录3,4和5.可能它们是用英语以外的语言编写的我不太确定这些记录发生了什么.记录1和2可以保留,尽管短信列中使用的语言是非正式的(正如人们通常在短信中所做的那样).鉴于我有大约200万条记录,实现这一目标的方便方法是什么. 编辑: 解决方法
使用
str.isalnum 过滤非字母数字的行:
In[46]: df[df['sms'].str.isalnum()] Out[46]: id city department sms category 0 1 khi revenue quk respns. 1 1 2 lhr revenue good. 1 更新 如果你真的想要过滤掉任何包含非ascii字符的行,那么你可以使用正则表达式模式: In[72]: df[~df['sms'].str.contains(r'[^x00-x7F]+')] Out[72]: id city department sms category 0 1 khi revenue quk respns. 1 1 2 lhr revenue good. 1 所以正则表达式模块 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |