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_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
。
这对你有用吗?
dfC = dfB[dfB["ID"] == dfA["ID"]]
这个怎么样:
dfC = dfB[dfB["ID"].isin(dfA["ID"])]
我找不到一种方法来使数据帧具有基于列的 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
。
这对你有用吗?
dfC = dfB[dfB["ID"] == dfA["ID"]]
这个怎么样:
dfC = dfB[dfB["ID"].isin(dfA["ID"])]