仅获取Pandas groupby中组的匹配行

2024-05-12 19:06:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下测向:

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)

当我按三个字段分组时,我得到的结果是:

^{pr2}$

enter image description here

如何仅提取组中的一行与分组列上另一组的至少一行相匹配的组和行。请看下面的图片,我想得到突出显示的行

enter image description here

我想在蓝色和黑色两种颜色相互匹配的基础上得到红色的行

如果我的陈述模棱两可的话,我很抱歉。任何帮助都将不胜感激


Tags: dataframedf颜色图片基础col2col3col1
2条回答

创建一个包含所有允许的组合的表,然后将其与此dataframe进行内部联接。在

您可以reset_index,然后使用duplicated和布尔索引过滤数据帧:

gb = gb.reset_index()
gb[gb.duplicated(subset=['Col2','Col3'], keep=False)]

输出:

^{pr2}$

相关问题 更多 >