Ищете аналог pd.DataFrame.drop_duplicates(), где порядок не имеет значения

Я хотел бы использовать что-то похожее на удаление дубликатов DataFrame. Я бы хотел, чтобы порядок столбцов не имел значения. Я имею в виду, что функция должна рассматривать строку, состоящую из записей 'a', 'b' быть идентичным строке, состоящей из записей 'b', 'a', Например, учитывая

df = pd.DataFrame([['a', 'b'], ['c', 'd'], ['a', 'b'], ['b', 'a']])

   0  1
0  a  b
1  c  d
2  a  b
3  b  a

Я хотел бы получить:

   0  1
0  a  b
1  c  d

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

1 ответ

Решение

Вызов np.sort сначала, а затем отбросьте дубликаты.

df[:] = np.sort(df.values, axis=1)
df.drop_duplicates()

   0  1
0  a  b
1  c  d
Другие вопросы по тегам