【Python效率】五种Pandas循环方法效率对比 - 文兄的文章 - 知乎 https://zhuanlan.zhihu.com/p/80880493

正文:

如果你使用过Python及Pandas,那么你很有可能已经使用了for循环去进行某些数据分析操作。不幸的是,绝大部分Python新手使用的下标循环语句实际上是非常之慢的,即便在小数据集上也会消耗大量的运行时间。本专栏之前的一些文章已经涉及了这方面的讨论,在这篇文章中文兄进一步特意对五种不同的For Loop方法进行横向对比,使大家更加明晰自己平时写的各种For循环到底效率几何。

注意:之后代码里出现的df是一个只有一个column叫做test的dataframe。另外各方法下面的代码均只是用法举例,并不和测试速度用的代码完全一致。测试代码原文如下:https://towardsdatascience.com/how-to-make-your-pandas-loop-71-803-times-faster-805030df4f06​towardsdatascience.com

方法1:下标循环(速度等级: )

下标循环是通过循环一个下标数列,通过iloc去不断get数据,这个方法是新手最常用的但也是最慢的,在测试例子中大概需要21.9s。

方法2:Iterrows循环(速度等级: )

该循环方式是通过iterrows进行循环,ind和row分别代表了每一行的index和内容。测试例子大概需要0.07s,比起下标循环速度提升了321倍。

方法3:Apply循环(速度等级: )

Apply是pandas的一个常用函数,通常的用法是内接一个lambda匿名函数,从而对dataframe的每一行都进行循环处理。在测试例子中,apply的速度为0.027s,比下标循环快了811倍。

方法4:Pandas内置向量化函数(速度等级: )

Pandas为我们提供了大量的内置向量化函数,比如sum,mean就可以快速计算某一列的求和和平均。在测试例子中速度为0.00236s,比下标循环快了9280倍。

方法5:Numpy向量化函数(速度等级: )

最后一种方法是将Pandas的数据转化为Numpy的Array,然后使用Numpy的内置函数进行向量化操作。在测试例子中速度为0.000305s,比下标循环快了71800倍。

下面是详细的速度对比图,来自之前链接:

python最快的循环方法_【转】【Python效率】五种Pandas循环方法效率对比相关推荐

  1. 循环下标_【转】【Python效率】五种Pandas循环方法效率对比

    [Python效率]五种Pandas循环方法效率对比 - 文兄的文章 - 知乎 https://zhuanlan.zhihu.com/p/80880493 正文: 如果你使用过Python及Panda ...

  2. 揭秘python的5种最佳调试方法_揭秘 IPython 的 5 种最佳调试方法-阿里云开发者社区...

    云栖号:https://yqh.aliyun.com 第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 一个好的集成开发环境(IDE)附带的调试器是 ...

  3. 瓷砖铺贴方法_老师傅总结:4种瓷砖铺贴的方法,很实用

    关注微信公众号:jia-fszx,每天和您分享软装搭配技巧.各种风格户型的装修案例.搭配设计知识等! 在装修新房的时候,瓷砖铺贴是必须要经历的一个过程,瓷砖一旦没铺好,那么就很容易出现空鼓的情况发生, ...

  4. ps去水印教程_ps去水印教程,详细解析五种去水印的方法

    平常我们从一些素材网站下载图片的时候,不免会带上一些水印,使图片的整体美感下降不少,今天教同学们五种去除水印的方法,相信你学习以后,有所收获,遇到喜欢的图片可以把不想要的水印去掉,不过水印是保护图片的 ...

  5. JSP页面的五种跳转方法

    JSP(Java Server Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.本文主要介绍的是JSP页面的五种跳转方法,一起来看. AD: JS ...

  6. python以运行效率高著称吗_提升Python程序运行效率的6个方法

    Python是一个很酷的语言,因为你可以在很短的时间内利用很少的代码做很多事情.不仅如此,它还能轻松地支持多任务,比如多进程等.Python批评者有时会说Python执行缓慢.本文将尝试介绍6个技巧, ...

  7. python源码多平台编译_提升Python程序运行效率的6个方法

    Python是一个很酷的语言,因为你可以在很短的时间内利用很少的代码做很多事情.不仅如此,它还能轻松地支持多任务,比如多进程等.Python批评者有时会说Python执行缓慢.本文将尝试介绍6个技巧, ...

  8. 学python的正确方法_学习Python最正确的步骤(0基础必备)

    首先,学习Python编程技术,自学或者参加培训学习都适用,每个人都有自己的学习方式和方法. 一:明确自己的学习目标. 不管我们学习什么样的知识,都要对自己的学习目标有一个明确的认识.只有这样才能朝着 ...

  9. python init方法是不是私有方法_为什么Python的“私有”方法实际上不是私有的?...

    为什么Python的"私有"方法实际上不是私有的? Python使我们能够通过在名称前加上双下划线来创建类中的"私有"方法和变量,如下所示:__myPrivat ...

最新文章

  1. ZOJ 3822 Known Notation(2014牡丹江Regional K题)
  2. mongodb小结(转)
  3. 拉格朗日 SVM KKT
  4. 【Linux】一步一步学Linux——dmesg命令(74)
  5. python的pypi安装_python pip及安装包安装
  6. phpcms留言板功能的实现
  7. 1074. 元素和为目标值的子矩阵数量
  8. 控制項學習四(屬性與事件)
  9. 带你通俗理解https
  10. svn服务器搭建之备份3
  11. 关于调试,很大的感触,请看下面的c程序
  12. Java基本语句(注释语句、javadoc、System.out.print和println和printf区别)复习2
  13. 2017深度学习装机清单 (附京东链接)
  14. 老派程序员:徒手实现伟大成就
  15. 计算机四级网络工程师属于什么职称,计算机四级网络工程师和软考网络工程师有什么区别...
  16. 物联卡是正规卡还是漏洞卡?一篇最简单明了的解释!
  17. OD-火星文计算(Python)
  18. Fwd: Nginx Rewrite研究笔记
  19. 逆战无法修复服务器,逆战登录时的各种问题 这些问题该如何解决?
  20. 智慧水务系统建设方案(污水处理、智慧防汛、智慧水务、智慧水利)

热门文章

  1. 创建ListView的基本步骤
  2. Scala中那些令人头痛的符号
  3. 互联网广告系统综述四定向
  4. javaweb学习总结(二十四):jsp传统标签开发
  5. 3012C语言_数据
  6. 离线手动部署docker镜像仓库——harbor仓库(二)
  7. 吉林白山:“五脏俱全”的智能WiFi路灯点亮智慧城市
  8. 简析TCP的三次握手与四次分手
  9. win10系统下载 Ghost Win10 RS1 1067 64位纯净3月版
  10. Java ServletContextListener用法