Skip to main content
 首页 » 编程设计

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

2025年05月04日15jillzhang

我找不到一种方法来使数据帧具有基于列的 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。