В pd.merge
есть несколько аргументов, которые вы можете использовать для этой цели: left_on
, right_on
и how
.
left_on
позволяет указать, к какому столбцу в левом кадре данных вы хотите присоединиться к пандам.
right_on
аналогично left_on
, но для правильного кадра данных.
how
позволяет указать, какой тип объединения вы хотели бы. В этом случае вы, вероятно, захотите выполнить левое соединение.
Подробнее об этом: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.merge.html
Вы можете сделать что-то вроде этого:
l1 = ["a", "b" , "c", "d", "e", "f", "g"]
l2 = ["a", "d", "f"]
l3 = ["b", "g"]
df = pd.DataFrame({'l1': l1})
df_l2 = pd.DataFrame({'l2': l2})
df_l3 = pd.DataFrame({'l3': l3})
df = pd.merge(df, df_l2, left_on='l1', right_on='l2', how='left')
df = pd.merge(df, df_l3, left_on='l1', right_on='l3', how='left')
Выход:
l1 l2 l3
0 a a NaN
1 b NaN b
2 c NaN NaN
3 d d NaN
4 e NaN NaN
5 f f NaN
6 g NaN g