Groupby Spalte, während andere Spalten angezeigt werden

Ich habe einen Datensatz wie folgt:

name | $ | letter adam, 34, c beny, 45, e adam, 55, a beny, 87, t 

Ich würde gerne die max $ gespendet von jedem Namen, mit dem jeweiligen Brief zu extrahieren. Also für Adam, würde ich bekommen: adam, 55, a.

Wenn ich benutze:

 df.groupby('name')[['$']].max() 

Das gibt mir nicht den entsprechenden Brief.

Wenn ich benutze:

 df.groupby('name')[['$','letter']].max() 

Ich bekomme das max $ und den höchsten Buchstaben im Alphabet.

One Solution collect form web for “Groupby Spalte, während andere Spalten angezeigt werden”

Verwenden Sie DataFrameGroupBy.idxmax für Indizes von max-Werten und wählen Sie dann nach loc :

 print (df.groupby('name')['$'].idxmax()) name adam 2 beny 3 Name: $, dtype: int64 df = df.loc[df.groupby('name')['$'].idxmax()] print (df) name $ letter 2 adam 55 a 3 beny 87 t 

Eine andere Lösung mit sort_values zuerst und dann verwenden GroupBy.last :

 df = df.sort_values('$').groupby('name', as_index=False).last() print (df) name $ letter 0 adam 55 a 1 beny 87 t 

Unterschied in Lösungen ist idxmax lassen Original-Indizes, last zurücksetzen.

  • Python-Pandas-Funktion, wenn ein Spaltenwert nicht NULL ist
  • Wie man Histogramm in Pandas mit x-Achsen-Etiketten aus Spalte generiert?
  • Pandas: Exponentielle Glättungsfunktion für Spalte
  • Python Pandas Kopieren Spalte von df zu anderen, wenn die Werte gleich
  • Datei nach der Verwendung von to_csv ()
  • Wie kann ich Python-Bibliotheken mit .pyx- und .c-Dateien importieren, ohne auf dem Computer zu installieren?
  • ValueError: Import von Daten über Chunks in pandas.csv_reader ()
  • Pandas: Wie bekomme ich die eindeutigen Werte einer Spalte, die eine Liste von Werten enthält?
  • Mit regex übereinstimmenden Gruppen in pandas dataframe ersetzen Funktion
  • Konvertieren von Pandas-Spalten zu datetime64 einschließlich fehlender Werte
  • Gruppe Multi-Index Pandas Dataframe
  • Python ist die beste Programmiersprache der Welt.