Pandas Getting Performance

http://pandas.pydata.org/pandas-docs/version/0.24/user_guide/enhancingperf.html?highlight=performance

For intensive ndarray computing (loops): - use cython with numpy - use numba with numpy

在引入更复杂的基础设施(如k8s、多进程)等方式之前,先使用算法、语言级别的性能优化。而在执行优化之前,先应该找到瓶颈。既可以使用小代码片段和模拟数据来验证代码(或算法)的性能,或小规模数据使用profile来看,也可以往代码中加入时间开销打印输出等方式来寻找(尤其是在函数体内)。

比如,我在做MCS的统计分析时,一开始猜测是df的loop开销大,花了力气优化。但后来按步骤,先加入时间开销打印语句,找出来时间开销是在df.loc[i,j …

Continue Reading