Heim  >  Artikel  >  Backend-Entwicklung  >  Wie entferne ich Duplikate nach Spalten und behalte Zeilen mit Maximalwerten bei?

Wie entferne ich Duplikate nach Spalten und behalte Zeilen mit Maximalwerten bei?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-16 11:35:03153Durchsuche

How to Remove Duplicates by Columns and Retain Rows with Maximum Values?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn