2014-04-11 2 views
-2

기본적으로 질문은 "팬더에 SQL과 같은 멀티 인덱스가 있습니까?"입니다.팬더, (멀티) 열 값으로 빠른 액세스

자세한 내용은 O (1) 시간에 지정된 값의 열을 가진 레코드에 액세스하기 위해 DataFrame의 (다중) 인덱스를 추가하고 싶습니다.

는 다음 스크립트는 내가 필요로 무엇을 수행하지만, O (1) 시간에하지 :

import pandas as pd 
import numpy as np 
df = pd.DataFrame([[0, 1, 0],[0, 0, 0]], columns=['a', 'b', 'c']) 
df[np.logical_and(df['a'] == 0, df['b'] == 1)] 

내가 dataframe의 (다) 인덱스를 구축 할 수있는 방법이 있는지 궁금 (의가에있는 가정 해 봅시다 O (N) 시간) O (1) 시간에 레코드에 액세스하십시오.

답변

2

이것은 꽤 도움이 될만한 대답이지만, 유용 할 경우 나는 어쨌든 게시 할 것입니다.

당신은 내가 시간 복잡도가 기본이되는 구현의 무엇인지 전혀 모른다

df.set_index(['a', 'b'], inplace=True) 

와 dataframe에 multiindex을 적용 할 수 있습니다. 다음과 같이

당신은 ix 방법으로 multiindex와 dataframe에서 행에 액세스 할 수 있습니다

df.ix[(0, 1)] 

나는 이것이 당신이 찾고있는 무엇인가를 바란다. 사과하지 않으면.

+0

이것은 당신이하고 싶은 것입니다. OP의 예를 사용하면 이것이 더 좋을 것이라고 생각합니다. –

+0

좋은 지적입니다. 감사. 편집 됨. –

+0

또 다른 옵션은 여기서 ix가 아닌 loc을 사용하는 것입니다. :) –