【发布时间】:2017-12-20 14:58:13
【问题描述】:
考虑 2 个数据帧,需要通过 2 个唯一列(idA、idB)连接 2 个数据帧并计算它们的 col 距离之和 .顺便说一下 (idA,idB) 等于 (idB,idA),所以它们的距离必须相加
In [1]: df1 = pd.DataFrame({'idA': ['1', '2', '3', '2'],
...: 'idB': ['1', '4', '8', '1'],
...: 'Distance': ['0.727273', '0.827273', '0.127273', '0.927273']},
...: index=[0, 1, 2, 3])
...:
In [2]: df2 = pd.DataFrame({'idA': ['1', '5', '2', '5'],
...: 'idB': ['2', '1', '4', '7'],
...: 'Distance': ['0.11', '0.1', '3.0', '0.8']},
...: index=[4, 5, 6, 7])
输出必须是这样的:
Sum_Distance idA idB
0 0.727273 1 1
1 3.827273 2 4 <-- 2,4 = 3.0 + 2,4 = 0.827273
2 0.127273 3 8
3 1.037273 2 1 <-- 2,1 = 0.927273 + 1,2 = 0.11
4 0.1 5 1
5 0.8 5 7
帮助找到使用 Pandas/Spark 的方法。
【问题讨论】:
-
我认为在您的特殊用例中,您可以先对每个数据框进行排序。