Heim >Backend-Entwicklung >Python-Tutorial >Wie entferne ich Duplikate nach Spalten und behalte Zeilen mit Maximalwerten bei?
Duplikate nach Spalten entfernen und Zeilen mit maximalem Wert beibehalten
Das Auffinden doppelter Werte in Datenrahmen kann eine Herausforderung sein. In einem Szenario, in dem es entscheidend ist, die Zeilen mit den höchsten entsprechenden Werten beizubehalten, ist es wichtig, effektive Techniken einzusetzen.
Um dieses Problem zu beheben, betrachten Sie den folgenden Datenrahmen mit Duplikaten in Spalte A:
A | B |
---|---|
1 | 10 |
1 | 20 |
2 | 30 |
2 | 40 |
3 | 10 |
Das Ziel besteht darin, Duplikate aus Spalte A zu entfernen, aber die Zeilen mit den Maximalwerten in Spalte B beizubehalten. Idealerweise sollte das Ergebnis so aussehen Dies:
A | B |
---|---|
1 | 20 |
2 | 40 |
3 | 10 |
Ein Ansatz besteht darin, den Datenrahmen zu sortieren, bevor Duplikate entfernt werden:
df = df.sort_values(by='B', ascending=False) df.drop_duplicates(subset='A', keep='first')
Diese Methode funktioniert, garantiert jedoch nicht die Beibehaltung der Maximalwerte, da sie Zeilen in aufsteigender Reihenfolge sortiert . Um diese Einschränkung zu überwinden, können wir den folgenden Ansatz verwenden:
df.groupby('A', group_keys=False).apply(lambda x: x.loc[x.B.idxmax()])
Dieser Vorgang gruppiert den Datenrahmen nach Spalte A, findet den Index mit dem Maximalwert für Spalte B und wählt die entsprechende Zeile aus. Das Ergebnis ist ein aktualisierter Datenrahmen, bei dem Duplikate entfernt und die Maximalwerte beibehalten werden.
Das obige ist der detaillierte Inhalt vonWie entferne ich Duplikate nach Spalten und behalte Zeilen mit Maximalwerten bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!