2013-05-24 4 views
3

어떻게 멀티 인덱싱이 작동하는지 잘 모르겠습니다. 따라서 여기에서 잘못된 작업을하려고하는 것일 수도 있습니다. 데이터 프레임이있는 경우Python Pandas 다중 인덱스 데이터 프레임에서 두 번째 인덱스의 값에 액세스

 Value 
A B   
1 1 5.67 
1 2 6.87 
1 3 7.23 
2 1 8.67 
2 2 9.87 
2 3 10.23 

B = 2 인 요소에 액세스하려면 어떻게해야합니까? df.ix [2]는 나에게 A = 2를 준다. 특정 값을 얻으려면 df.ix [(1,2)]처럼 보이지만 직접 액세스 할 수 없다면 B 인덱스의 목적은 무엇입니까?

답변

3

당신은 xs을 사용할 수 있습니다 : 또는

In [11]: df.xs(2, level='B') 
Out[11]: 
    Value 
A 
1 6.87 
2 9.87 

:

In [12]: df1.xs(1, level=1) 
Out[12]: 
    Value 
A 
1 5.67 
2 8.67 
1

단지의 대안으로, 당신은 df.loc을 사용할 수

>>> df.loc[(slice(None),2),:] 
    Value 
A B  
1 2 6.87 
2 2 9.87 

튜플 순서대로 인덱스를 액세스합니다. 따라서 slice(None)은 인덱스 'A'의 모든 값을 가져오고, 두 번째 위치는 두 번째 레벨 인덱스를 기준으로 제한합니다.이 예제에서는 'B'=2입니다. :은 모든 열을 원한다고 지정하지만 열을 하위 열로도 선택할 수 있습니다.