2016-07-05 6 views
2

Ich möchte, dass beim Anzeigen meines DataFrame alle Werte des multiIndex angezeigt werden, auch wenn nachfolgende Zeilen denselben Index für eine der Ebenen haben. Hier ein Beispiel:Alle Indexwerte anzeigen, wenn multiIndexing in Pandas verwendet wird

arrays = [['20', '50', '20', '20'],['N/A', 'N/A', '10', '30']] 
tuples = list(zip(*arrays)) 
index = pd.MultiIndex.from_tuples(tuples, names=['Jim', 'Betty']) 
pd.DataFrame([np.random.rand(1)]*4,index=index) 

Die Ausgabe lautet:

       0 
Jim   Betty   
20   N/A   0.954973 
50   N/A   0.954973 
20   10   0.954973 
      30   0.954973 

Ich möchte eine 20 auch in der südwestlichen Ecke haben. Das heißt, würde ich mein Datenrahmen mag sein:

       0 
Jim   Betty   
20   N/A   0.954973 
50   N/A   0.954973 
20   10   0.954973 
20   30   0.954973 

Ist Pandas fähig, das zu tun?

Antwort

2

Sie müssen eingestellt display.multi_sparse-False:

#if need temporary use option 
with pd.option_context('display.multi_sparse', False): 
    print (df) 

        0 
Jim Betty   
20 N/A 0.201643 
50 N/A 0.201643 
20 10  0.201643 
20 30  0.201643 

Documentation:

display.multi_sparse
Wahre
„Sparsify“ Multiindex-Display (nicht wiederholt Elemente angezeigt werden in äußeren Ebenen innerhalb von Gruppen)