【问题标题】:pd.cut non-uniform bin intervalspd.cut 非均匀 bin 间隔
【发布时间】:2020-09-23 12:51:37
【问题描述】:

我有一个这样的数据框:

    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。看来我们可以使用pd.IntervalIndex手动设置bins

但是我怎样才能使间隔像: [0], (0,2], (2,4], (4,6], (6,8], (8,10], (10,)?

我不知道这是否是表示它的正确方法,但它就是:一个只有零的区间 - [0] 和一个每个值都大于 10 的区间 - (100,)

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    没有一个值的区间。为了得到同样的结果,我们可以使用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]]
    

    【讨论】:

      猜你喜欢
      • 2016-12-26
      • 1970-01-01
      • 2021-05-10
      • 2014-08-22
      • 2022-08-03
      • 1970-01-01
      • 2014-07-28
      • 2012-01-14
      • 1970-01-01
      相关资源
      最近更新 更多