2017-05-09 26 views

回答

3

IIUC你能做到這樣:

In [195]: df.set_index('A_type', append=True).unstack() \ 
      .swaplevel(axis=1).sort_index(axis=1) 
Out[195]: 
A_type a   b 
     A_1 A_2 A_1 A_2 
1  1.0  x 2.0 y 
2  3.0  z 4.0 w 
3  NaN None 5.0 u 
+3

這種方法具有優於'.STACK一個優點()拆散([1,2])'approach--它不」。不要強迫所有的dtype反對。 – DSM

+0

@DSM,謝謝!我甚至沒有想過它...... :-) – MaxU

+1

@DSM酷,這是很好的知道。速度可能不是這個操作的問題,但它確實出現了'stack()。unstack([1,2])'幾乎快了兩倍。 –

2

是。使用​​,stackunstack

df.set_index('A_type', append=True).stack().unstack([1,2]) 

輸出:

A_type  a   b  
     A_1 A_2 A_1 A_2 
1   1  x 2 y 
2   3  z 4 w 
3  None None 5 u 
相關問題