首页 > 解决方案 > 检查一个组的所有成员是否具有相同的值,然后将它们全部放在一个数据框中

问题描述

我有一个大数据框,如下所示:

Letter      Action
a       Do
b       Do
b       Do
b       Do
b       Do
c       Do
c       Don’t
c       Don’t
c       Don’t
c       Do
c       Don’t
c       Don’t
c       Don’t
c       Do

我需要为所有行获取所有操作为 Do 的字母。

我想要的输出如下所示:

Letter      Action
a       Do
b       Do
b       Do
b       Do
b       Do

我试过了

df1 = df[(df.groupby('Letter', as_index=False).Action.nunique().eq(1))]

但我无法得到我需要的东西。如果有人能提供帮助,我将不胜感激。

标签: pythonpandas

解决方案


尝试transform

df1 = df[(df.groupby('Letter').Action.transform('nunique').eq(1))]

为了改进

df1 = df[(df.Action.eq('Do').groupby(df['Letter']).transform('all')]

推荐阅读