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)
我有一个功能可以查看推文并仅提取流行的主题标签和句柄。问题是我有一个大数据集,这需要 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)