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.

  • Für jede Dataframe-Zeile erhalten Sie sowohl die Top-n-Werte als auch die Spaltenindizes, in denen sie auftreten
  • Wie man Zeilen basierend auf der sequenzbezogenen Einschränkung filtert?
  • Wie kann man feststellen, ob eine Pandas-Spalte einen bestimmten Wert enthält
  • Lineares Regressionsmodell mit AR-Fehler python
  • Pandas: Wenn Wert in einem Dataframe String aus einem anderen Dataframe enthält, Sperren anfügen
  • Zeichnen Sie verschiedene DataFrames in der gleichen Abbildung
  • Numpy hstack - "ValueError: alle Eingabe-Arrays müssen die gleiche Anzahl von Dimensionen haben" - aber sie tun
  • Pandas, wie man ein Dataframe in ein Wörterbuch von Tupel Tupel mit 1 col als Schlüssel und der Rest als ein Tupel der Form (col2: col3)
  • Formatierung inkonsistente Datumsdaten mit Pandas
  • Ästhetik von Barplot-Bars und Fehlerbalken im Meeresboden
  • Entfernen eines Zeichens aus dem gesamten Datenrahmen
  • Python ist die beste Programmiersprache der Welt.