【发布时间】:2020-05-30 22:32:27
【问题描述】:
我是 python 新手,所以请放轻松。我一直在查找类似的线程,但无法为我的问题找到一个简洁的解决方案:
我想比较两个数据框的列值并将不同的值放在新的数据框中 我的数据框在下面并且长度不同(即行数)。我想比较每个 SKU 的状态:
df1
SKU PRICE Status
A 1798 0
C 1798 1
D 999 0
E 1299 1
F 999 0
df2
SKU PRICE Status
A 1798 1
B 2997 1
C 1798 1
D 999 0
比较 df2 和 df1 我想要关注 df3
SKU PRICE Status
A 1798 0
我知道它可以通过循环来完成,但我希望通过 pandas 或 itertools 有更好的解决方案?
感谢您的帮助
【问题讨论】:
-
您的预期输出看起来有点不对劲。请您再检查一遍好吗?
-
这里的预期结果是什么?要返回状态不同的匹配 SKU 价格行?这听起来像是一个额外步骤的合并问题:
df1.merge(df2, on=['SKU', 'PRICE']).query('Status_x != Status_y') -
您好,仅 SKU A 的状态已更改。因此预计新 DF 中只有一行