用Panda循环数据框架最有效的方法是什么?

问题:

我想以顺序的方式对数据框中的财务数据执行我自己的复杂操作。
例如,我使用从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不幸的是只能逐列迭代。

回答:

现在最新版本的熊猫现在包括一个内置的迭代行功能。

for index, row in df.iterrows():

    # do some logic here

或者,如果你想要更快地使用itertuples()
但是,unutbu建议使用numpy函数来避免迭代行会产生最快的代码。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: What is the most efficient way to loop through dataframes with pandas?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

10 + = 20