我想在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')?我的意思是,而不是使用封闭的间隔来使用开放。
答案 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]]