我编写了一个函数,它接受一个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行的系列上运行。有什么办法可以加快速度吗?
答案 0 :(得分:0)
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