Как определить уникальные идентификаторы, которые имеют только 1 истинное условие? - PullRequest
0 голосов
/ 25 февраля 2019

Простой вопрос: как определить уникальные идентификаторы, которые имеют только 1 истинное условие?

Index ID value condition
0     1   1     False
1     1   3     True
2     1   2     False
3     1   1     False
4     2   3     True
5     2   4     True
6     2   5     True

В приведенном выше случае идентификатор 1 (1 истинный) будет определен только тогда, когда идентификатор 2 (3 истинных) будетнет.

Как мне отредактировать код ниже?Мне нужно сохранить исходный индекс и идентификатор в сегментированном фрейме данных.

df[df['condition']==True]['ID'].unique()

Ожидаемый результат:

Index ID value condition
1     1   3     True

Всего наилучшего,

Спасибо за ваше время.

1 Ответ

0 голосов
/ 25 февраля 2019

Использование filter

df.groupby('ID').filter(lambda x : sum(x['condition'])==1)
Out[685]: 
   Index  ID  value  condition
0      0   1      1      False
1      1   1      3       True
2      2   1      2      False
3      3   1      1      False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...