Heim  >  Artikel  >  Backend-Entwicklung  >  Wie behalte ich Zeilen mit Maximalwerten in Spalte B für doppelte Werte in Spalte A?

Wie behalte ich Zeilen mit Maximalwerten in Spalte B für doppelte Werte in Spalte A?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-07 04:27:02605Durchsuche

How to Keep Rows with Maximum Values in Column B for Duplicate Values in Column 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!

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