我想从第二个数据框中的另外两列过滤数据框中的2列,我的想法是保留我的索引。将列X和Y中的每对值作为单个实体进行处理非常重要。这是一个例子:
原始数据框:
Out[72]:
ID X Y
0 1 1 10
1 1 2 23
2 1 50 65
3 2 30 2
4 2 2 5
5 2 6 8
6 3 10 3
7 3 33 6
8 3 4 90
然后,我将'ID'建立为索引:
df.set_index(['ID'])
Out[74]:
X Y
ID
1 1 10
1 2 23
1 50 65
2 30 2
2 2 5
2 6 8
3 10 3
3 33 6
3 4 90
这是第二个数据帧:
df2
Out[68]:
X Y
0 4 90
1 2 23
2 8 6
3 30 2
4 2 5
5 61 81
所需的输出是:
Out[78]:
X Y
ID
1 2 23
2 30 2
2 2 5
3 4 90
我使用zip
和set
,但这只能用于比较lists.Thanks提前
答案 0 :(得分:0)
在列X和Y上使用merge
,使用参数`right_index'设为True:
df.merge(df2, on=['X', 'Y'], right_index=True)
输出:
X Y
ID
1 2 23
2 30 2
2 2 5
3 4 90