Я ищу самый питонический способ выполнить следующую задачу:
первый фрейм данных:
df1 =
dataA dataB key info dataC
0 ABC 123 a1b aaa
1 DEF 456 b57 bbb
2 GHI 789 a22 ccc
второй фрейм данных:
df2 =
dataX key info dataY
0 KLJ a1b infoA hhh
1 RTY q3z infoB uuu
2 PUI a22 infoC ppp
первый фрейм данных после питонических операций:
df1 =
dataA dataB key info dataC
0 ABC 123 a1b infoA aaa
1 DEF 456 b57 bbb
2 GHI 789 a22 infoC ccc
Какая здесь логика?
Используйте Pandas merge
поверх df1
и df2
в столбцах ['key','info']
, затем используйте столбец key
в качестве имени столбца для присоединения и используйте только ключи из левого фрейма данных how='left'
. Получите полученный столбец (info_y
) в первый фрейм данных.
df1['info'] = pd.merge(df1[['key','info']], df2[['key','info']], on='key', how='left')['info_y']
print(df1)
Выход из df1
dataA dataB key info dataC
0 ABC 123 a1b infoA aaa
1 DEF 456 b57 NaN bbb
2 GHI 789 a22 infoC ccc
Пожалуйста, уточните вашу конкретную проблему или предоставьте дополнительную информацию, чтобы выделить именно то, что вам нужно. Как сейчас написано, трудно точно сказать, о чем вы спрашиваете.