фильтрация сгруппированного кадра данных панд по всем одинаковым записям - PullRequest
0 голосов
/ 27 апреля 2018

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

Воспроизводимые данные:

df = pd.DataFrame({'group':['A', 'A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                     'value3':[24, 45, 34, 55, 44, 33, 1, 2, 3, 98, 98, 98]})

Я пробовал что-то вроде ...

df.groupby('group').filter(lambda x: x.value3 == x.value3.mean())

ожидаемый результат ...

   group  value3
0      C      98
1      C      98
2      C      98

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Вы можете использовать nunique как другой метод:

df.groupby('group').filter(lambda x: x.value3.nunique() == 1)

Выход:

   group  value3
9      C      98
10     C      98
11     C      98
0 голосов
/ 27 апреля 2018

Вам просто нужно добавить all

df.groupby('group').filter(lambda x: (x.value3 == x.value3.mean()).all())
Out[409]: 
   group  value3
9      C      98
10     C      98
11     C      98
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...