Использование слияния имеет такой недостаток, что в результате содержатся ( leg_id и leg ) (с одинаковым содержанием).
Возможно, лучшим вариантом будет:
- Установить индекс в df1 на leg_id .
- Установить индекс в df2 до leg .
- Присоедините оба DataFrames (теперь по их индексам).
Пока у результата есть индекс (взят из leg_id и leg ), но без имени . Чтобы преобразовать его в «обычный» именованный столбец, вы можете:
- переименовать индекс (например, в leg ).
- сбросить индекс (фактически только эта операция превращает его в «обычный» столбец).
Код для этого:
df1.set_index('leg_id').join(df2.set_index('leg'), how='inner')\
.rename_axis(index='leg').reset_index()
Преимущество этого решения по сравнению с слияние означает, что столбец индекса встречается только один раз.