Добавить в dataframe колонку из другого по условию
Пытаюсь объединить:
df1 = pd.read_excel('Номенклатура.xlsx', sheet_name='Лист3')
df2 = pd.read_excel('Номенклатура.xlsx', sheet_name='Лист4')
a = df1.merge(df2[['Номенклатура наименование полное']])
a.to_excel(r'Номенклатура1.xlsx', index=False)
Подскажите, как можно достичь объединения таблиц?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Попробуйте так:
a = df1.merge(df2, on='Номенклатура наименование полное')
Но потом ещё придётся с названиями колонок поработать, к ним припишутся суффиксы (по умолчанию _x и _y).
Если нужны только определённые колонки датафреймов - укажите их:
a = df1[['Колонка1','Колонка2','Номенклатура наименование полное']].merge(df2[['Колонка3','Колонка4','Номенклатура наименование полное']], on='Номенклатура наименование полное')
Если нужно, чтобы в результат попали строки с пустыми колонками - измените тип объединения через параметр how= который по умолчанию выставляется в inner. Например, можно поменять на outer и тогда в результат попадут и строки, которым не находится соответствия в одной из таблиц:
.merge(..., how='outer')
Документация, где можно посмотреть все параметры.


