Python 从一个数据框中选择行,其中两个元素在另一个数据框的一行上匹配
我正在尝试创建一个新的数据框,该数据框包含来自数据框a的所有行,其中列x和列y的值在数据框B的一行上匹配 我尝试从数据帧B中查找行的索引,在数据帧B中,只有列x的值匹配,以尝试查看是否可以在这些索引上匹配y的值,但我无法检索索引。也尝试了iterrows来匹配这两个条件,但也没有成功Python 从一个数据框中选择行,其中两个元素在另一个数据框的一行上匹配,python,pandas,Python,Pandas,我正在尝试创建一个新的数据框,该数据框包含来自数据框a的所有行,其中列x和列y的值在数据框B的一行上匹配 我尝试从数据帧B中查找行的索引,在数据帧B中,只有列x的值匹配,以尝试查看是否可以在这些索引上匹配y的值,但我无法检索索引。也尝试了iterrows来匹配这两个条件,但也没有成功 A={'x':[1,2,3,4],'y':[5,6,7,8]} B={'x':[1,2,3,10],'y':[5,6,90,8]} 我要代码返回 {'x':[1,2],'y':[5,6]} 假设您有2个数据帧:
A={'x':[1,2,3,4],'y':[5,6,7,8]}
B={'x':[1,2,3,10],'y':[5,6,90,8]}
我要代码返回
{'x':[1,2],'y':[5,6]}
假设您有2个数据帧:
A=pd.DataFrame({'x':[1,2,3,4],'y':[5,6,7,8]})
B=pd.DataFrame({'x':[1,2,3,10],'y':[5,6,90,8]})
然后你可以做:
idx = A.x == B.x
idy = A.y == B.y
ID = idx&idy
A[ID]
x y
0 1 5
1 2 6
或者,您可以将其转换为所需的输出:
A[ID].to_dict("list")
{'x': [1, 2], 'y': [5, 6]}
在您的示例中,A和B是列表的字典,而不是数据帧。x的最终答案也应该包含3吗?