Фильтрация уникальных значений по группам - PullRequest
0 голосов
/ 04 октября 2018

У меня есть следующая таблица:

id  L1  L2
1   A   B
1   A   C
1   A   D
1   B   B
1   B   C
1   B   D
2   D   A
2   D   F

Я хочу отфильтровать любое значение L2, которое входит в L1, но только в пределах одной группы id.Поэтому для id=1 мы отфильтровываем L2=B, но сохраняем L2=D.Для id=2 мы сохраняем L2=A.

Вывод должен быть таким:

id  L1  L2
1   A   C
1   A   D
1   B   C
1   B   D
2   D   A
2   D   F

1 Ответ

0 голосов
/ 04 октября 2018

Я предполагаю, что вы используете pandas:

df.groupby('id').apply(lambda x: x[~x.L2.isin(x.L1)]).reset_index(drop=True)

   id L1 L2
0   1  A  C
1   1  A  D
2   1  B  C
3   1  B  D
4   2  D  A
5   2  D  F
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...