2013-08-12 4 views
2

나는 아주 가깝다.팬더에서 멀티 인덱스를 복원하는 방법 DataFrame

subject sessionIndex screenIndex index  key time 
    s019    1   3  1 Shift 0.3442 
    s019    1   3  2 Shift.t 0.1514 
    s019    1   3  3  h 0.0844 
    s019    1   3  4  e 0.1127 
    s019    1   3  5 space 0.1201 
    s091    3   5 821  h 0.1126 
    s091    3   5 822  a 0.1425 
    s091    3   5 823  n 0.0926 
    s091    3   5 824  d 0.1525 

사용 후 : 나는 다음과 같은 dataframe 한

pivot_table(data,values='time', rows=['subject','sessionIndex','screenIndex','index'], cols=['key']) 

: 대단한

key          Shift Shift.t  a  d ... 
subject sessionIndex screenIndex index          
s019 1   3   1  0.3442  NaN  NaN  NaN ... 
           2   NaN 0.1514  NaN  NaN ... 
           3   NaN  NaN  NaN  NaN ... 
           4   NaN  NaN  NaN  NaN ... 
           5   NaN  NaN  NaN  NaN ... 
s091 3   5   821  NaN  NaN  NaN  NaN ... 
           822  NaN  NaN 0.1425  NaN ... 
           823  NaN  NaN  NaN  NaN ... 
           824  NaN  NaN  NaN 0.1525 ... 

하지만 내가이 붙어당한 multiindex "을 전개"하는 나는이 같은 dataframe이 내 데이터 프레임은 다음과 같습니다.

subject sessionIndex screenIndex index Shift Shift.t  a  d ...        
s019 1   3   1  0.3442  NaN  NaN  NaN ... 
s019 1   3   2   NaN 0.1514  NaN  NaN ... 
s019 1   3   3   NaN  NaN  NaN  NaN ... 
s019 1   3   4   NaN  NaN  NaN  NaN ... 
s019 1   3   5   NaN  NaN  NaN  NaN ... 
s091 3   5   821  NaN  NaN  NaN  NaN ... 
s091 3   5   822  NaN  NaN 0.1425  NaN ... 
s091 3   5   823  NaN  NaN  NaN  NaN ... 
s091 3   5   824  NaN  NaN  NaN 0.1525 ... 

이미 색인 생성 및 색인 재설정을 시도했습니다. 나는 판다 (pandas)와 파이썬 (python)에 상당히 익숙하기 때문에 어쩌면 어리 석다. 제가 여기에 실종 된 것을 알려주십시오, Thx.

+0

나는 당신이 "전개"무슨 뜻인지 모르겠어요. 반복되는 표시가 표시 목적으로 숨겨져 있지만, 여전히 나타납니다. 그러나 아마도 네 개의 MultiIndex 레벨이 정상적인 열 이었으면 좋겠다.이 경우 네가 지정한대로 표시하고 어떤면에서는 다루기가 더 쉬울 것이다. 이 경우''df.reset_index()''의 결과를 사용하십시오. –

+0

안녕하세요 댄, 귀하의 회신에 대 한 thx. 나는 이미 이것을 시도했다. 문제는이 명령이 모든 변수를 다시 케이스로 되돌려 놓는다는 것입니다. 따라서 필자의 데이터는 pivot_table이라고합니다. – user2675976

+0

흠. 그것은 놀랍습니다. 원래 DataFrame이 아니라 pivot_table 결과에 reset_index를 실행하고 있습니까? –

답변

0

이것은 팬더의 디스플레이 옵션입니다. 팬더를 가져온 후 즉시이 줄을 추가

시도 : pandas.set_printoptions(multi_sparse=False)

+0

안녕하세요 Paul, 귀하의 회신을 위해 thx. 내 문제는 실제로 형식이 아닙니다. 열을 사용하여 일부 선택자를 실행하려고합니다. 열이 멀티 인덱스로 조인 될 때 ​​훨씬 더 어렵습니다. 인덱스 열을 복원하려고합니다. – user2675976

+0

@ user2675976 IMO 인덱스를 유지하는 것이 좋습니다. 'dataframe.select' 메소드는'MultiIndex'의 곱셈 값에 대한 선택을 매우 강력하게 수행 할 수 있습니다 (예 :'subset = df.select (lambda x : x [0] == 'S019'와 s [2] , [5], s [3] = 5)' –

+0

Thx Paul 내가 나중에 다른 선택 기준을 사용하려고 했으므로 \t train = data [data [ 'subject'] == user] \t \t train = train [train [ 'sessionIndex'] == 1] inices를 복원하는 것이 더 쉬워 보입니다. – user2675976

관련 문제