2017-06-29 17 views
0

定義閾值我要剪切的變量x上三組:用於切割可變進因子(在熊貓qcut)

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開始)應該被定義爲「中等」(而不是「低」)?我的意思是,而不是使用封閉的時間間隔來使用open。

回答

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]]