2014-09-29 40 views
0

我已經堆疊重新創建一個colnames。 我轉動這個數據幀。在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 ..我沒有注意到這種方式。謝謝!! – 2014-09-29 12:05:34