Pandas equivalent of SQL non-equi JOIN

前端 未结 2 384
轮回少年
轮回少年 2020-12-21 00:15

So I\'ve got 2 data-frames I\'d like to merge together.

I\'m merging on 3 columns, 2 is an easy join.

joined_df = pd.merge(df1, df2, how=\'left\', on         


        
相关标签:
2条回答
  • 2020-12-21 00:47

    You can using merge_asof, default is backward merge

    pd.merge_asof(df1,df2, left_on='year',right_on='joined_df', by=['name', 'city'])
    
    0 讨论(0)
  • 2020-12-21 00:54

    Pandas merge only supports equi-joins. You'll need to add a second step that filters the result, something like this:

    joined_df = df1.merge(df2, how='left', on=['name', 'city'])
    joined_df = joined_df[joined_df.year > joined_df.year_min]
    
    0 讨论(0)
提交回复
热议问题