微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何逐行比较两个数据框,添加标签带真/假?

如何解决如何逐行比较两个数据框,添加标签带真/假?

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

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

我该怎么做?

解决方法

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

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

使用 .merge 参数尝试 indicator=

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。