Python 如何通过同时执行pandas.Series上的多个算术运算来提高运算速度?

Python 如何通过同时执行pandas.Series上的多个算术运算来提高运算速度?,python,pandas,optimization,Python,Pandas,Optimization,我有这样的代码: large_series += add_factor large_series *= multiply_factor 其中large_series是一个大型pandas.series 这段代码占用了我大量的运行时间,我想对它进行优化。一个观察结果是,与其将其作为两个单独的操作来执行,不如先将整个系列相加,然后将整个系列相乘,这可以通过一个操作来完成:递增并乘以系列中的每个值 如何做到这一点 我听说过像Numba这样的Panda的JIT优化器,我想知道这样的优化器是否也有帮助。

我有这样的代码:

large_series += add_factor
large_series *= multiply_factor
其中
large_series
是一个大型
pandas.series

这段代码占用了我大量的运行时间,我想对它进行优化。一个观察结果是,与其将其作为两个单独的操作来执行,不如先将整个
系列
相加,然后将整个
系列
相乘,这可以通过一个操作来完成:递增并乘以
系列
中的每个值

如何做到这一点


我听说过像Numba这样的Panda的JIT优化器,我想知道这样的优化器是否也有帮助。

提高速度的一种方法是使用更多的处理器。您可以使用
导入modin.pandas as pd
(必须先安装)

和熊猫在一起 和莫丁,熊猫
实际代码是否更复杂?或者你有什么理由不能只做
large\u series=multiply\u factor*(large\u series+add\u factor)
?@ScottStaniewicz你的代码做了完全相同的事情,成本也完全相同,它只是放在一行上。
import pandas as pd
import time

df = pd.DataFrame({'a':[random.randint(0, 1e3) for _ in range(int(1e6))]})

add_factor = 2193
multiply_factor = 4353

s = time.time()
df.a += add_factor
df.a *= multiply_factor
print(time.time()-s, 'seconds elapsed')
0.13749933242797852 seconds elapsed
import modin.pandas as pd
import time

df = pd.DataFrame({'a':[random.randint(0, 1e3) for _ in range(int(1e6))]})

add_factor = 2193
multiply_factor = 4353

s = time.time()
df.a += add_factor
df.a *= multiply_factor
print(time.time()-s, 'seconds elapsed')
0.08657097816467285 seconds elapsed