指定范围内的Python bin数据

时间:2019-05-29 11:29:39

标签: python pandas numpy quantile

我有一个具有薪水信息的1维数组,如下所示:

|wage    |
|75000   |
|125000  |
|130000  |

,依此类推。我使用了qcut函数对数据进行装箱,但是我想使用四舍五入的范围,这样看起来更加美观。

当前我的代码如下:

quant = pd.qcut(df['wage'], [0.1, 0.2, 
0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]).value_counts()

然后产生

(42500.0, 50000.0]         3285
(27882.399, 32500.0]       3158
(32500.0, 37500.0]         3000
(69926.75, 82500.0]        2988
(58878.5, 69926.75]        2922
(82500.0, 110000.0]        2914
(110000.0, 145600000.0]    2866
(37500.0, 42500.0]         2677
(50000.0, 58878.5]         2554
Name: wage, dtype: int64

我想要以下范围:

(0, 30000]
(30000, 50000]
(50000, 70000]
(70000, 90000]
(90000, 110000]
(110000, 150000]
(150000, max wage]

有关如何执行此操作的任何建议?

1 个答案:

答案 0 :(得分:2)

pd.qcut适用于要指定分位数的情况。对于您想要的东西,我怀疑您需要pd.cut,例如:

edges = [0, 30000, 50000, 70000, 90000, 110000, 150000, df['wage'].max()]

pd.cut(df['wage'], edges)