来自 Pandas 的 quantile() 函数在 Python 中是如何工作的?



我在熊猫中遇到了一个名为quantile()的函数。有人可以帮我解释一下这个函数是如何工作的以及它的作用吗?一个例子将不胜感激。 我正在编写一个示例代码来帮助您更好地理解此功能

到目前为止,我拥有的代码:

def get_quantile_based_buckets(feature_values, num_buckets):
quantiles = feature_values.quantile([(i+1.)/(num_buckets+1.) for i in list(range(num_buckets))])
print(quantiles)
return [quantiles[q] for q in quantiles.keys()]

这里feature_values是一个pandas DataFrame(). 下面是一个解释此函数的示例:

>>> df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]),
columns=['a', 'b'])
>>> df.quantile(.1)
a    1.3
b    3.7
dtype: float64
>>> df.quantile([.1, .5])
a     b
0.1  1.3   3.7
0.5  2.5  55.0

如果有人能解释上面的例子,那就太好了。 欲了解更多信息和问题清晰度,请在评论部分注明。

考虑一个简单的例子,其中给定的值集是{1,8,9,4,2}

步骤1:首先按升序对给定的值进行排序,即{1,2,4,8,9}

步骤2:设N为集合中值的总数,Q为分位数。 计算温度 = (n-1(*q。 这里假设 q=0.3(30%( 和 n=5,所以温度 = (5-1(*0.3 = 1.2。

步骤3:您需要检查索引地板(温度(和CEIL(温度( 在排序集中。请注意,元素的索引从 0 开始。

步骤4:所以这里考虑索引为 1 和 2 的值,即 2 和 4 现在在熊猫提供的分位数函数中,有线性、低、高等各种插值。 对于线性,您可以通过执行 i+(j-i(*q.其中 i 是带索引 floor(temp( 的 no,j 是带索引 ceil(temp( 的 no。 所以这里 i=2,j=4。 所以分位数 = 2+(4-2(*0.3 = 2.6

最新更新