Выберите строки данных с неоднозначным присвоением значения - PullRequest
0 голосов
/ 25 сентября 2019

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

Если таблица будет выглядеть следующим образом:

ID1  ID2

1111  1
1111  1
1111  1
1112  1
1112  1
1112  1
4444  2
4444  2
4444  2

Я хотел бы получить простой вывод, подобный этому:

ID1   ID2

1111  1
1112  1

Большое спасибо заранее!

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Вход:

df = pd.read_clipboard()

df = df.drop_duplicates()
df[df.duplicated(subset=['ID2'], keep=False)]

Выход:

|   | ID1  | ID2 |
|---|------|-----|
| 0 | 1111 | 1   |
| 3 | 1112 | 1   |
1 голос
/ 25 сентября 2019

Сначала необходимо идентифицировать ID2 s с более чем 1 ID1 (с transform('nunique')), а затем мы отбрасываем дубликаты.

df[df.groupby('ID2').ID1.transform('nunique').gt(1)].drop_duplicates()
#    ID1  ID2
#0  1111    1
#3  1112    1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...