如何在python中使用pd.qut创建新的Bin/Bucket变量?

对于经验丰富的用户来说,这似乎很基本,但是我对此并不十分清楚,并且在堆栈溢出/google上进行搜索非常不直观。一些彻底的搜索产生了这个(Assignment of qcut as new column),但是它没有完全回答我的问题,因为它没有采取最后一步并将所有内容放入垃圾箱(即1,2,...)。

最佳答案

在Pandas 0.15.0或更高版本中,如果输入是Series(如果是您的情况)或pd.qcut,则 labels=False 将返回Series,而不是Categorical。如果设置labels=False,则qcut将返回一个以bin的整数指示符作为值的Series。

因此,为了使您的代码适应 future 需求,您可以使用

data3['bins_spd'] = pd.qcut(data3['spd_pct'], 5, labels=False)

或者,将NumPy数组传递给pd.qcut,以便获得“分类”作为返回值。
注意分类属性 labels is deprecated。使用codes代替:
data3['bins_spd'] = pd.qcut(data3['spd_pct'].values, 5).codes

关于Python Pandas使用pd.qcut创建新的Bin/Bucket变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28442991/

10-12 21:20