Выбрать все группы, когда выполняется одно условие - PullRequest
0 голосов
/ 01 июня 2018
            A    B
0  2002-01-12   39
1  2002-01-12   17
2  2002-01-12   31
3  2002-01-15   12
4  2002-01-15   25
5  2002-01-15   25
6  2002-01-20   16
7  2002-01-20   40
8  2002-02-20   20

Я хочу выбрать A группы, в которых выполняется условие B>30 при любом значении B.

Вывод должен быть:

            A    B
0  2002-01-12   39
1  2002-01-12   17
2  2002-01-12   31
6  2002-01-20   16
7  2002-01-20   40
8  2002-02-20   20

Япопробовал:

df.groupby('A').B.ge(30)

Ответы [ 2 ]

0 голосов
/ 01 июня 2018
df[df.groupby('A').B.transform(lambda x: (x > 30).any())]
0 голосов
/ 01 июня 2018

Вы упомянули any, мы используем filter с any

df.groupby('A').filter(lambda x : x['B'].ge(30).any())
Out[169]: 
            A   B
0  2002-01-12  39
1  2002-01-12  17
2  2002-01-12  31
6  2002-01-20  16
7  2002-01-20  40
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...