【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倍。
下面是详细的速度对比图,来自之前链接:

Sources:
[1] https://stackoverflow.com/questions/52673285/performance-of-pandas-apply-vs-np-vectorize-to-create-new-column-from-existing-c
[2] https://en.wikipedia.org/wiki/Locality_of_reference

循环下标_【转】【Python效率】五种Pandas循环方法效率对比相关推荐

  1. python最快的循环方法_【转】【Python效率】五种Pandas循环方法效率对比

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

  2. 【Python】五种Pandas图表美化样式汇总

    Pandas是一种高效的数据处理库,它以dataframe和series为基本数据类型,呈现出类似excel的二维数据. 在Jupyter中,会美化Pandas的输出.不同于IDE展示的文本形式,Ju ...

  3. python实现反转链表讲解_基于Python实现2种反转链表方法代码实例

    题目: 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你 ...

  4. python中五种下划线 _

    python中五种下划线 "_" 单前导下划线:_var 单末尾下划线:var_ 双前导下划线:__var 双前导和末尾下划线:var 单下划线:_ 在文章结尾处,你可以找到一个简 ...

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

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

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

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

  7. 锅炉结垢不停炉不停工在线除垢技术与7种化学清洗水垢方法优势对比

    锅炉结垢不停炉不停工在线除垢技术与7种化学清洗水垢方法优势对比 一.锅炉结垢的原因 锅炉结垢的原因是锅炉给水中含有钙镁硬度.腐蚀形成氧化铁.硅等含结垢成分物质,结垢成分物质在炉水中不断被加热浓缩.溶解 ...

  8. python安装pandas模块-python安装numpy和pandas的方法步骤

    最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...

  9. python3 循环写入一对多键值对_为什么Python 3.6以后字典有序并且效率更高?

    在Python 3.5(含)以前,字典是不能保证顺序的,键值对A先插入字典,键值对B后插入字典,但是当你打印字典的Keys列表时,你会发现B可能在A的前面. 但是从Python 3.6开始,字典是变成 ...

最新文章

  1. 一文了解人脸识别:从实现方法到应用场景都讲明白了
  2. Django models数据库配置以及多数据库调用设置
  3. 中国空间站核心舱首次公开亮相:将于2022年前后完成在轨建造
  4. 全面进军javascript!
  5. 判断一个文件是否可以使用
  6. 华为当个pl怎么样_华为员工吐槽:画饼、忽悠、洗脑,有些pl、pm怎么可以那么坏?...
  7. 超级玛丽java版下载jar文件_java超级玛丽混搭版jar
  8. 冯鑫、雷军、王峰、蒋涛、傅盛等金山系老将,已将区块链拼成完整生态图
  9. Alertmanager 官方文档翻译
  10. matlab 三角函数 积化和差,三角函数积化和差与和差化积公式
  11. pwnable.kr第五题:passcode
  12. R语言和医学统计学系列(1):t检验
  13. MySQL关闭慢查询日志
  14. SwitchResX 开启HiDPI时显示Not installed的解决办法
  15. 访问win7上面的共享文件时,出现登陆失败:禁用当前用户的错误
  16. 在VSCode中自定义文件类型和扩展名关联
  17. CSS3 steps逐帧动画 —— 仿人人网动画案例
  18. 不同数据库中获得表名列表的SQL(继续偷冰血)
  19. “杭州最惨创业者”事件初步法律分析
  20. 使用个人招行专业版键盘失灵

热门文章

  1. Hadoop 调研笔记
  2. 基于XAMPP的Testlink安装方法
  3. PKCS #1 RSA Encryption Version 1.5
  4. 理解TCP/IP协议
  5. spreadsheet js中创建下拉列表_JS 中创建自定义排序方法
  6. python中类的构成_Python中类型关系和继承关系实例详解
  7. 复杂查询练习_MySQL基础知识—习题练习
  8. oracle的ocm怎么算通过,Oracle 11g OCM的通过祝贺信
  9. C++面试题-指针-动态内存指针
  10. C++/C代码审查表