Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calculate Arbitrary Percentile on Pandas GroupBy

Tags:

pandas

Currently there is a median method on the Pandas's GroupBy objects.

Is there is a way to calculate an arbitrary percentile (see: http://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.percentile.html) on the groupings?

Median would be the calcuation of percentile with q=50.

like image 439
Alex Rothberg Avatar asked Nov 10 '13 20:11

Alex Rothberg


People also ask

How do you calculate percentage in Groupby pandas?

You can caluclate pandas percentage with total by groupby() and DataFrame. transform() method. The transform() method allows you to execute a function for each value of the DataFrame. Here, the percentage directly summarized DataFrame, then the results will be calculated using all the data.


1 Answers

You want the quantile method:

In [47]: df Out[47]:             A         B    C 0   0.719391  0.091693  one 1   0.951499  0.837160  one 2   0.975212  0.224855  one 3   0.807620  0.031284  one 4   0.633190  0.342889  one 5   0.075102  0.899291  one 6   0.502843  0.773424  one 7   0.032285  0.242476  one 8   0.794938  0.607745  one 9   0.620387  0.574222  one 10  0.446639  0.549749  two 11  0.664324  0.134041  two 12  0.622217  0.505057  two 13  0.670338  0.990870  two 14  0.281431  0.016245  two 15  0.675756  0.185967  two 16  0.145147  0.045686  two 17  0.404413  0.191482  two 18  0.949130  0.943509  two 19  0.164642  0.157013  two  In [48]: df.groupby('C').quantile(.95) Out[48]:              A         B C                       one  0.964541  0.871332 two  0.826112  0.969558 
like image 162
TomAugspurger Avatar answered Oct 05 '22 16:10

TomAugspurger