Привет, друзья! Сегодня я расскажу вам, как правильно объединить два датафрейма и при этом сохранить порядок строк первого! 🧩⬇️
👉 Для этого мы используем df.index, чтобы порядок строк из первого датафрейма оставался неизменным, а из второго добавляем нужные данные. 💼📈
📄 Пример кода:
Набросаю пару таблиц, на которых будем экспериментировать.
import pandas as pd
# Первый df
df1 = pd.DataFrame({
'account_id': [1, 2, 1, 3, 4],
'value_df1': [10, 20, 30, 40, 50]
})
# Второй df
df2 = pd.DataFrame({
'account_id': [1, 2, 3, 5],
'value_df2': ['1 from df2',
'2 from df2',
'3 from df2',
'5 from df2']
})
Добавим индексный столбец к исходному датафрейму.
df1['original_index'] = df1.index
Объединяем датафреймы:
df_merged = pd.merge(df1, df2, on='account_id', how='outer')
Видим, что строки левой таблицы идут сначала не в нужном нам порядке.
Сортируем по исходному индексу:
df_merged = df_merged.sort_values(by='original_index').reset_index(drop=True)
Удаляем вспомогательный индексный столбец, если он больше не нужен
df_final = df_merged.drop(columns=['original_index'])
🔍 И получаем результат: df_final. Смотрим картинку с поэтапным процессом. Специально разбито все по частям, чтобы отследить результат.
С помощью этих шагов мы сохраняем порядок строк из первого датафрейма и добавляем нужные данные из второго. 🚀✨
