Perzentil Rang in Pandas in Gruppen

8

Ich kann nicht recht herausfinden, wie man eine Funktion schreibt, um ein gruppiertes Perzentil zu erreichen. Ich habe alle Teams aus den Jahren 1985-2012 in einem Datenrahmen; die ersten 10 werden unten angezeigt: es ist derzeit nach Jahr sortiert. Ich habe versucht, ein Perzentil für LgRnk gruppiert nach Year zu geben. So wäre zum Beispiel 23 LgRank (schlechteste Mannschaft) für 1985 ein 100 Perzentil und ein 1 LgRank (beste Mannschaft) für 1985 wäre ein 1 Perzentil. 30 LgRank (schlechtestes Team) für 2010 wäre 100 Perzentil usw. Es muss nach Jahr b / c der unterschiedlichen Anzahl von LgRnk s gruppiert werden.

%Vor%

Ich habe versucht, eine Funktion zu erstellen mit: scipy.stats.percentileofscore und ich kann es nicht ganz verstehen.

    
itjcms18 12.03.2014, 00:46
quelle

1 Antwort

10

Sie können eine Anwendung in der Spalte LgRnk ausführen:

%Vor%

Die Serie groupby rank (gilt nur für Series.rank ) nimm ein pct-Argument, um genau das zu tun:

%Vor%

und direkt in der Spalte WLPer (obwohl dies aufgrund von Zeichnungen etwas anders ist):

%Vor%

Hinweis: Ich habe die Zahlen in der ersten Zeile geändert. Sie erhalten also unterschiedliche Bewertungen für Ihren vollständigen Rahmen.

    
Andy Hayden 12.03.2014, 02:43
quelle