Функция concat() в pandas: объединение таблиц

pd.concat([df1, df2]) сшивает несколько DataFrame в один: по умолчанию по строкам (axis=0 — одна таблица под другой), либо по столбцам (axis=1 — рядом). В отличие от merge, concat не сопоставляет ключи, а просто складывает данные по оси. Аналитик применяет его, чтобы объединить выгрузки за разные периоды или собрать результаты в цикле.

Синтаксис

pd.concat([df1, df2], axis=0, ignore_index=True)

Примеры использования

Пример 1: Склеить выгрузки за два месяца

pd.concat([june, july], ignore_index=True)

Результат:

(строки july добавлены под june, индекс пересобран 0..N)

Пример 2: Добавить столбцы рядом (axis=1)

pd.concat([features, target], axis=1)

Результат:

(колонки target приклеены справа по индексу)
Порешать Python-задачи в тренажёре →

Типичная ошибка

Без ignore_index=True concat сохраняет исходные индексы, и они задвоятся (два раза по 0,1,2…) — это ломает последующий .loc. При axis=0 колонки сопоставляются по имени: несовпадающие дадут NaN. При axis=1 строки сопоставляются по индексу — если индексы разные, получишь дыры. Для склейки по ключу (а не по позиции) нужен merge, а не concat.

Где спрашивают на собеседовании

concat спрашивают в задачах «объедини несколько таблиц» и при сборке данных из цикла. На собеседовании ценят чёткое различие concat (складывает по оси) и merge (join по ключу) и привычку ставить ignore_index при вертикальной склейке.

FAQ: частые вопросы про concat

Чем concat отличается от merge?

concat механически сшивает таблицы по оси (строки под строки или колонки рядом) без сопоставления ключей. merge соединяет по значению колонок-ключей, как SQL JOIN. Для «дописать строки» — concat, для «подтянуть по ключу» — merge.

Зачем нужен ignore_index в concat?

Без него сохраняются исходные индексы, и они дублируются. ignore_index=True пересобирает индекс в 0..N, что нужно почти всегда при вертикальной склейке.

Как склеить таблицы по столбцам?

pd.concat([df1, df2], axis=1) приклеит колонки рядом, сопоставляя строки по индексу. Если индексы разные, появятся NaN — тогда лучше выровнять индексы или использовать merge.

Задачи в тренажёре по теме

Вопросы с собеседований по теме

Смежные темы Python

Pandas: основы · Pandas merge / join

Другие функции pandas

groupby · merge · pivot_table · apply · value_counts · drop_duplicates

Открыть Python-тренажёр (556 задач) →