Heim > Artikel > Backend-Entwicklung > Wie behalte ich Zeilen mit Maximalwerten in Spalte B für doppelte Werte in Spalte A?
Zeilen mit maximalen Spalten-B-Werten für doppelte Spalten-A-Werte finden
Bei der Datenanalyse ist es oft notwendig, doppelte Datensätze bei gleichzeitiger Aufbewahrung zu entfernen einzigartige Daten. Ein häufiges Szenario betrifft einen Datensatz mit doppelten Werten in einer bestimmten Spalte (Spalte A), wobei das Ziel darin besteht, die Zeile mit dem höchsten Wert in einer anderen Spalte (Spalte B) zu behalten.
Um dies zu erreichen, ist das erste Die Lösung verwendet die Funktion drop_duplicates() mit dem Parameter keep="last". Dadurch werden doppelte Zeilen basierend auf Spalte A gelöscht, während die zuletzt gesehene Zeile beibehalten wird, unabhängig vom Wert in Spalte B.
Wenn das Ziel jedoch darin besteht, die Zeile mit dem Maximalwert in Spalte B zu behalten, gilt das oben Gesagte Lösung ist nicht geeignet. Stattdessen kann eine Kombination aus groupby() und apply() verwendet werden, ähnlich der zweiten bereitgestellten Lösung. Dieser Ansatz gruppiert Zeilen nach Spalte A, wendet eine Funktion auf jede Gruppe an und wählt die Zeile mit dem Maximalwert in Spalte B innerhalb jeder Gruppe aus.
Implementierung:
import pandas as pd # Create data frame with duplicate values in column A df = pd.DataFrame([[1, 10], [1, 20], [2, 30], [2, 40], [3, 10]], columns=['A', 'B']) # Keep row with maximum value in column B for each duplicate in column A max_b_rows = df.groupby('A', group_keys=False).apply(lambda x: x.loc[x.B.idxmax()]) # Display resulting data frame print(max_b_rows)
Ausgabe:
A B A 1 1 20 2 2 40 3 3 10
Das obige ist der detaillierte Inhalt vonWie behalte ich Zeilen mit Maximalwerten in Spalte B für doppelte Werte in Spalte A?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!