【发布时间】:2017-08-26 00:32:34
【问题描述】:
我有两列代表相同数量的数据;一列来自我的训练数据,另一列来自我的验证数据。
我知道如何有效地计算训练数据的百分位排名:
pandas.DataFrame(training_data).rank(pct = True).values
我的问题是,我如何有效地获得验证数据列相对与训练数据列相似的百分位排名?也就是说,对于验证数据列中的每个值,我怎样才能找到它的百分位排名相对于训练数据列中的所有值?
我试过这样做:
def percentrank(input_data,comparison_data):
rescaled_data = np.zeros(input_data.size)
for idx,datum in enumerate(input_data):
rescaled_data[idx] =scipy.stats.percentileofscore(comparison_data,datum)
return rescaled_data/100
但我不确定这是否正确,除此之外它非常慢,因为它为 for 循环中的每个值进行了大量冗余计算。
任何帮助将不胜感激!
【问题讨论】:
标签: python pandas quantile percentile