2014-07-20 2 views
1

다음 코드의 속도를 높이려고합니다. 'db'는 DataFrames 사전입니다. 이 속도를 높일 수있는 방법을 구성하는 더 나은/다른 방법이 있습니까?팬더에서 .ix 속도 향상

%timeit speedTest() 
1 loops, best of 3: 1min per loop 

이 각 개별 호출입니다 :

%timeit current_bar = db[s].ix[date] 
10000 loops, best of 3: 154 µs per loop 

어떤 도움/제안은 감사하겠습니다

for date in dates:       # 3,800 days 
    for instrument in instruments:   # 100 instruments 
     s = instrument.ticker       
     current_bar = db[s].ix[date] 
     # (current_bar.xxx then gets used for difference calculations.) 

다음은 결과입니다. 감사합니다.

+0

['.apply'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html#pandas.DataFrame.apply)를 사용하여 'axis = 1 ' –

답변

0

저는 데이터 프레임을 쓰는 것이 좋습니다라고 생각하지 않습니다. 모든 데이터 프레임을 수직으로 스택으로 구조화하고 키를 인덱스/멀티 인덱스 레벨로 사용하십시오.

+0

그게 제가 생각한 문제이기도합니다. 저는 파이썬과 팬더를 처음 접했기 때문에, 당신이 설명하는 구조를 이해하지 못하기 때문에 좀 더 연구해야 할 것입니다. 감사 – trubby317