【问题标题】:How can I compare two dataframes, row by row, adding a label (with True/False)?如何逐行比较两个数据框,添加标签(True/False)?
【发布时间】:2021-07-18 10:17:21
【问题描述】:

我想比较两个具有相同名称的列的数据框。我想创建另一个带有标签的附加列的数据框。如果 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

我该怎么做?

【问题讨论】:

    标签: python pandas dataframe compare


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      尝试.mergeindicator= 参数:

      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
      

      【讨论】:

        猜你喜欢
        • 2020-06-05
        • 1970-01-01
        • 2018-07-11
        • 1970-01-01
        • 1970-01-01
        • 2020-03-09
        • 2019-11-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多