Учимся склеивать таблицы в pandas: merge с how и on, join по индексу, concat по строкам и столбцам. Разбираем fan-out при 1:N и indicator для аналитики данных.
Это часть 9 из 10 курса «Pandas с нуля для аналитика».
В реальной работе данные почти никогда не лежат в одной таблице. Заказы в одной, пользователи в другой, товары в третьей. Чтобы ответить на вопрос «сколько в среднем тратят клиенты из Москвы», тебе нужно соединить эти таблицы по общему ключу. Сегодня разберём все способы это сделать в pandas — и, что важнее, научимся не наступать на грабли, на которых спотыкаются даже мидлы.
merge объединяет таблицы по общим ключам (как SQL JOIN), сопоставляя строки по значению колонки. concat просто склеивает таблицы по строкам (axis=0) или колонкам (axis=1) без сопоставления ключей.
Параметр how задаёт тип: 'inner' (только совпадения), 'left' (все строки левой таблицы), 'right' (все правой), 'outer' (объединение всех). Ключ задаётся через on='id' или left_on/right_on при разных именах колонок.
df.join() объединяет по индексу и удобен, когда ключ уже стоит индексом обеих таблиц: df1.join(df2). merge гибче — работает по любым колонкам через on, поэтому в большинстве задач берут именно merge.