pandas.merge
-
pandas.merge(left, 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 будут проигнорированы. В противном случае, если соединение выполняется по индексам или по индексу и столбцу/столбцам, индекс будет передан.
Параметры: -
left : DataFrame -
right : DataFrame
how : {‘left’, ‘right’, ‘outer’, ‘inner’}, по умолчанию ‘inner’
- left: использует только ключи из левой таблицы, аналогично левому внешнему соединению в SQL; сохраняет порядок ключей
- right: использует только ключи из правой таблицы, аналогично правому внешнему соединению в SQL; сохраняет порядок ключей
- outer: использует объединение ключей из обеих таблиц, аналогично полному внешнему соединению в SQL; сортирует ключи лексикографически
- inner: использует пересечение ключей из обеих таблиц, аналогично внутреннему соединению в SQL; сохраняет порядок ключей левой таблицы
on : метка или список
Названия столбцов или уровней индекса для соединения. Они должны присутствовать в обоих DataFrame. Если
onравно None и соединение не выполняется по индексам, то по умолчанию используется пересечение столбцов в обоих DataFrame.left_on : метка или список, или массив-подобный объект
Названия столбцов или уровней индекса для соединения в левой DataFrame. Также может быть массивом или списком массивов длиной, равной длине левой DataFrame. Эти массивы обрабатываются как столбцы.
right_on : метка или список, или массив-подобный объект
Названия столбцов или уровней индекса для соединения в правой DataFrame. Также может быть массивом или списком массивов длиной, равной длине правой DataFrame. Эти массивы обрабатываются как столбцы.
left_index : булево значение, по умолчанию False
Использует индекс из левой DataFrame в качестве ключа(ей) для соединения. Если это Многоуровневый индекс, количество ключей в другой 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” для наблюдений, чей ключ соединения встречается только в левой таблице, “right_only” для наблюдений, чей ключ соединения встречается только в правой таблице, и “both”, если ключ соединения наблюдения найден в обеих таблицах.
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.
См. также
Примечания
Поддержка указания уровней индекса в качестве
on,left_on, иright_onпараметров была добавлена в версии 0.23.0Примеры
>>> 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.23.4/generated/pandas.merge.html