finden Sie doppelte Zeilen in ein pandas dataframe
Ich versuche zu finden, Duplikate von Zeilen in ein pandas dataframe.
df=pd.DataFrame(data=[[1,2],[3,4],[1,2],[1,4],[1,2]],columns=['col1','col2'])
df
Out[15]:
col1 col2
0 1 2
1 3 4
2 1 2
3 1 4
4 1 2
duplicate_bool = df.duplicated(subset=['col1','col2'], keep='first')
duplicate = df.loc[duplicate_bool == True]
duplicate
Out[16]:
col1 col2
2 1 2
4 1 2
Gibt es eine Möglichkeit zum hinzufügen einer Spalte bezogen auf den index des ersten zu duplizieren (der hielt)
duplicate
Out[16]:
col1 col2 index_original
2 1 2 0
4 1 2 0
Hinweis: df könnte sehr sehr groß in meinem Fall....
- Was ist, wenn es 3 Duplikate?
- guter Punkt! Ich bearbeitet die Frage
- Könntest du ein Ausgang für verschiedene Duplikate als nur eine.
- Wenn die Antwort geholfen hat, würde schätzen, Ihre Stimme und Akzeptanz. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
groupby
erstellen Sie eine neue Spalte von Indizes, und rufen Sie dannduplicated
:Details
Ich
groupby
ersten zwei Spalten und dann rufentransform
+idxmin
zu bekommen, der erste index der jeweiligen Gruppe.duplicated
gibt mir ein boolean Maske der Werte, die ich behalten möchten:Der rest ist nur Boolesche Indexierung.
dask
können Sie die Arbeit mit großen dataframes so.numpy
tag und sehen, ob divakar hat ein numpy-Lösung für Sie... (er könnte).