Pandas 列值的数据帧之间的差异

Pandas difference between dataframes on column values

我找不到一种方法来使数据帧具有基于列的 2 个数据帧的差异。所以基本上:

dfA = ID, val
      1, test
      2, other test

dfB = ID, val
      2, other test

我想要一个 dfC 来保持基于列 ID

的差异 dfA - dfB
dfC = ID, val
      1, test

合并 ID 上的数据框

dfMerged = dfA.merge(dfB, left_on='ID', right_on='ID', how='outer') # defaults to inner join.

在合并的数据帧中,使用后缀 _x & _y 来表示左右源数据帧,避免了名称冲突。

因此,您最终(很可能)会得到 val_xval_y。根据需要比较这些列。例如:

dfMerged['x_y_test'] = dfMerged.val_y == dfMerged.val_x
# gives you a column with a comparison of val_x, val_y.

将其用作掩码以达到您问题中所需的 dfC

这对你有用吗?

dfC = dfB[dfB["ID"] == dfA["ID"]]

这个怎么样:

dfC = dfB[dfB["ID"].isin(dfA["ID"])]