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)为True
—
该Unfun猫
(0,1)==(0,1)是否也成立?
—
wundermahn
@JerryM。是的,但使用
—
将
df.drop_duplicates()
@ molybdenum42我使用itertools产品创建示例,数据本身不是使用itertools产品创建的。
—
Unfun Cat,
symmetric pairs
吗?