pd.cut非均匀bin间隔

时间:2020-09-23 12:51:37

标签: python pandas

我有一个这样的数据框:

    a   b
0   0   9
1   1   8
2   2   7
3   3   6
4   4   5
5   5   4
6   6   3
7   7   2
8   8   1
9   9   0
10  10  0
11  11  1
12  12  1

我想使用pd.cut()根据其值在不同子类别中分隔列a。 为此,必须获取bins。看来我们可以使用bins手动设置pd.IntervalIndex

但是我该如何设定间隔: [0], (0,2], (2,4], (4,6], (6,8], (8,10], (10,)

我不知道这是否是表示它的正确方法,但确实存在:一个只有零的整数-[0]和一个间隔大于10的区间-(100,) < / p>

1 个答案:

答案 0 :(得分:2)

没有一个值的间隔。为了获得相同的结果,我们可以执行Inf关闭并启动。

pd.cut(df.a,[-np.Inf, 0,2,4,6,8,10,np.Inf])
0     (-inf, 0.0]
1      (0.0, 2.0]
2      (0.0, 2.0]
3      (2.0, 4.0]
4      (2.0, 4.0]
5      (4.0, 6.0]
6      (4.0, 6.0]
7      (6.0, 8.0]
8      (6.0, 8.0]
9     (8.0, 10.0]
10    (8.0, 10.0]
11    (10.0, inf]
12    (10.0, inf]
Name: a, dtype: category
Categories (7, interval[float64]): [(-inf, 0.0] < (0.0, 2.0] < (2.0, 4.0] < (4.0, 6.0] < (6.0, 8.0] <
                                    (8.0, 10.0] < (10.0, inf]]