python - 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.cut
和groupby
操作有任何想法吗?谢谢
解决方案
你可以传递pd.cut
给groupby()
:
df['Range'] = df.groupby('Group')['Price'].transform(pd.cut, bins=4)
推荐阅读
- c++ - Xcode .cpp 代码使用 lambda 表达式出错
- prolog - Prolog,给定 N 并找到所有不能被 3 和 5 整除的数字,这些数字必须小于 N
- c - 循环中的 fgets 重复二维数组中的数据
- string - 努力让 Arduino Uno 上的 ESP8266 与 AT 通信可靠地工作
- svg - 如何合并两个svg文件
- python - 如何转换熊猫数据框中所有列的数据类型
- c# - C# Linq EF Core 按组键的子字符串对“结果组”进行排序
- r - 如何在R中的for循环中为列表键分配值
- python - 根据行记录创建分类列
- javascript - ng-select : add an extra option