首页 > 解决方案 > 如何删除以开头并包含特殊字符熊猫的字符串

问题描述

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

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

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

我努力了:

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

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

谢谢!

标签: pythonpandas

解决方案


例如对于以下 DataFrame

                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

注意:如果 DataSet 中有任何NA值,则应在运行这些值之前删除它们:

df = df.dropna()

推荐阅读