我有两个数据框,第一个df1
包含有关某个地方的信息,而第二个df2
计算两个不同地点之间的互动。
df1:
ID x y
0 0 5 2
1 1 2 3
2 2 3 6
3 3 0 1
4 4 9 8
df2:
ID1 ID2 t
0 1 4 20
1 1 2 33
2 2 3 64
3 3 4 13
4 1 3 80
5 11 2 34
我想基于df1
合并两个数据框并具有类似的东西
df3:
ID1 ID2 t x1 y1 x2 y2
0 1 4 20 2 3 9 8
1 1 2 33 2 3 3 6
2 2 3 64 3 6 0 1
3 3 4 13 0 1 9 8
4 1 3 80 1 3 0 1
5 11 2 34 NaN NaN 3 6
NaN
值是由地点ID 11
不在df1
答案 0 :(得分:0)
试试这个:
In [36]: df2.merge(df1, left_on='ID1', right_on='ID', how='left') \
.merge(df1, left_on='ID2', right_on='ID', how='left', suffixes=['','_2']) \
.drop(['ID', 'ID_2'], 1)
Out[36]:
ID1 ID2 t x y x_2 y_2
0 1 4 20 2.0 3.0 9 8
1 1 2 33 2.0 3.0 3 6
2 2 3 64 3.0 6.0 0 1
3 3 4 13 0.0 1.0 9 8
4 1 3 80 2.0 3.0 0 1
5 11 2 34 NaN NaN 3 6