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]
このデータフレーム内のすべての対称ペアの最後の重複をすばやく特定、削除するにはどうすればよいですか?
対称ペアの例は、「(0、1)」が「(1、0)」と等しいことです。後者は削除する必要があります。
アルゴリズムは高速でなければならないので、numpyを使用することをお勧めします。Pythonオブジェクトへの変換は許可されていません。
(0、1)==(1,0)は真
—
Unfun Cat '28
(0、1)==(0、1)もTrueですか?
—
wundermahn
@JerryM。はい、しかしそれを取り除くのは簡単です
—
The Unfun Cat '28
df.drop_duplicates()
@ molybdenum42私はitertools製品を使用して例を作成します。データ自体はitertools製品では作成されません。
—
Unfun Cat
symmetric pairs
か?