pandas.DataFrame.merge
-
DataFrame.merge(right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)[source] -
Объединение объектов DataFrame, выполняя операцию присоединения в стиле баз данных по столбцам или индексам.
Если присоединение выполняется по столбцам, индексы DataFrame будут проигнорированы. В противном случае, если присоединение выполняется по индексам или по индексу и столбцу/столбцам, индекс будет передан.
Параметры: right : DataFrame
how : {‘left’, ‘right’, ‘outer’, ‘inner’}, по умолчанию ‘inner’
- left: использовать только ключи из левого фрейма, аналогично левому внешнему соединению SQL; сохранить порядок ключей
- right: использовать только ключи из правого фрейма, аналогично правому внешнему соединению SQL; сохранить порядок ключей
- outer: использовать объединение ключей из обоих фреймов, аналогично полному внешнему соединению SQL; отсортировать ключи лексикографически
- inner: использовать пересечение ключей из обоих фреймов, аналогично внутреннему соединению SQL; сохранить порядок левых ключей
on : метка или список
Имена полей для присоединения. Должны быть найдены в обоих DataFrame. Если on равно None и присоединение не выполняется по индексам, то по умолчанию оно выполняется по пересечению столбцов.
left_on : метка или список, или массив-подобный объект
Имена полей для присоединения в левом DataFrame. Может быть вектором или списком векторов длины DataFrame для использования определенного вектора в качестве ключа присоединения вместо столбцов
right_on : метка или список, или массив-подобный объект
Имена полей для присоединения в правом DataFrame или вектор/список векторов по документации left_on
left_index : булево значение, по умолчанию False
Использовать индекс из левого DataFrame в качестве ключа(ей) присоединения. Если это MultiIndex, количество ключей в другом DataFrame (либо индекс, либо количество столбцов) должно совпадать с количеством уровней
right_index : булево значение, по умолчанию False
Использовать индекс из правого DataFrame в качестве ключа. Аналогичные замечания, как и для left_index
sort : булево значение, по умолчанию False
Сортировать ключи присоединения лексикографически в результирующем DataFrame. Если False, порядок ключей присоединения зависит от типа присоединения (параметр how)
suffixes : последовательность длины 2 (кортеж, список, ...)
Суффикс, применяемый к совпадающим именам столбцов в левой и правой частях соответственно
copy : булево значение, по умолчанию True
Если False, не копировать данные впустую
indicator : булево значение или строка, по умолчанию False
Если True, добавляет столбец в результирующий DataFrame с названием “_merge” со сведениями о источнике каждой строки. Если строка, столбец со сведениями о источнике каждой строки будет добавлен в результирующий DataFrame, и столбец будет именоваться значением строки. Столбец со сведениями имеет тип Categorical и принимает значение “left_only” для наблюдений, чьи ключи присоединения присутствуют только в левом DataFrame, “right_only” для наблюдений, чьи ключи присоединения присутствуют только в правом DataFrame, и “both”, если ключ присоединения наблюдения присутствует в обоих DataFrame.
Новое в версии 0.17.0.
validate : строка, по умолчанию None
Если указано, проверяет, соответствует ли тип присоединения заданному типу.
- “one_to_one” или “1:1”: проверяет, уникальны ли ключи присоединения в обоих левом и правом наборах данных.
- “one_to_many” или “1:m”: проверяет, уникальны ли ключи присоединения в левом наборе данных.
- “many_to_one” или “m:1”: проверяет, уникальны ли ключи присоединения в правом наборе данных.
- “many_to_many” или “m:m”: разрешено, но не приводит к проверкам.
Новое в версии 0.21.0.
Возвращает: merged : DataFrame
Тип результата будет таким же, как у ‘left’, если это подкласс DataFrame.
См. также
Примеры
>>> A >>> B lkey value rkey value 0 foo 1 0 foo 5 1 bar 2 1 bar 6 2 baz 3 2 qux 7 3 foo 4 3 bar 8>>> A.merge(B, left_on='lkey', right_on='rkey', how='outer') lkey value_x rkey value_y 0 foo 1 foo 5 1 foo 4 foo 5 2 bar 2 bar 6 3 bar 2 bar 8 4 baz 3 NaN NaN 5 NaN NaN qux 7
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.21.1/generated/pandas.DataFrame.merge.html