2016-04-21 28 views
-1

Ich möchte doppelte Zeilen in einer bestimmten Spalte zusammenführen und die Daten neu anordnen. Zum Beispiel habe ich folgenden Datenrahmen:Dataframe PANDAS

FROM CONT ID1 ID2 ID3 ID4 ID5 ID6 ID7 
63309 89  101.3 NA  NA  NA  NA  NA  NA 
63309 89  NA  102.3 NA  NA  NA  NA  NA 
63309 89  NA  NA  NA  104 NA  NA  NA 
63309 90  NA  NA  103 105.0 NA  NA  NA 
63309 89  NA  NA  NA  NA  NA  107.1 NA 
63310 92  NA  105.1 105.3 789.1 104 NA  NA 
63310 92  109 NA  NA  NA  NA  NA  NA 
63311 94  104 109 890 NA  NA  NA  107 
63309 89  NA  NA  NA  NA  109 NA  111 

Ich mag mein Ergebnis in folgendem Format:

FROM CONT ID1 ID2 ID3 ID4 ID5 ID6 ID7 
63309 89  101.3 NA  NA  NA  NA  NA  NA 
      89  NA  102.3 NA  NA  NA  NA  NA 
      89  NA  NA  NA  104 NA  NA  NA 
      90  NA  NA  103 105.0 NA  NA  NA 
      89  NA  NA  NA  NA  NA  107.1 NA 
      89  NA  NA  NA  NA  109 NA  111 

63310 92  NA  105.1 105.3 789.1 104 NA  NA 
      92  109 NA  NA  NA  NA  NA  NA 

63311 94  104 109 890 NA  NA  NA  107 

Ich weiß, ich df.sort verwenden kann() in aufsteigender Reihenfolge zu ordnen. Was ich besonders suche, ist die Formatierung der "FROM" -Spalte und das Hinzufügen eines leeren Platzes, sobald ein Übergang von einer eindeutigen "FROM" -Zeile zur nächsten eindeutigen "FROM" -Zeile erfolgt.

+0

Bitte tragen Sie den Titel der Frage mit mehr Informationen als im Moment. – FooBar

Antwort

2
>>> df.set_index(['FROM', 'CONT']).sort_index() 

       ID1 ID2 ID3 ID4 ID5 ID6 ID7 
FROM CONT            
63309 89 101.3 NaN NaN NaN NaN NaN NaN 
     89  NaN 102.3 NaN NaN NaN NaN NaN 
     89  NaN NaN NaN 104.0 NaN NaN NaN 
     89  NaN NaN NaN NaN NaN 107.1 NaN 
     89  NaN NaN NaN NaN 109 NaN 111 
     90  NaN NaN 103.0 105.0 NaN NaN NaN 
63310 92  NaN 105.1 105.3 789.1 104 NaN NaN 
     92 109.0 NaN NaN NaN NaN NaN NaN 
63311 94 104.0 109.0 890.0 NaN NaN NaN 107 

Sie möchten keine Spacer-Zeilen in Ihrem Dataframe. Das ist ein Formatierungsproblem.