【问题标题】:How to merge two data frames with duplicate rows?如何合并具有重复行的两个数据框?
【发布时间】:2020-04-24 15:01:27
【问题描述】:

我有两个数据框 df1df2df1 具有重复的文本 wrt 列 name 但列 hobby 更改。 df2name 列中也有重复的文本。我想合并两个数据框并保留所有内容。

df1:
name   hobby

mike   cricket 
mike   football
jack   chess
jack   football
jack   vollyball
pieter sleeping
pieter cyclying

我的df2

df2:
name

mike
pieter 
jack  
mike
pieter 

现在我必须在 name 列上将 df2df1 合并 所以我的结果df3 应该是这样的:

df3:
name   hobby

mike   cricket 
mike   football
pieter sleeping
pieter cyclying
jack   chess
jack   football
jack   vollyball
mike   cricket 
mike   football
pieter sleeping
pieter cyclying


【问题讨论】:

    标签: python-3.x pandas merge


    【解决方案1】:

    IIUC,你要给df2分配一个顺序,在name上合并,然后按照这个顺序排序:

    (df2.assign(rank=np.arange(len(df2)))
        .merge(df1, on='name')
        .sort_values('rank')
        .drop('rank', axis=1)
    )
    

    输出:

          name      hobby
    0     mike    cricket
    1     mike   football
    4   pieter   sleeping
    5   pieter   cyclying
    8     jack      chess
    9     jack   football
    10    jack  vollyball
    2     mike    cricket
    3     mike   football
    6   pieter   sleeping
    7   pieter   cyclying
    

    【讨论】:

      猜你喜欢
      • 2019-01-21
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      相关资源
      最近更新 更多