Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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_Dataframe_Boolean - Fatal编程技术网

Python 查找数据帧的哪些行存在于另一个数据帧中

Python 查找数据帧的哪些行存在于另一个数据帧中,python,pandas,dataframe,boolean,Python,Pandas,Dataframe,Boolean,我想使用df1对df2执行查找,以查看df1中每一行的列组合是否存在于df2中,并返回一个布尔值。可能吗?谢谢 df1: df2: 返回: df3: 我假设在您的示例数据中,对应相等行的行位置匹配是巧合 您可以通过以下方式构造'Match'列: df1['Match'] = df1.index.isin(df1.reset_index().merge(df2)['index']) 默认情况下,使用列标签的交点进行合并,因此上面的行等效于: df1['Match'] = df1.index.is

我想使用df1对df2执行查找,以查看df1中每一行的列组合是否存在于df2中,并返回一个布尔值。可能吗?谢谢

df1:

df2:

返回:

df3:


我假设在您的示例数据中,对应相等行的行位置匹配是巧合

您可以通过以下方式构造
'Match'
列:

df1['Match'] = df1.index.isin(df1.reset_index().merge(df2)['index'])
默认情况下,使用列标签的交点进行合并,因此上面的行等效于:

df1['Match'] = df1.index.isin(df1.reset_index().merge(df2, on=['First', 'Last'])['index'])
在类似的问题中,如果您只想比较“部分行”是否相等,请明确地提供上的
上的
left\u或
上的
right\u参数。

尝试以下方法:

df3 = df1.merge(df2, on=['First'])
df3['match'] = df3['Last_x']==df3['Last_y']
print(df3)

  First    Last_x    Last_y  match
0   Bob      Anza  Phillips  False
1   Jim   Roberts   Roberts   True
2   Tom  Phillips      Anza  False
df3 = df1.copy()
df3['**Match**'] = (df1 == df2).all(axis=1)
print(df3)
试试这个:

df3 = df1.merge(df2, on=['First'])
df3['match'] = df3['Last_x']==df3['Last_y']
print(df3)

  First    Last_x    Last_y  match
0   Bob      Anza  Phillips  False
1   Jim   Roberts   Roberts   True
2   Tom  Phillips      Anza  False
df3 = df1.copy()
df3['**Match**'] = (df1 == df2).all(axis=1)
print(df3)
输出:

  **First**  **Last**  **Match**
0       Bob      Anza      False
1       Jim   Roberts       True
2       Tom  Phillips      False
请注意,这还会检查
df1
df2
的第一列中的值是否相等

  **First**  **Last**  **Match**
0       Bob      Anza      False
1       Jim   Roberts       True
2       Tom  Phillips      False