从数据框中删除列中以“@”开头的单词

我有一个名为 tweetscrypto 的数据框,我试图从“text”列中删除以字符“@”开头的所有单词,并将结果收集到新列“clean_text”中。其余的单词应该保持完全相同:

https://img1.mukewang.com/64cb726e0001894807540242.jpg

tweetscrypto['clean_text'] = tweetscrypto['text'].apply(filter(lambda x:x[0]!='@', x.split()))

它似乎不起作用。有人可以帮忙吗?

提前致谢


慕尼黑5688855
浏览 106回答 2
2回答

摇曳的蔷薇

请str.replace以以下字符串开头@样本数据                                       text0  News via @livemint: @RBI bars banks from links1      Newsfeed from @oayments_source: How Africa2                   is that bitcoin? not my thing tweetscrypto['clean_text']=tweetscrypto['text'].str.replace('(\@\w+.*?)',"")尽管如此,仍可以捕获@而无需逃脱,如所指出的@baxxtweetscrypto['clean_text']=tweetscrypto['text'].str.replace('(@\w+.*?)',"")                    clean_text0  News via :  bars banks from links1         Newsfeed from : How Africa2      is that bitcoin? not my thing

蓝山帝景

在这种情况下,出于可读性的目的,定义一个方法可能比使用 lambda 更好。def clean_text(X):    X = X.split()    X_new = [x for x in X if not x.startswith("@")    return ' '.join(X_new)tweetscrypto['clean_text'] = tweetscrypto['text'].apply(clean_text)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python