Ich benutze Pandas, Jupyter Notebooks und Python. Ich habe einen Datensatz mit 4 Spalten und 10000 Datensätzen. Derzeit, wenn ich den folgenden Code verwende, um Duplikate aufzunehmen, nimmt der Code irgendwie fehlerhafte Datensätze auf. Zu Ihrer Information: der Datentyp der Spalten sind wie folgt:Pandas Dataframe doppelte Datensätze Aufnahme falsche Datensätze
Initial_Date = int64
Final_Date = int64
Origin = object
sub_location = object
Mein aktueller Code ist:
dup = df.duplicated(['Initial_Date','Final_Date','Origin','sub_location'], keep='last')
Hier ist ein Beispiel des Datensatzes ist, die mit dem obigen Code aufgenommen wird:
00121980,00121980,Australia,Brighton:Queensland
00121980,00121980,Australia,Brisbane:Queensland
17021987,17021987,Bangladesh,Sylhet-Sunamganj
17021987,17021987,Brazil,Sao Paolo suburb
Wenn Sie sich die ersten beiden Datensätze ansehen: das Anfangs- und das Enddatum sowie Origin stimmen überein, aber das Sub_origin stimmt nicht überein, eines ist Brighton und das andere ist Brisbane.
Gleiches gilt für die letzten beiden Datensätze, die Daten stimmen überein, aber Origin ist nicht identisch.
Von diesem verstehe ich, dass df.duplicated keine richtigen Datensätze erfasst oder ich verwende es nicht richtig. Sind Datentypen mit df.duplicated wichtig?
Wenn ich nur df.duplicated
verwende, dann hat die Boolean-Reihe, die zurückgegeben wird, keine Duplikate. Kann mir bitte jemand erklären/zeigen, wie .duplicated verwendet wird?
Bitte beachten Sie, dass dies nicht der vollständige Datensatz ist, aber das Beispiel, das ich vorgestellt habe, ist genau das Problem, das ich im realen Datensatz habe. Ich habe die Kriterien eingeschränkt und bin auf diesen Fehler gestoßen.
Danke Jungs: D
@Timetraveller Diese Antwort ist genau richtig. In Ihrem Beispiel zeigt 'dup' nicht alle Datensätze, die aufgrund des Parameters 'keep = last' dupliziert wurden. Wenn "keep = False" gesetzt wäre, würden Sie sehen, dass die letzten zwei Datensätze jeweils Duplikate anderer Datensätze waren und nicht voneinander. – piRSquared
@MaxU Hallo, was passiert, wenn ich Duplikate fallen lassen will. Wenn ich keep = False wähle, werden alle Instanzen gelöscht. Im obigen Beispiel wird der Datensatz 0,1,2, der den Wert 1 enthält, gelöscht, richtig? Was passiert, wenn ich einen der drei Datensätze behalten möchte? Ändere ich den Wert entweder auf 'last' oder 'first'? – Timetraveller
@MaxU Danke Kumpel. – Timetraveller