PD Merge на нескольких столбцах
new_df = pd.merge(A_df, B_df, how='left', left_on=['A_c1','c2'], right_on = ['B_c1','c2'])
Hambo
new_df = pd.merge(A_df, B_df, how='left', left_on=['A_c1','c2'], right_on = ['B_c1','c2'])
# all_res is list of DataFrames : [ dataframe, dataframe, ... ]
df_res = pd.concat(all_res)
df['A'] = df[a_cols].apply(' '.join, axis=1)