【问题标题】:merge the second data frame into the first one将第二个数据框合并到第一个数据框
【发布时间】:2019-06-26 12:13:44
【问题描述】:

我想合并2个数据框如下:

left:

   A  B  C  D    E    F    G    H     
   1  2  3  4    5    6    7    h       
   5  2  3  4  NaN  NaN  NaN  NaN  
   1  2  4  4  NaN  NaN  NaN  NaN  


right:
   E  F  G  H     
   1  2  g  h2 

我想做:

merge=pd.merge(left=left,right=right,left_on=['A','B'], right_on=['E','F'],how='left')

但我想要一些看起来像这样的东西:

   A  B  C  D    E    F    G    H     
   1  2  3  4    5    6    7    h
   1  2  3  4    1    2    g    h2
   5  2  3  4  NaN  NaN  NaN  NaN  
   1  2  4  4    1    2    g    h2

知道如何才能达到预期的效果吗?

非常感谢!!

【问题讨论】:

  • 我想我自己想通了......我可以做一个子集left2=left[['A','B','C','D']]并与right合并,然后与left合并,然后删除重复项

标签: python pandas join merge concat


【解决方案1】:

您可能需要考虑update

left=left.set_index(['A','B'])
right.index=pd.MultiIndex.from_arrays([right['E'],right['F']])
left.update(right)
left.reset_index(inplace=True)
left
Out[274]: 
   A  B  C  D    E    F    G    H
0  1  2  3  4  1.0  2.0    g   h2
1  5  2  3  4  NaN  NaN  NaN  NaN
2  1  2  4  4  1.0  2.0    g   h2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 2017-04-14
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多