2017-05-27 5 views
2

'x'データフレームの 'a'列のすべての値に対してパーセンタイルを計算しようとしています。 は、以下のコードを書くための良い方法はあります:データフレームの列内のすべての値のパーセンタイルを計算します。

x["pcta"] = [stats.percentileofscore(x["a"].values, i) 
            for i in x["a"].values] 

私はより良いパフォーマンスを見たいのですが。あなたが望むように

答えて

5

に思えるDataFrame.rank()

パフォーマンス:

import scipy.stats as scs 

%timeit [scs.percentileofscore(x["a"].values, i) for i in x["a"].values] 
1000 loops, best of 3: 877 µs per loop 

%timeit x.rank(pct=True) 
10000 loops, best of 3: 107 µs per loop 
関連する問題