【问题标题】:Compare cells from multiple data frames比较来自多个数据帧的单元格
【发布时间】:2018-08-03 21:49:01
【问题描述】:

我不确定如何使用 Pandas 来解决这个问题。我正在尝试将一个数据帧中每个 ID 的值与其他数据帧进行比较。下面是一个例子。

Data Frame A        Data Frame B        Data Frame C
      ID    Val           ID    Val         ID      Val
0     12345 10      0     12345 11      0   12345   11
1     23456 12      1     23456 12      1   23456   12
2     34567 13      2     34567 13      2   34567   13
3     45678 16                          3   56789   12

假设有三个数据帧(dfa、dfb 和 dfc),每个数据帧都有 ID 和值。 ID 12345 的值为 10、11 和 11,因此将被忽略。 ID 23456 对于所有三个数据帧的值为 12,因此它会以某种方式被标记。也许打印的 ID 23456 是相同的。展望未来,这同样适用于 ID 34567,因为它具有相同的值,但 ID 45678 将被忽略,因为它不存在于数据帧 B 或数据帧 C 中。

我已经想到了一些方法来做到这一点,但它涉及到字典和列表。我想看看是否有办法通过继续使用 Pandas 来更好地做到这一点。

【问题讨论】:

    标签: python pandas


    【解决方案1】:
    df = A.merge(B,left_on='ID',right_on='ID').merge(C,left_on='ID',right_on='ID').rename({'Val_x':'Val_A','Val_y':'Val_B','Val':'Val_C'})
    df['flag']=0
    df.loc[(df['Val_A']==df['Val_B']) & (df['Val_B']==df['Val_C']),'flag']=1
    

    标志栏是你想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多