当前位置:   article > 正文

DataFrame循环处理效率的记录_如何遍历dataframe是最快的

如何遍历dataframe是最快的

几种工具的处理效率比较:

每次循环都使用复杂的操作尽可能拆分成向量化操作,也可转为numpy,再用numba加速。

对 DataFrame 中的数据做循环处理的效率:

方法一:下标循环
for i in range(len(df)):
    if df.iloc[i]['test'] != 1:
        df1.iloc[i]['test'] = 0

通过循环一个下标数列,通过iloc获取数据,是最慢的方法。

方法二:iterrows 循环
for ind, row in df.iterrows():
    if row['test'] != 1:
        df1.iloc[i]['test'] = 0
    i += 1

通过iterrows循环,ind和row代表了每一行的index和内容,比下标循环速度提升了300倍。

方法三:Apply

df1['test'] = df['test'].apply(lambda x: x if x == 1 else 0)

Apply内接匿名函数,对Dataframe每一行循环处理,比下标循环速度提升了800倍。

方法四:Pandas内置向量化函数

res = df.sum()

Pandas有大量内置向量化函数,比如sum,mean可快速计算。比下标循环快了9280倍。

方法五:Numpy

df_values = df.values
res = np.sum(df_values)

将Pandas数据转为Numpy,用Numpy内置函数做向量化操作,比下标循环快了71800倍。

参考:

dataframe 循环_【Python效率】五种Pandas循环方法效率对比_weixin_39744230的博客-CSDN博客

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

闽ICP备14008679号