gpt4 book ai didi

python - Pandas 根据另一个列表的 qcut 对列表进行分箱

转载 作者:太空狗 更新时间:2023-10-30 00:07:20 28 4
gpt4 key购买 nike

假设我有一个列表:

a = [3, 5, 1, 1, 3, 2, 4, 1, 6, 4, 8]

和一个子列表:

b = [5, 2, 6, 8]

我想通过 pd.qcut(a,2) 获取 bin 并计算列表 b 的每个 bin 中的值的数量。也就是

In[84]: pd.qcut(a,2)
Out[84]:
Categorical:
[[1, 3], (3, 8], [1, 3], [1, 3], [1, 3], [1, 3], (3, 8], [1, 3], (3, 8], (3, 8], (3, 8]]
Levels (2): Index(['[1, 3]', '(3, 8]'], dtype=object)

现在我知道 bin 是:[1,3] 和 (3,8],我想知道列表“b”的每个 bin 中有多少个值。当数字bin 的数量很少,但是当 bin 的数量很大时最好的方法是什么?

最佳答案

您可以使用 retbins 参数从 qcut 中取回 bins:

>>> q, bins = pd.qcut(a, 2, retbins=True)

然后使用 pd.cut 获取关于 bins 的 b 索引:

>>> b = np.array(b)
>>> hist = pd.cut(b, bins, right=True).labels
>>> hist[b==bins[0]] = 0
>>> hist
array([1, 0, 1, 1])

请注意,您必须单独处理极端情况 bins[0],因为它不包含在最左边的 bin 中。

关于python - Pandas 根据另一个列表的 qcut 对列表进行分箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20893311/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com