【问题标题】:making a merge in pandas ojn 2 dataframe on multiple key在多个键上的 2 个数据帧上合并 pandas
【发布时间】:2020-03-27 09:19:52
【问题描述】:

我有 df1 和 df2,我想使用 pandas 进行左连接,

我也试过这个:

data_2 = pd.merge(df1, df2, ['var1' , 'var2' , 'var3'   ] )

但这并不是我真正想做的。

我在 SQL 中编写以下连接只是为了显示我真正想做的事情(请注意两个 df 具有不同的列名):

create df3 as 
select a.* , b.*
from df1 as a left join df2 as b
on a.id=b.id_var
and a.speciality=b.speciality
and upcase(a.global_name)= upcase(b.product_name)

我如何使用 pandas 来做到这一点?

【问题讨论】:

    标签: python-3.x pandas left-join


    【解决方案1】:

    等效:

    (df1.assign(upcase=df1.global_name.str.upper())
        .merge(df2.assign(upcase=df2.product_name.str.upper()),
               left_on=['id', 'speciality', 'upcase'],
               right_on=['id_var', 'speciality', 'upcase'],
               how='left')
        .drop('upcase', axis=1)
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-07
      • 1970-01-01
      • 2022-01-07
      • 2019-08-10
      • 2019-06-02
      • 2017-03-25
      • 2021-02-21
      相关资源
      最近更新 更多