如何逐行比较两个数据帧,添加标签(True/False)?

How can I compare two dataframes, row by row, adding a label (with True/False)?

我想比较两个列名称相同的数据框。我想创建另一个带有标签的附加列的数据框。如果 val1 = val1 且 val2=val2 则加 1 (True),否则加 0 (False)。

df1:
val1   val2
  3     4
  1     2
  6     7
  8     9

df2:
val1   val2
  3     4
  1     6
  6     7
  8     0

我希望我有这样的结果:

df_new:
val1   val2  Label
  3     4      1
  1     2      0
  6     7      1
  8     9      0

我该怎么做?

使用 indicator= 参数尝试 .merge

x = df1.merge(df2, on=["val1", "val2"], indicator="Label", how="left")
x.Label = x.Label.eq("both").astype(int)
print(x)

打印:

   val1  val2  Label
0     3     4      1
1     1     2      0
2     6     7      1
3     8     9      0

如果行都对齐了,直接比较就可以了,

df1["Label"] = (df1 == df2).all(axis=1).astype(int)