转载自脚本之家
https://www.jb51.net/article/134753.htm 《Python遍历pandas数据方法总结》


贴4条常用的,其他的移步原帖链接。

列表解析方式

disftance_list = [df.iloc[i][‘high']/df.iloc[i][‘open'] for i in range(0,len(df))]

apply()方法循环方式
apply()方法可将函数应用于dataframe特定行或列。函数由lambda方式在代码中内嵌实现,lambda函数的末尾包含axis参数,用来告知Pandas将函数运用于行(axis = 1)或者列(axis = 0)。

实现代码如下:

df.apply(lambda row: row[‘high']/row[‘open'], axis =1)

Pandas series 的矢量化方式
Pandas的DataFrame、series基础单元数据结构基于链表,因此可将函数在整个链表上进行矢量化操作,而不用按顺序执行每个值。Pandas包括了非常丰富的矢量化函数库,我们可把整个series(列)作为参数传递,对整个链表进行计算。

实现代码如下:

dftest4['rate'] = dftest4['high']/dftest4['open']

Numpy arrays的矢量化方式
由于函数的矢量化实现中只使用了series的数值,因此可使用values 方法将链表从Pandas series转换为NumPy arrays,把NumPy array作为参数传递,对整个链表进行计算。

实现代码如下:

dftest5['rate'] = dftest5['high'].values/dftest5['open'].values

总结
使用timeit方法对以上几种遍历方式进行执行时间测试,测试结果如下。可以看出循环执行的速度是最慢的,iterrows()针对Pandas的dataframe进行了优化,相比直接循环有显著提升。apply()方法也是在行之间进行循环,但由于利用了类似Cython的迭代器的一系列全局优化,其效率要比iterrows高很多。NumPy arrays的矢量化运行速度最快,其次是Pandas series矢量化。由于矢量化是同时作用于整个序列的,可以节省更多的时间,相比使用标量操作更好,NumPy使用预编译的C代码在底层进行优化,同时也避免了Pandas series操作过程中的很多开销,例如索引、数据类型等等,因此,NumPy arrays的操作要比Pandas series快得多。

【转载】Python遍历pandas数据方法总结相关推荐

  1. Python之pandas数据加载、存储

    Python之pandas数据加载.存储 0. 输入与输出大致可分为三类: 0.1 读取文本文件和其他更好效的磁盘存储格式 2.2 使用数据库中的数据 0.3 利用Web API操作网络资源 1. 读 ...

  2. python遍历数组的方法小结

    这篇文章主要介绍了python遍历数组的方法,实例总结了两种Python遍历数组的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例总结了python遍历数组的方法.分享给大家供大家参考.具体分析 ...

  3. [转载] Python利用pandas处理Excel数据的应用

    参考链接: Python | Pandas数据比较与选择 最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做 ...

  4. [转载] python 遍历字符串 字符_python 遍历字符串(含汉字)实例详解

    参考链接: Python字符串| rfind python 遍历字符串(含汉字)实例详解 python 遍历字符串(含汉字)实例详解 s = "中国china" for j in ...

  5. [转载] Python中pandas dataframe删除一行或一列:drop函数

    参考链接: Python | Pandas 数据 DataFrame 用法:DataFrame.drop(labels=None,axis=0, index=None, columns=None, i ...

  6. [转载] Python字典的setdefault()方法

    参考链接: Python字典setdefault() Python字典的setdefault()方法 (2012-06-22 02:18:05)转载▼ setdefault(key[, default ...

  7. python遍历文件夹方法

    python遍历文件夹 import os folder_path = '........' for root, dirs, files in os.walk(folder_path, True): ...

  8. 利用python下载fnl数据方法

    (1)下载python,网上下载方法很多,此处不再赘述,记得下载和电脑系统版本匹配的就好: (2)去ncar官网注册 https://rda.ucar.edu/ 先进行注册,需要注意的是注册最好用教育 ...

  9. python遍历数组的方法

    python遍历数组的两种方法 1.for in arrays= ["昨天","今天","明天"]for array in arrays:p ...

最新文章

  1. C/C++ 回调函数是什么?Intel Realsense里的回调(callback)是什么?
  2. java比较三个数的编程_Java小程序输入三个数求最大数
  3. 算法工程师掌握了这个炼丹技巧的我开始突飞猛进
  4. TCP/IP / UDP 头
  5. Initializer provides no value for this binding element and the binding element has no default value
  6. java高级编程期末考试题_java高级编程考题
  7. 「2017 山东一轮集训 Day6」子序列(矩阵快速幂)
  8. linux安装7z到指定目录,linux下安装7zip
  9. 在Win10中通过Google Chrome运行安卓应用
  10. java io 字节流_Java之IO-字节流
  11. 使用Shell工具连接虚拟机
  12. 关于软件试用期功能实现-2018.1.24
  13. 《指数基金投资指南》笔记整理
  14. jquery判断元素内容是否为空的方法
  15. java程序员的转正述职ppt
  16. python如何根据数据画散点图_用python绘制散点图
  17. DDR设计之地址和容量计算、Bank理解
  18. 历年医院招计算机考题,2020医院招聘考试历年试题——医学影像学(64)
  19. 安卓高通Diag命令解析
  20. 使用变量时,单引号、双引号、反向单引号的区别

热门文章

  1. linux建立数据库及构建表
  2. 小程序errno_错误:UNIX程序中的errno
  3. 机器学习 | MATLAB实现MLP多层感知机newff参数设定(上)
  4. spring原理 struts2原理 hibernate原理 MyBatis原理 SpringMVC
  5. 模糊集合和隶属度函数--AForge.NET框架的使用(一)
  6. 自动驾驶软件开发人才现状_新技术改变传统出行方式 多国自动驾驶行业现状及人才需求分析...
  7. cmd ping 一台计算机名,windows CMD命令查看局域网内所有主机名及IP
  8. 正则表达式中 前瞻,后顾,负前瞻,负后顾等整理
  9. 昊鼎王五:如何安装蓝鲸智云v3.1.7社区版本之MYSQL?
  10. android10(Q) API29下,通过getDeviceId()方法获取imei 报错的处理办法