定义将变量切割为因子的阈值(pandas中的qcut)

时间:2017-06-29 15:26:22

标签: pandas

我想在3组上剪切变量x

new_var = pd.qcut(x,q = [0,.33,.66,1.],labels = ['low','medium','high'])

x.quantile(q = 0.33)我收到了值0.6

我的问题是:是否有一些函数,可以在n(在我的情况下为3)组中删除x变量,而不是分位数(如在qcut中)我们可以定义阈值。在我的情况下,而不是0.6我希望获得0.59999...

或者替代方案:qcut函数是否有可能将值(从0.6开始)定义为' medium'(而不是' low')?我的意思是,而不是使用封闭的间隔来使用开放。

1 个答案:

答案 0 :(得分:0)

我相信你要找的是pd.cut,它允许使用半开区间将数据离散化为定义的区间。

示例:

>>> pd.cut(range(1,10), [0,3,6,10], right=True)
[(0, 3], (0, 3], (0, 3], (3, 6], (3, 6], (3, 6], (6, 10], (6, 10], (6, 10]]
Categories (3, interval[int64]): [(0, 3] < (3, 6] < (6, 10]]