python - 具有多个分组的熊猫 groupby
问题描述
我正在尝试使用 OR 条件对 2 列进行分组以创建一个组分类计数,如果在 groupid1 或 groupid2 中重复一个数字,它将创建一个第三个唯一的分组编号。
输入df
ID GROUPID1 GROUPID2
F632 173 1315
F632 173 1315
F966 173 1519
F966 134 1519
F173 704 1437
F455 704 1201
F456 702 1202
F457 800 1500
F966 173 1519
F966 134 1519
期望的结果 - 其中 173/134 或 1315/1519 创建 groupid3 '1';704 = 2,并且 702 和 800 是唯一的。
ID GROUP1 GROUP2 GROUP3
F632 173 1315 1
F632 173 1315 1
F966 173 1519 1
F966 134 1519 1
F173 704 1437 2
F455 704 1201 2
F456 702 1202 3
F457 800 1500 4
F966 173 1519 1
F966 134 1519 1
解决方案
让我们尝试duplicated
或
s=(~(df.GROUPID1.duplicated()|df.GROUPID2.duplicated())).cumsum()
0 1
1 1
2 1
3 1
4 2
5 2
6 3
7 4
dtype: int64
df['GROUP3']=s
推荐阅读
- php - Codeigniter:在视图中查看mysql数据
- mysql - 嵌套对象插入需要时间——Spring Data JPA、Hibernate 和 MySQL
- objective-c - 获取触控板上手指的位置 - 从后台进程
- php - php mysqli错误查询
- android - 清单合并失败(删除几个文件后)
- python - 如何在 Jupyter Notebook 中将 numpy 2d 数组显示为灰度图像?
- shell - Shell Script:curl畸形的body
- vba - Excel宏根据另一个工作表中的名册删除工作表中的行
- sql - 在 SQL Query 的 CONCAT 函数中使用 IF 条件
- java - 如何在 RecyclerView 中使用来自 JSON 的数组列表 putExtra