How do I get the percentile for a row in a pandas dataframe?

后端 未结 3 2013
既然无缘
既然无缘 2020-12-30 08:48
Example DataFrame Values -  

0     78
1     38
2     42
3     48
4     31
5     89
6     94
7    102
8    122
9    122  

stats.percentileofscore(temp[\'INCOME\'].v         


        
3条回答
  •  一个人的身影
    2020-12-30 09:24

    This seems to work:

    A = np.sort(temp['INCOME'].values)
    np.interp(sample, A, np.linspace(0, 1, len(A)))
    

    For example:

    >>> temp.INCOME.quantile(np.interp([37.5, 38, 122, 121], A, np.linspace(0, 1, len(A))))
    0.103175     37.5
    0.111111     38.0
    1.000000    122.0
    0.883333    121.0
    Name: INCOME, dtype: float64
    

    Please note that this strategy only makes sense if you want to query a large enough number of values. Otherwise the sorting is too expensive.

提交回复
热议问题