【发布时间】:2019-07-25 09:05:12
【问题描述】:
我有一个函数可以查看推文并仅提取流行的主题标签和句柄。问题是我有一个大数据集,这需要 10 分钟或更长时间才能完成。我正在寻找一种方法来“矢量化”这个函数以使其运行得更快。
我已经有一个热门话题标签列表
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 #stackoverflow"]
可能变成:
["@jackinthebox",
"#stackoverflow"
]
非常感谢你们!
【问题讨论】:
-
如果
popular_tags_list是一个显着长度的列表,replacing it with asetwould work。 -
另外,您可以稍微优化
newStr的构造:newStr = ' '.join(filter(popular_tags_set.__contains__, myList))或newStr = ' '.join(x for x in myList if x in popular_tags_set) -
get_popular_hashtags 的长度为 14000。
-
你们两个真的很好用!
-
这里的 '.__contains__' 的目的是什么?
标签: python pandas numpy vectorization series