我有以下数据框:
calc_value
0 NaN
1 0.000000
2 0.100000
3 0.500000
4 2.333333
5 inf
现在我想计算一些分位数:
print df.quantile(.1)['calc_value']
print df.quantile(.25)['calc_value']
print df.quantile(.5)['calc_value']
print df.quantile(.75)['calc_value']
print df.quantile(.9)['calc_value']
但是这会回来:
0.04
0.1
0.5
nan
inf
我不明白为什么第75个分位数以这种方式工作。难道不是无限吗?
答案 0 :(得分:0)
我认为这可能是numpy中的一个错误:
np.percentile([0,1,np.inf], 50)
Out[63]: nan
,而
np.median([0, 1, np.inf])
Out[65]: 1.0
不是简单地在索引1处获取值,而是使用权重1和0获取索引1和2处的值。因此,它会生成0 * inf
。
在您的情况下,结果应为2.33(例如,尝试使用df.iloc[5,0] = 1e10
)。