如何使用Pandas筛选同一colA对应不同colB值的记录
筛选DataFrame中同一colA对应多值colB的分组行
需求
从包含colA、colB列的DataFrame中,获取所有属于「同一colA值对应多个不同colB值」分组的行。
输入示例
colA colB a 1 <-- b 2 a 1 <-- a 0 <-- different
输出示例
colA colB a 1 <-- a 1 <-- a 0 <-- different
解决方案
方案1
使用groupby.filter()方法筛选符合条件的分组:
out = df.groupby('colA').filter(lambda x: x['colB'].nunique() > 1)
方案2(@mozway提供)
使用transform()结合布尔索引实现,执行效率更高:
out = df[df.groupby('colA')['colB'].transform('nunique').gt(1)]
内容的提问来源于stack exchange,提问作者rgxp
相关产品推荐
相关产品推荐

