2014-07-26 5 views
3
-

(배경 : 나는 팬더와하기 matplotlib를 배우고 내 irclogs에서 멋진 그래프를 얻기 위해 노력하고있어.) 나는 다중 인덱스 시리즈로 일부 데이터를 분석하는 데 성공했다파이썬 팬더 - MultiIndexed 시리즈 Dataframe

(의이 series를 호출하자) : 그래프에 대한

     msgs 
id datetime_period 
A  2014-07-04 07:00 1 
     2014-07-04 08:00 2 
     2014-07-08 11:00 5 
B  2014-07-08 11:00 1 
C  2014-07-04 07:00 2 

, 나는 이런 식으로 뭔가 찾고 dataframe로 정리하고 싶습니다 : 내가 갈 것 어떻게

index    A B C 
2014-07-04 07:00 1 0 2 
2014-07-04 08:00 2 0 0 
2014-07-08 11:00 5 1 0 

을 그거? 나는 이런 식으로 할 수있을 것 같아요.

df = DataFrame({i: series.ix[i] for i in ['A', 'B', 'C'] }) 

더 많은 '팬더'가 있습니까? (그렇지 않은 경우 시리즈에서 'A', B ','C '] 목록을 어떻게 검색하겠습니까?)

또는 사용하기 쉽습니다), 처음부터 시리즈를 구성하는 데 사용 된 원본 '원시'데이터 프레임을 사용할 수도 있습니다. 너무 같은 각 닉에 의해 게시 된 각 메시지에 대한 타임 스탬프를 포함 : 열로 MultiIndex의 수준을 선회하는 데 사용할 수 있습니다

timestamp    id 
2014-07-04 07:11:00 A 
2014-07-04 07:12:32 C 
2014-07-04 07:15:03 C 
etc. 

답변

3

unstack. fillna은 원하는 출력에 표시된대로 누락 된 값을 0으로 바꿉니다.

In [313]: series.unstack(level='id').fillna(0) 
Out[313]: 
id     A B C 
datetime_period    
2014-07-04 07:00:00 1 0 2 
2014-07-04 08:00:00 2 0 0 
2014-07-08 11:00:00 5 1 0