当前位置:   article > 正文

pandas--高质量使用技巧_pandas 使用apply传入函数速度太慢

pandas 使用apply传入函数速度太慢

一、apply 效率低,可以优化的方法

pandas处理数据时,常需要用到apply方法对某列或者某几列数据进行处理。apply方法便捷易懂,但随着处理数据量的增加以及处理函数的复杂度增加,apply所需要的耗时也会增加。

常见的两种方式:

1、矢量化操作,它是在Pandas中做事的最快方法,且优先考虑内置函数。如下图的pandas vectorization

直接通过列名进行操作,例如进行计算、生成布尔值、字符串操作等。

  1. df['sum'] = df.sum()
  2. df['bool'] = df['c'].isnull.any(axis=1)
  3. df['result'] = df['d'].str.lower()

假如原本apply应用的函数,存在不同情况不同的处理方式时,可以使用切片操作将数据按照情况切分,然后分开处理数据,最后再合并。

  1. df.loc[:5, 'result'] = df.loc[:5, 'd'] + 'begin'
  2. df.loc[5:, 'result'] = df.loc[5:, 'd'] + 'end'

 

2、将Pandas的数据转化为Numpy的Array,然后使用Numpy的内置函数进行向量化操作。如下图的numpy vectorization

df['sum'] = np.sum(df.values)

 

下图是有个工程师做的各个方法的耗时对比。常用的apply方法指的是图中的方法 lambda Function

【Python效率】五种Pandas循环方法效率对比

当然还有其他的方式,且可以根据业务逻辑去发现更多的技巧。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/210211
推荐阅读
相关标签
  

闽ICP备14008679号