2017-02-01 50 views
1

我已經寫了一個函數,它需要一個熊貓系列(浮點數或整數),對它進行排序,然後計算每個成員x系列中大於x的值的比例。我正在使用tqdm來計時。我如何加快這個熊貓應用操作?

import pandas as pd 
from tqdm import tqdm, tqdm_pandas 
tqdm.pandas() 

def my_func(data): 
    data.sort_values(inplace=True) 
    n = len(data) 
    # return data.apply(lambda x: len(data[data > x])/n) # if not using tdqm 
    return data.progress_apply(lambda x: len(data[data > x])/n) 

這需要幾分鐘的時間才能在~300000行的系列上運行。我能做些什麼來加速它?

回答

0

使用DataFrame.rank

data = pd.DataFrame(np.arange(5)) 
data.rank(pct=True) 

回報

0 0.2 
1 0.4 
2 0.6 
3 0.8 
4 1.0