python - 数据框中的百分位排名。 Pandas

标签 python pandas percentile

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

 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

关于python - 数据框中的百分位排名。 Pandas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32894392/

相关文章:

java - 从长数组计算百分位数?

python - 如何在odoo中显示没有公司的联系人?

python - 选择具有非零值且在 pandas 中共享索引且无循环的列

python - 更新/合并和更新列 pandas 的子集

python - 如何从 Pandas 数据框创建 postgres 表?

python - 有没有办法组织一个两列的 csv 数据文件,以便在经过一定时间间隔(即 365 天)后它会换行?

python - python list(set(a)) 每次都会改变它的顺序吗?

python - Hadoop 2.7.3 Streaming Jar 无效

excel - 用 stata 循环填充输出向量