首页 > 解决方案 > pandas 按类别分组并使用 pd.cut 分配一个 bin

问题描述

我有一个如下的数据框:

+-------+-------+
| Group | Price |
+-------+-------+
| A     |     2 |
| B     |     3 |
| A     |     1 |
| C     |     4 |
| B     |     2 |
+-------+-------+

我想创建一个列,它会给我在哪个范围内(如果我将每个组分为 4 个区间)我的价格值在每个组内。


+-------+-------+--------------------------+
| Group | Price |          Range           |
+-------+-------+--------------------------+
| A     |     2 |    [1-2]                 |
| B     |     3 |    [2-3]                 |
| A     |     1 |    [0-1]                 |
| C     |     4 |    [0-4]                 |
| B     |     2 |    [0-2]                 |
+-------+-------+--------------------------+

有人对使用熊猫pd.cutgroupby操作有任何想法吗?谢谢

标签: pythonpandasgroup-bypandas-groupby

解决方案


你可以传递pd.cutgroupby()

df['Range'] = df.groupby('Group')['Price'].transform(pd.cut, bins=4)

推荐阅读