pandas left join and update existing column

前端 未结 5 1638
忘掉有多难
忘掉有多难 2020-12-01 16:16

I am new to pandas and can\'t seem to get this to work with merge function:

>>> left       >>> right
   a  b   c       a  c   d 
0  1  4            


        
5条回答
  •  猫巷女王i
    2020-12-01 16:26

    One way to do this is to set the a column as the index and update:

    In [11]: left_a = left.set_index('a')
    
    In [12]: right_a = right.set_index('a')
    

    Note: update only does a left join (not merges), so as well as set_index you also need to include the additional columns not present in left_a.

    In [13]: res = left_a.reindex(columns=left_a.columns.union(right_a.columns))
    
    In [14]: res.update(right_a)
    
    In [15]: res.reset_index(inplace=True)
    
    In [16]: res
    Out[16]:
       a   b   c   d
    0  1   4   7  13
    1  2   5   8  14
    2  3   6   9  15
    3  4   7  12 NaN
    

提交回复
热议问题