Как выбрать pandas строк на основе повторяющихся значений столбцов? - PullRequest
0 голосов
/ 06 апреля 2020

Если у меня есть pandas df, который выглядит следующим образом:

+--------+-----------+--------
|Col1    | Col2      |Col3      |
|--------+-----------+----------+
|75      |  84       |    A     | 
|84      |   68      |    B     |                
|75      |   84      |    C     |
|75      |   84      |    A     |
+--------+-----------+----------+

Я хочу, чтобы вывод был

+--------+-----------+--------
|Col1    | Col2      |Col3      |
|--------+-----------+----------+
|75      |  84       |    A     | 
|75      |  84       |    C     |  

, т. Е. Везде, где значения Col1 и Col 2 то же самое, но Col 3 отличается. Я пытался

df[df.duplicated(['ID'], keep=False)]

Но это не идентифицирует дубликаты, основанные только на сходстве 2 столбцов.

Ответы [ 2 ]

1 голос
/ 06 апреля 2020
In [288]: df[df.duplicated(['Col1', 'Col2'], keep=False)].drop_duplicates()
Out[288]: 
   Col1  Col2 Col3
0    75    84    A
2    75    84    C
1 голос
/ 06 апреля 2020

Сначала получите все дубликаты по Col1 и Col2, а затем удалите дубликаты по всем столбцам по DataFrame.drop_duplicates:

df = df[df.duplicated(['Col1', 'Col2'], keep=False)].drop_duplicates()
print (df)
   Col1  Col2 Col3
0    75    84    A
2    75    84    C
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...