【发布时间】:2019-05-07 11:48:17
【问题描述】:
我有一个包含 260 万行的数据集,其中有一列名为 msgText,其中包含书面消息。
现在,我想过滤掉所有不包含任何字母的消息。为此,我找到了以下代码:
dataset = dataset[dataset['msgText'].astype(str).str.contains('[A-Za-z]')]
但是,16 小时后代码仍在运行。
此外,基于Does Python have a string 'contains' substring method?,我考虑创建一个长度为 26 的列表,其中包含字母表中的所有字母,然后检查每个单元格是否包含该字母。但这似乎也没有效率。
因此,我想知道是否有更快的方法来查找单元格是否包含字母。
编辑:上面的代码运行良好。显然,我的(慢)代码中的内容是:dataset['msgText'] = dataset[dataset['msgText'].astype(str).str.contains('[A-Za-z]')]
【问题讨论】:
-
我实际测试了您的代码,完成以下数据帧大约需要 5-6 秒:
df = pd.DataFrame({'msgText': ['aasad dasd ', 'bdsd e ', 'ggre qew ', '1 1 1 ']*2600000}) -
您的字符串中是否包含空格或特殊字符?还是总是像
'12adwf1231'或'123'