我有一个一维数组,其中包含薪资信息,如下所示:
|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]
关于如何做到这一点有什么建议吗?
最佳答案
pd.qcut
适用于您想要指定分位数的情况。对于你想要的,我怀疑你需要 pd.cut
,例如:
edges = [0, 30000, 50000, 70000, 90000, 110000, 150000, df['wage'].max()]
pd.cut(df['wage'], edges)
关于指定范围内的Python bin数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56359577/