2016-09-21 3 views
0

Ich habe löschen Datenrahmenwie könnte ich Zeilen mit Wiederholung/doppelten Index von Datenrahmen

>>> df 
zeroa zerob zeroc zerod zeroe zero 
FSi          
1  10 100  a ok NaN ok 
1  11 110  temp NaN NaN 
2  12 120  c temp NaN NaN 
3  NaN NaN NaN NaN ok NaN 

ich nur eindeutige Indizes behalten wollen, als Index 1 zu wiederholen ich seine zweite Instanz soll fallen gelassen werden, wie könnte Ich mach das ? Ich möchte mein Ergebnis als

>>> df 
    zeroa zerob zeroc zerod zeroe zero 
FSi          
1  10 100  a ok NaN ok 
2  12 120  c temp NaN NaN 
3  NaN NaN NaN NaN ok NaN 
+2

Während diese Frage ein Duplikat ist, ist die akzeptierte Antwort nicht die beste Antwort IMO, ist so hier ein Link zur [besten Antwort] (http://stackoverflow.com/a/34297689/5276797). – IanS

Antwort

1

Ohne den Index Zurücksetzen:

df[~df.index.duplicated()] 
+1

schön, ich mag deine Lösung mehr als meine :) – grubjesic

+0

Ich versuchte zuerst die 'reset_index' Route, aber Google rettete mich;) – IanS

+0

danke es hat funktioniert !!! :) –

1

Ok so etwas wie dies sollte helfen:

df = df.reset_index().drop_duplicates(subset='FSi', keep='first').set_index('FSi') 

Erklärung: Zuerst reset_index wir die FSi Ursache drop_duplicates auf Spalten arbeitet eine Spalte erstellt und nicht auf den Index. Wir halten den ersten und set_index wieder zurück zu FSi

Verwandte Themen