Удаление строк из df, содержащих одинаковую комбинацию из 2 столбцов - PullRequest
0 голосов
/ 14 марта 2019

У меня есть df, как показано ниже, который содержит комбинации идентификаторов, как я могу удалить те же комбинации?Напримерпервые 4 строки представляют собой одну и ту же комбинацию, но только в другом порядке.Можно ли как-то удалить все дублирующиеся комбинации, когда они находятся в другом порядке, но сохраняя одну уникальную комбинацию?

Name  ID1  Time  ID2  Time
Chi 232 24:18.4 111 19:17.7
Chi 111 19:17.7 232 24:18.4
Ari 444 02:33.0 555 57:34.2
Ari 555 57:34.2 444 02:33.0
Ca  321 27:11.7 787 22:14.5
Ca  443 42:49.4 667 47:47.4
Ca  667 47:47.4 443 42:49.4

1 Ответ

1 голос
/ 14 марта 2019

Вы можете отсортировать столбцы ID, чтобы создать маску с duplicated, а затем проиндексировать свой DataFrame.

u = df.filter(like='ID').values
m = pd.DataFrame(np.sort(u, axis=1)).duplicated()

df[~m]

  Name  ID1    Time1   ID2    Time2
0  Chi  232  24:18.4   111  19:17.7
2  Ari  444  02:33.0   555  57:34.2
4   Ca  321  27:11.7   787  22:14.5
5   Ca  443  42:49.4   667  47:47.4
...