Python 查找数据帧的哪些行存在于另一个数据帧中
我想使用df1对df2执行查找,以查看df1中每一行的列组合是否存在于df2中,并返回一个布尔值。可能吗?谢谢 df1: df2: 返回: df3: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
我假设在您的示例数据中,对应相等行的行位置匹配是巧合 您可以通过以下方式构造
'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