Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从一个数据框中选择行,其中两个元素在另一个数据框的一行上匹配_Python_Pandas - Fatal编程技术网

Python 从一个数据框中选择行,其中两个元素在另一个数据框的一行上匹配

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和列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=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吗?