2014-09-29 3 views
0

저는 스택으로 쌓아서 이름을 재구성했습니다. 이 데이터 프레임을 피벗합니다.pivot_table, pandas의 열을 다시 작성하십시오.

from pandas import DataFrame,Series 

d = {'Sex' : Series(["Male","Male","Female","Female","Female","Male"]), 
     'Rank' : Series(["A","B","C","A","B","C"]), 
     'Num' : Series([1,2,3,4,5,6]), 
     'States' : Series(["Ohio","Oregon","NC","Michigan","NY"]) 
} 
df = DataFrame(d) 
print df 
df_pvt = df.pivot_table("Num",cols=['States','Sex'],rows="Rank") 
print df_pvt 

이 데이터 프레임의 열은 ndarray입니다.

print df_pvt.columns.values 
type(df_pvt.columns.values) 

나는 이러한 결합 된 열을 리메이크 COLNAMES 싶어.

colnames = ['Michigan_Female','NC_Female','NY_Female','Ohio_Male','Oregon_Male'] 

는 나는 이러한 열 을 결합하는 FUNC을해야한다고 생각하지만, 당신이 할 수있는 쉬운 방법을 알고 있다면, 나에게 어떤 조언을 알려주세요.

읽어 주셔서 감사합니다.

답변

0

가장 쉬운 방법은 회전하기 전에 해당 열을 결합 할 수 있습니다 :

In [17]: df['kind'] = df.States + '_' + df.Sex 

In [18]: df.pivot_table('Num', cols=['kind'], rows='Rank') 
Out[18]: 
kind Michigan_Female NC_Female NY_Female Ohio_Male Oregon_Male 
Rank                
A     4  NaN  NaN   1   NaN 
B     NaN  NaN   5  NaN   2 
C     NaN   3  NaN  NaN   NaN 
+0

신난다 !! 하나 더 colmuns를 추가하십시오. 나는이 방법을주의하지 않았다. 감사!! –

관련 문제