我怎样才能加快这个大熊猫的应用操作?

时间:2017-02-01 13:36:46

标签: python performance pandas

我编写了一个函数,它接受一个pandas系列(浮点数或整数),对其进行排序,然后计算每个成员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行的系列上运行。有什么办法可以加快速度吗?

1 个答案:

答案 0 :(得分: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