2013-11-20 3 views
6

나는 시계열 데이터 프레임을 가지고 있는데, 나는 그것을 시행 및 측정으로 다시 색인하고 싶다. 나는이로 전환 할판다 데이터 프레임 멀티 인덱스의 Reindex 하위 레벨

   value 
Trial   
    1  0  13 
      1   3 
      2   4 
    2  3  NaN 
      4  12 
    3  5  34 

가 :

    value 
Trial  
    1  0  13 
      1   3 
      2   4 
    2  0  NaN 
      1  12 
    3  0  34 

최선의 방법 나는이 작업을 수행 할 수 있습니다

간체,이 있나요?

답변

7

바로 어제 앤디 ​​헤이든 (Andy Hayden)이 판다의 0.13 버전에이 기능을 추가했습니다.이 버전은 지금 하루에 출시 될 예정입니다. 문서에 추가 한 사용 예는 here을 참조하십시오.

소스에서 개발 버전의 pandas를 설치하는 것이 편한 경우 지금 사용할 수 있습니다.

다음 코드는 동일하지 않으며 덜 연약한 경우 최신 버전의 팬더에서 작동합니다.

grouped = df.reset_index().groupby('Trial') 
df['Measurements'] = grouped.apply(lambda x: Series(np.arange(len(x)), x.index)) 

마지막으로 df.set_index(['Trial', 'Measurements'], inplace=True)을 사용하여 원하는 결과를 얻으십시오.

+4

하하! "illustrious"+1;) (참고 : cumcount는 인덱스의 속임수에서도 작동하지만 "동급"은 그렇지 않습니다 ... 저는 문서에서 약간 건방진 느낌으로 "본질적으로 동급"이라고 말했습니다 : p) –

+0

만약 내 색인이 호출되지 않습니다 ('측정') - 오히려 이름이 전혀 없습니까? – TheChymera

+1

이름 인덱스 레벨은''groupby (level = 1)''처럼''level'' 키워드를 사용하여 지정할 수 있습니다. –