当dataframe数据量较大时,使用for循环会耗费较多的时间。尤其是当for循环内还嵌套其他循环语句时。时间复杂度会骤升,不利于数据处理。
这种情况下,要避免使用for循环。
参考文章:dataframe for循环_71803倍!超强Pandas循环提速攻略_weixin_39943926的博客-CSDN博客
方法1:直接对dataframe列进行运算。
如:使用shift()函数等
方法2:使用apply()函数+lambda函数
方法3:可以调用gpu进行运算。(可能可以,自己还没有动手实践过,不太确定。(本人持悲观态度))
方法4:使用itrows方法。(函数名没有拼对,大致长这个样子)(没有尝试过,不过看着可行)
方法5:使用numpy进行处理。(pandas+numpy,yyds)
如:使用vectorize向量化函数对DataFrame中值进行复杂运算。(参考文章:vectorize向量化函数对DataFrame中值进行复杂运算_dataframe向量化_Logen的博客-CSDN博客)
当然,应该也有对for循环进行优化处理的方法,但效果可能只能提高几百倍的速度。在其他博客中看到过处理方法。
待尝试:听说过hadoop大数据处理框架,但还没有学过,希望有时间尝试下,再补上……。