如何删除以starting开头并包含特殊字符pandas的字符串

时间:2019-03-31 18:22:35

标签: python pandas

我有一个数据框,其中的一列包含文本。此数据来自并保存到一个csv文件中,并且包含以下字符串:

 Supporter🇨🇮
 🇮🇪🇪🇺
 📞061 300149 💻sdim.csdg@dsga.com

是否可以从文本数据中删除这些字符串?如果是这样,最好的方法是什么?

我尝试过:

 df['text'] = df['text'].replace(r'(?<![@\w])(^\W+)', '', regex=True)

但是不幸的是,它不会删除字符串。

谢谢!

2 个答案:

答案 0 :(得分:1)

例如以下数据框

                Supporter
0                🇨🇮
1                     foo
2        🇮🇪🇪🇺
3          üìû061 300149
4                     bar
5  💻sdim.csdg@dsga.com

我们可以使用str.match删除任何包含特殊字符的行:

df.loc[~df['Supporter'].str.match('[\u0080-\uFFFF]')]

输出:

  Supporter
1       foo
4       bar

此外,如果您想在保留实际记录的同时删除特殊字符:

df['Supporter'] = df['Supporter'].str.replace('[\u0080-\uFFFF]', '')

print(df)

输出:

    Supporter
0            
1         foo
2            
3  061 300149
4         bar

注意:如果数据集中有任何NA值,则应在使用以下值运行它们之前将其删除:

df = df.dropna()

答案 1 :(得分:0)

您可以尝试此处描述的方法:Replace non-ASCII characters with a single space

传递一个空字符串space来代替字符,而不是用''代替。