Я хочу последовательно выполнять свои собственные сложные операции с финансовыми данными в фреймах данных.
Например, я использую следующий CSV-файл MSFT, взятый из Yahoo Finance:
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
, к сожалению, выполняет итерацию только столбец за столбцом.
df.apply()
? - person naught101   schedule 16.04.2015unutbu
, NumPy, похоже, поддерживает векторизованные операции (The key to speed with NumPy arrays is to perform your operations on the whole array at once
). - person mike   schedule 10.08.2015