from itertools import product
import pandas as pd
df = pd.DataFrame.from_records(product(range(10), range(10)))
df = df.sample(90)
df.columns = "c1 c2".split()
df = df.sort_values(df.columns.tolist()).reset_index(drop=True)
# c1 c2
# 0 0 0
# 1 0 1
# 2 0 2
# 3 0 3
# 4 0 4
# .. .. ..
# 85 9 4
# 86 9 5
# 87 9 7
# 88 9 8
# 89 9 9
#
# [90 rows x 2 columns]
Wie finde, identifiziere und entferne ich schnell das letzte Duplikat aller symmetrischen Paare in diesem Datenrahmen?
Ein Beispiel für ein symmetrisches Paar ist, dass '(0, 1)' gleich '(1, 0)' ist. Letzteres sollte entfernt werden.
Der Algorithmus muss schnell sein, daher wird empfohlen, numpy zu verwenden. Das Konvertieren in ein Python-Objekt ist nicht zulässig.
df.drop_duplicates()
symmetric pairs
?