Проверьте, имеют ли все члены группы одинаковое значение, а затем получите их всех в одном кадре данных.

avatar
Mahdi Abadinia
8 августа 2021 в 23:35
55
1
3

У меня есть большой фрейм данных, как показано ниже:

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

Мне нужно получить все буквы с действием "Выполнить" для всех строк.

Мой желаемый вывод будет выглядеть так:

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

Я пытался

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

Но я не могу получить то, что мне нужно. Буду признателен, если кто-нибудь сможет помочь.

Источник

Ответы (1)

avatar
BENY
8 августа 2021 в 23:40
5

Попробуйте с transform

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

Для улучшения

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