繁体   English   中英

数据框中的百分位排名。 熊猫

[英]Percentile ranking in a dataframe. Pandas

我有一个包含数千行和数百列的大型数据框。 每行是一个日期,在每一列中我都有该日期的数据。 我将举一个较小的例子:

 DATE    A      B     C
 2012    73,5   27,2  19
 2013    19,5   22,2  33
 2014    33     40    19,56

我想获得给定日期所有列的百分位排名。 所以每一列都有百分位值而不是它的数字,其中 95 个百分位表示该值位于前 5%。 例如,2012 年的 A 将具有最高的百分位评级,但它只会在 2014 年的中间某个地方我认为必须有一个简单的函数,如pandas.percentilepandas.rank

您可以除以每年的最大值:

In [11]: df1 = df.set_index("DATE")

In [12]: df1
Out[12]:
         A     B      C
DATE
2012  73.5  27.2  19.00
2013  19.5  22.2  33.00
2014  33.0  40.0  19.56

In [13]: df1.max(1)
Out[13]:
DATE
2012    73.5
2013    33.0
2014    40.0
dtype: float64

In [14]: df1.div(df1.max(1), axis=0)
Out[14]:
             A         B         C
DATE
2012  1.000000  0.370068  0.258503
2013  0.590909  0.672727  1.000000
2014  0.825000  1.000000  0.489000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM