我读到this之前的文章,注意到 pandas apply 函数、iterrows 和 for 循环是处理 pandas 数据帧的非常慢但有效的方法。
我正在对一些文本数据进行情感分析,但使用 apply 会导致内存使用率较高且速度较低,类似于this中所示回答。
%%time
data.merge(data.essay.apply(lambda s: pd.Series({'neg':sid.polarity_scores(s)['neg'],
'neu':sid.polarity_scores(s)['neu'],
'pos':sid.polarity_scores(s)['pos'],
'compound':sid.polarity_scores(s)['compound']})),
left_index=True, right_index=True)
如何使用内置 numpy 或 pandas 函数来实现此功能? 编辑:- 该列包含论文文本数据
最佳答案
我找到了一种更快地执行此功能的方法,即使用 pandarallel .
使用默认的 pandas apply 函数花了 9 分 24 秒,
但通过使用 pandarallel,它只用了 1 分 7 秒就完成了操作(使用 16 个工作人员)。
关于python - 如何有效地循环此数据帧并使用内置的 numpy 或 pandas 执行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59624552/