Ищете аналог 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