Spec-Zone.ru › pandas 0.23

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 и объединение не происходит по индексам, по умолчанию используется пересечение столбцов в обоих 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” для наблюдений, ключ объединения которых встречается только в левом DataFrame, “right_only” для наблюдений, ключ объединения которых встречается только в правом DataFrame, и “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.

См. также

merge_ordered, merge_asof, DataFrame.join

Примечания

Поддержка указания уровней индекса в качестве параметров 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.DataFrame.merge.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API