【问题标题】:Merge dataframes based on column values with duplicated rows基于具有重复行的列值合并数据框
【发布时间】:2021-08-28 02:53:09
【问题描述】:

我想基于相等的列值合并两个数据框。问题是我的一列有重复的行值,因为它与另一列相关,所以不能删除。这是我的两个数据框的示例:

本质上,我想根据 FromPatchID (df1) 和 Id (df2) 列的相等值合并这两个数据帧,以获得如下结果:

FromPatchID    ToPatchID    ...    Id     MMM     LB
    1              1        ...    1     26.67   27.67
    1              2        ...    1     26.67   27.67
    1              3        ...    1     26.67   27.67
    2              1        ...    2     26.50   27.50
    3              1        ...    3     26.63   27.63

我已经尝试过与df_merged = pd.merge(df1, df2, on=['FromPatchID','Id']) 进行简单的合并,但出现 KeyError 指示在 FromPatchID 列中检查重复项

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    您必须指定不同的列名才能与left_onright_on 匹配。还要指定 how='right' 以仅使用右帧中的键。

    df_merged = pd.merge(df1, df2, left_on='FromPatchID', right_on='Id', how='right')
    

    【讨论】:

    • 成功了,谢谢!唯一的一点是我必须指定 how='left' 而不是 'right' 才能在我的 df1 的整个范围内合并:)
    猜你喜欢
    • 1970-01-01
    • 2023-01-12
    • 2021-04-28
    • 1970-01-01
    • 2018-01-30
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多