Python Pandas 向量化从字符串中删除不受欢迎的主题标签

Python Pandas Vectorize removing unpopular hashtags out of Strings

我有一个功能可以查看推文并仅提取流行的主题标签和句柄。问题是我有一个大数据集,这需要 10 分钟或更长时间才能完成。我正在寻找一种方法来 "vectorize" 这个函数,使其 运行 更快。

我已经有了一个流行标签列表

def get_popular_hashes(myString):
   myList = myString.split(' ')
   newStr = ''
   for x in myList:
      if x in popular_tags_list:
         newStr+=' '+x
   return newStr  

tweets2["popularHandles"] = tweets2.HashesAndHandles.apply(get_popular_hashes)

如果我能找到一种无需 .apply() 的方法,那就更好了。

例如:

["I'm hungry. let's eat! #curlyfries @jackinthebox",
 "I got a 4.0 last semester! #scholarship #hardwork #Whosebug"]

可能会变成:

["@jackinthebox",
"#Whosebug"
]

非常感谢你们!

这是根据您的意见提出的解决方案。它工作得很好,速度也快得多!如此令人兴奋! 10-15 分钟缩短到 3 秒 -(不是开玩笑)。

def trim_unpopular_hashes_vectorized(myStr):
   myList = myStr.split(' ')
   newStr = ' '.join(filter(popular_tags_set.__contains__, myList))
   return newStr     



popular_tags_set=set(popular_tags_list)

tweets2["popularHandles"] = tweets2.HashesAndHandles.apply(trim_unpopular_hashes_vectorized)