我是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有更好的解决方案吗?
感谢您的帮助
答案 0 :(得分:1)
这是一个简单的合并和过滤操作:
df1.merge(df2, on=['SKU', 'PRICE']).query('Status_x != Status_y')
SKU PRICE Status_x Status_y
0 A 1798 0 1
或更准确地说:
(df1.merge(df2, on=['SKU', 'PRICE'], suffixes=('', '_y'))
.query('Status != Status_y')
.drop('Status_y', 1))
SKU PRICE Status
0 A 1798 0