gpt4 book ai didi

python - 如何加快 Python 应用函数在 DataFrame 中的速度

转载 作者:太空宇宙 更新时间:2023-11-03 20:40:33 29 4
gpt4 key购买 nike

我有一个相当大的数据集,我正在尝试计算每个文档的情绪。我使用 Vader 通过以下代码计算情绪,但这个过程需要 6 个多小时才能运行。我正在寻找任何方法来加速这个过程。

from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer

analyzer = SentimentIntensityAnalyzer()

%time full_trans['bsent'] = full_trans['body_text'].apply(lambda row: analyzer.polarity_scores(row))

任何想法都很棒,因为像这样循环行的效率非常低。

举个例子,我已经在 100 个观察值的小样本上运行了我的代码。替代形式的代码的结果如下。我的原始代码是第一,建议对列表理解的更改是第二。奇怪的是,这两种方法之间没有性能提升。

transtest = full_transx.copy(deep=True)

from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer

analyzer = SentimentIntensityAnalyzer()

%time transtest['bsent'] = [analyzer.polarity_scores(row) for row in transtest['body_text']]

%time full_transx['bsent'] = full_transx['body_text'].apply(lambda row: analyzer.polarity_scores(row))

挂墙时间:4分11秒

挂墙时间:3分59秒

最佳答案

我假设 full_transx['body_text'] 是一系列字符串。在这种情况下,循环底层 numpy 数组来构建列表理解通常会更有效:

full_trans['bsent'] = [analyzer.polarity_scores(row) for row in full_trans['body_text'].values]

关于python - 如何加快 Python 应用函数在 DataFrame 中的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56888602/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com