2014-01-15 5 views
1

다중 인덱스 데이터 프레임을 정의했습니다.다중 인덱스 인덱스를 열로 변환

import pandas as pd 
import numpy as np 

dates = pd.date_range('20130101',periods=3,freq='5s') 
dates = dates.append(dates) 

locations = list('AAABBB') 
gascode = ['no2','o3','so2']*2 

tup = pd.MultiIndex.from_tuples(zip(locations,gascode,dates), names=['Location','gas','Date']) 

data = pd.DataFrame(data=range(6),index=tup,columns=['val1']) 

>>> data 

Location gas Date     val1   
A  no2 2013-01-01 00:00:00  0 
     o3 2013-01-01 00:00:05  1 
     so2 2013-01-01 00:00:10  2 
B  no2 2013-01-01 00:00:00  3 
     o3 2013-01-01 00:00:05  4 
     so2 2013-01-01 00:00:10  5 

는 'A'위치에서 데이터를 유지 :로

data = data.xs(key='A',level='Location') 

을 지금, 나는 산출하기 '가스'인덱스에 따라 새 열을 만들려면 :

Date     no2 o3 so2 
2013-01-01 00:00:00  0 nan nan 
2013-01-01 00:00:05  nan 1 nan 
2013-01-01 00:00:10  nan nan 2 

나는 '날짜'색인에 대해 '가스'를 칼럼에 넣기 위해 노력했지만, 실패했습니다.

data = data.pivot(index=data.index.get_level_values(level='date'), 
        columns=situ.index.get_level_values(level='gas')) 

나는 이것을 달성하는 방법을 잃었습니다. 누구든지 대안을 추천 할 수 있습니까?

답변

4

당신은 결과를 unstack 수 있습니다.

In [11]: data.xs(key='A', level='Location').unstack(0) 
Out[11]: 
        val1   
gas     no2 o3 so2 
Date        
2013-01-01 00:00:00  0 NaN NaN 
2013-01-01 00:00:05 NaN 1 NaN 
2013-01-01 00:00:10 NaN NaN 2 

[3 rows x 3 columns] 
+0

내가 그것을 감사에 건설했다 의심! – tnknepp