我找不到一种方法来使数据帧具有基于列的 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_x 和 val_y。根据需要比较这些列。例如:
dfMerged['x_y_test'] = dfMerged.val_y == dfMerged.val_x
# gives you a column with a comparison of val_x, val_y.
将其用作掩码以获取问题中所需的 dfC。
