2017-03-28 7 views
0

Wie kann ich die genauen Duplikate einer Zeile löschen. Also, wenn ich einen Datenrahmen, der wie so aussieht:Df.drop/delete doppelte Zeilen

A B C 
1 2 3 
3 2 2 
1 2 3 

jetzt mein Datenrahmen ist viel größer als das, aber ist sie eine Möglichkeit, dass wir Python Blick auf jeder Zeile, und wenn die Werte in den Reihen haben können Sind genau dieselben wie eine andere Zeile, löschen oder löschen Sie diese Zeile. Ich möchte den gesamten Datenrahmen berücksichtigen, aber ich möchte nicht die Spalte angeben, für die ich eindeutige Werte erhalten möchte.

Antwort

2

Sie können einen deduplizierten Datenrahmen mit der inversen .duplicated erhalten:

df[~df.duplicated(['A','B','C'])] 

Returns:

>>> df[~df.duplicated(['A','B','C'])] 
    A B C 
0 1 2 3 
1 3 2 2 
3

Sie DataFrame.drop_duplicates() Methode verwenden:

In [23]: df 
Out[23]: 
    A B C 
0 1 2 3 
1 3 2 2 
2 1 2 3 

In [24]: df.drop_duplicates() 
Out[24]: 
    A B C 
0 1 2 3 
1 3 2 2 
+0

Dies ist einfacher Weg, es jetzt zu tun, merke ich, danke @MaxU! – bernie

+1

@bernie, Pandas' API ist sehr reich, so in der Regel können wir die gleiche Sache in ganz ein paar verschiedene Möglichkeiten ;-) – MaxU

+0

ich versucht habe zu erreichen, dass es nicht funktioniert, es ist immer noch Duplikate aus irgendeinem Grund – Cannon