【问题标题】:How to join data frames with keeping only matching ones?如何在只保留匹配的情况下加入数据框?
【发布时间】:2021-12-21 18:55:45
【问题描述】:

我有两个数据框:

id   value
a1   12
a2   15
a3   17
id   value1
a1   22
a2   58
a7   10

我想通过列 id 加入他们,只保持匹配一个:

id   value    value1
a1    12       22
a2    15       58

如何做到这一点?我试过 pd.merge 但它保留了所有 id

【问题讨论】:

    标签: python python-3.x dataframe join merge


    【解决方案1】:

    您可以使用pd.mergeinner

    数据框示例

    df1 = pd.DataFrame({'id':['a1','a2', 'a3'],
                        'value':[12, 15, 17]})
    
    df2 = pd.DataFrame({'id':['a1','a2', 'a7'],
                        'value':[22, 58, 10]})
    

    代码

    merged_df = df1.merge(df2, how = 'inner', on = ['id'])
    merged_df.columns = ["id", "value", "value1"]
    

    结果

       id  value  value1
    0  a1     12      22
    1  a2     15      58
    

    如果要将索引改为id,可以使用pd.set_index('id')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      • 2022-12-22
      • 2017-10-28
      • 2019-07-18
      • 1970-01-01
      • 2020-08-30
      相关资源
      最近更新 更多