比较不同数据框中的2列

时间:2020-03-08 11:11:39

标签: python pandas

如果我有2个表b,我想去c并检查称为父表的列是否值等于表b中的PrentSKU列的值,则从表b中带出ChildSKU列的值并将其放入在表c的样式列中,否则不执行任何操作

我尝试使用比较方法,但是表大小不同,因此给了我一个错误,我也尝试了for循环,但同时也给了我一个错误,即Series的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。

我尝试过的代码:

 for row in c['ParentSKU']:
        if row == b['Parent']:
           b['Style'] == c['ChildSKU']
        else: break  

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

b = pd.DataFrame({'Parent':['a','b','c','d','e'],'ChildSKU':range(5)})

    Parent  ChildSKU
0   a   0
1   b   1
2   c   2
3   d   3
4   e   4

c = pd.DataFrame({'ParentSKU':['a','c','e']})

    ParentSKU   
0   a   
1   c   
2   e   

c['Style'] = c.merge(b,left_on='ParentSKU',right_on='Parent')['ChildSKU']

    ParentSKU   Style
0   a   0
1   c   2
2   e   4