从pandas datafram的列中提取hashtags

2024-10-02 02:39:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧df。我想从Max==45的tweets中提取hashtags:

Max    Tweets
42   via @VIE_unlike at #fashion
42   Ny trailer #katamaritribute #ps3
45   Saved a baby bluejay from dogs #fb
45   #Niley #Niley #Niley 

我正在尝试这样的方法,但它给出的数据帧是空的:

^{pr2}$

熊猫身上有什么东西可以让我更快更有效地完成这个任务吗。在


Tags: 数据dfviamaxtweetsatnyfashion
1条回答
网友
1楼 · 发布于 2024-10-02 02:39:15

您可以使用pd.Series.str.findall

^{1}$

这将返回lists的列

如果您想先筛选然后再查找,可以使用boolean indexing轻松完成:

^{pr2}$

这里使用的regex是:

#.*?(?=\s|$)

要理解它,就把它分解:

  • #.*?-对以hashtag开头的单词执行非贪婪匹配
  • (?=\s|$)-向前看单词的结尾或句子的结尾

如果有可能在一个单词的中间有#,而这个单词是而不是一个hashtag,则会产生您不希望出现的误报。在这种情况下,可以修改regex以包含lookbehind:

(?:(?<=\s)|(?<=^))#.*?(?=\s|$)

regex lookbehind断言句子的开头或空格必须位于#字符之前。在

相关问题 更多 >

    热门问题