ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用pandas循环数据帧的最有效方法是什么?

2019-09-11 08:58:28  阅读:151  来源: 互联网

标签:python performance pandas dataframe for-loop


参见英文答案 > How to iterate over rows in a DataFrame in Pandas?                                    17个
我希望以顺序方式对数据框中的财务数据执行我自己的复杂操作.

例如,我使用的是从Yahoo Finance获取的以下MSFT CSV文件:

Date,Open,High,Low,Close,Volume,Adj Close
2011-10-19,27.37,27.47,27.01,27.13,42880000,27.13
2011-10-18,26.94,27.40,26.80,27.31,52487900,27.31
2011-10-17,27.11,27.42,26.85,26.98,39433400,26.98
2011-10-14,27.31,27.50,27.02,27.27,50947700,27.27

....

然后我做以下事情:

#!/usr/bin/env python
from pandas import *

df = read_csv('table.csv')

for i, row in enumerate(df.values):
    date = df.index[i]
    open, high, low, close, adjclose = row
    #now perform analysis on open/close based on date, etc..

这是最有效的方式吗?鉴于对熊猫速度的关注,我认为必须有一些特殊的函数来迭代遍历值,同时也检索索引(可能通过生成器来节省内存)?遗憾的是,df.iteritems只能逐列迭代.

解决方法:

最新版本的pandas现在包含一个用于迭代行的内置函数.

for index, row in df.iterrows():

    # do some logic here

或者,如果你想更快地使用itertuples()

但是,unutbu建议使用numpy函数来避免遍历行将产生最快的代码.

标签:python,performance,pandas,dataframe,for-loop
来源: https://codeday.me/bug/20190911/1804417.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有