【发布时间】:2017-12-08 19:12:43
【问题描述】:
我有一个包含列的数据框,我们称它们为 A 和 B,我想查找所有对称数据对,例如:
pd.DataFrame({'A':[1, 2 , 3], 'B':[2, 1, 3]})
我想像这里一样返回所有我会得到的对(我实际上不需要两个都只需要 (2,1) 或 (2,1) 就足够了)
(1,2) and (2,1)
我首先尝试了一种有效的算法,但在我的长度为 26325 的数据帧中,10 分钟后它还没有完成,但速度真的很慢
listTuples = list()
for index, row in test.iterrows():
listTuples.append((row["A"], row["B"])) # convert to a list of tuple
answer = [(x, y) for (x, y) in listTuples if (y, x) in listTuples]
【问题讨论】:
-
这些对是否必须彼此相邻? (第 i 行和第 i+1 行)或者它们可以相隔 2+ 行吗?
标签: python