我有一个数据框,其中的一列包含文本。此数据来自并保存到一个csv文件中,并且包含以下字符串:
Supporterüá®üáÆ
üáÆüá™üá™üá∫
üìû061 300149 üíªsdim.csdg@dsga.com
是否可以从文本数据中删除这些字符串?如果是这样,最好的方法是什么?
我尝试过:
df['text'] = df['text'].replace(r'(?<![@\w])(^\W+)', '', regex=True)
但是不幸的是,它不会删除字符串。
谢谢!
答案 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
来代替字符,而不是用''
代替。