python - 仅获取 Pandas groupby 中组的匹配行
问题描述
我有以下df:
d = {"Col1":['a','d','b','c','a','d','b','c'],
"Col2":['x','y','x','z','x','y','z','y'],
"Col3":['n','m','m','l','m','m','l','l'],
"Col4":[1,4,2,2,1,4,2,2]}
df = pd.DataFrame(d)
当我在三个字段上分组时,我得到了结果:
gb = df.groupby(['Col1', 'Col2', 'Col3'])['Col4'].agg(['sum', 'mean'])
如何仅提取组中的一行与分组列上另一组的至少另一行匹配的组和行。请看下图,我想得到突出显示的行
我想根据蓝色和黑色中相互匹配的行获得红色行
抱歉,如果我的陈述模棱两可。任何帮助,将不胜感激
解决方案
然后,您可以reset_index
使用duplicated
布尔索引过滤您的数据框:
gb = gb.reset_index()
gb[gb.duplicated(subset=['Col2','Col3'], keep=False)]
输出:
Col1 Col2 Col3 sum mean
0 a x m 1 1
2 b x m 2 2
3 b z l 2 2
5 c z l 2 2
推荐阅读
- android - Android 生成带密码的密钥
- c# - 写入 Excel 的 C# 控制台应用程序返回空单元格
- python-3.x - 使用不同的日期参数重复气流 DAG 以进行数据迁移
- html - 如何将 div 作为输入
- django - 以反应形式从密码重置中获取 UID 和令牌
- centos - 无法运行 yum 更新
- uikit - UIView[Controller]Representable:SwiftUI 子视图显示在调试器中,但运行时不显示
- c# - CSHTML页面控制器的MVC调用方法
- checkstyle - 如何避免在标头中违反 checkstyle 规则 JavadocParagraph?
- amazon-web-services - 从同一子网连接到另一个实例的权限被拒绝