我需要计算数据框中值的百分位数。计算百分位数的最接近的方法是使用pandas.DataFrame.rank(pct = True)(Calculate percentile for every value in a column of dataframe)。但是,该方法不会让我从第0百分位开始:
num = pd.DataFrame([3,5,6,8])
num.rank(pct=True)
0
0 0.25
1 0.50
2 0.75
3 1.00
有没有更好的方法来获得这样的东西,从第0百分位到第100百分位:
0
0 0.00
1 0.33
2 0.66
3 1.00
提前致谢。
答案 0 :(得分:0)
因此,您希望将分配给0百分位数的最低排名值和分配给100百分位数的最高排名值,以及根据其排名分配百分位数的所有其他值。 以下代码实现了:
ranks = num.rank()
(ranks - ranks.min())/(ranks.max() - ranks.min())