如何使用非唯一的箱边切割Pandas系列?

时间:2017-03-07 08:48:27

标签: python pandas

我有一系列大约200000个值,其中50%是NaN和0.理想情况下,我想使用qcut()来区分我的值,但这会给我一个错误,因为非唯一的bin边缘。如何在分数2中的分数1和0值中分类所有NaN值,然后在分数标签3到10中的其余非零值(假设我想要10个fractiles)

1 个答案:

答案 0 :(得分:0)

你可以为qcut提供一个指定分布的数组(docs中的例子是[0,.25,。5,。75,1。],用于分位数。因此,首先用 - 填充NaNs - 1确保它们出现。然后用这个分布指定一个桶数组:

[0,
count(-1)/df.shape[0],
(count(-1)+count(0))/df.shape[0],
(count(-1)+count(0))/df.shape[0] + 1.*(df.shape[0] - count(-1)+count(0))/7,
(count(-1)+count(0))/df.shape[0] + 2.*(df.shape[0] - count(-1)+count(0))/7,
#...
1]