0

我期待优化我将 lambda 函数应用于 pandas 数据帧的方式,以便我可以执行它(1)更快,(2)消耗更少的资源。

首先,如果我apply(lambda...很慢,但它大部分时间都不会中断。

寻找优化方法,我发现更快,我阅读了文档,对我来说听起来很棒,所以我也尝试swifter.apply(lambda...了这个执行爆炸,它很快耗尽了内存

我开始深入挖掘,发现了类似swifter.set_npartitions()和其他听起来很有趣的方法https://github.com/jmcarpenter2/swifter/blob/master/docs/documentation.md

但!本文档仅显示“如何实现它”而不是“为什么实现它”。

我正在尝试优化具有 16 GB 内存、Geforce RTX 2060 和良好处理器的电脑。但是我无法就如何做到这一点得出正确的结论。

这是我的示例代码:

import pandas
import swifter


# Option 1
df[['sentiment_relation', 'sentiment_relation_data']] = df.apply(
            lambda x: self.apply_concordance(x['concordance_input']), axis=1, result_type='expand')


# Option 2, 3, 4...
df[['sentiment_relation', 'sentiment_relation_data']] = df.swifter.set_npartitions(8).apply(
            lambda x: self.apply_concordance(x['concordance_input']), axis=1, result_type='expand')

apply_concordance()函数来自 ML 训练模型,我认为与这个问题无关,但重要的是它是一个资源消耗者,我无法更改或优化它

4

0 回答 0