Python-用pandas遍历数据帧的最有效方法是什么?

发布于 2021-02-02 23:15:55

我想按顺序对数据帧中的财务数据执行自己的复杂操作。

例如,我正在使用以下来自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不幸的是,只能逐列进行迭代。

关注者
0
被浏览
105
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    熊猫的最新版本现在包括用于遍历行的内置函数。

    for index, row in df.iterrows():
    
        # do some logic here
    

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

    但是,unutbu建议使用numpy函数以避免对行进行迭代将产生最快的代码。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看