首页 > 解决方案 > 删除特殊字符python数据框

问题描述

我想从列中删除特殊字符和我选择的一些单词。

df['tweet_text'][0]
'\\": \\"#\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588 TEXAS Corona update 19-MAY-21\\\\n\\\\nTotal Deaths 51","180\\\\n\\\\nhttps://t.co/jeoAqC07Oq\\\\n\\\\n#\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588 #\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588 #\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588 #\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588 #\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588 #\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588 #\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588updates #\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588 #\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588 #\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588 #\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\\\u2588\\"","\\"'

我用了

df['tweet_text'] = df['tweet_text'].str.replace('[#,@,&,{,},",:,//,\\\n,-,\\\\,u2588]', '')

' TEXAS Corona pdates 19MAY1nnTotal Deaths 110nnhttpst.cojeoAqC07Oqnn pdates '

正如您在输出中看到的那样,没有删除“nn”,并且删除了每个“u”。你能帮我解决这个问题吗?谢谢你!

标签: python

解决方案


.replace()使用正则表达式。您的正则表达式字符类'[#,@,&,{,},",:,//,\\\n,-,\\\\,u2588]'被解析为

[#,@,&,{,},",:,//,\
,-,\\,u2588]

所以它将匹配换行符和字符"#&,/258:@\u{}(不是破折号,因为它是正则表达式中的范围分隔符)。

您需要阅读正则表达式的语法。

(但是,如果您的数据框以这样的字符串开头,恐怕您的数据也会以其他方式损坏......)


推荐阅读