Spec-Zone.ru › pandas 0.20

pandas.DataFrame.join

DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False) [source]

Объединение столбцов с другим DataFrame по индексу или по ключевому столбцу. Эффективное объединение нескольких объектов DataFrame по индексу сразу, передавая список.

Параметры:

other : DataFrame, Series с установленным именем поля или список DataFrame

Индекс должен быть похож на один из столбцов в этом. Если передаётся Series, его атрибут name должен быть установлен, и он будет использован в качестве имени столбца в результирующем объединённом DataFrame

on : имя столбца, кортеж/список имён столбцов или массив

Столбец(ы) в вызываемом объекте для объединения с индексом в other, иначе объединяется по индексу. Если задано несколько столбцов, переданный DataFrame должен иметь MultiIndex. Можно передать массив в качестве ключа объединения, если он ещё не содержится в вызываемом DataFrame. Как операция Excel VLOOKUP

how : {‘left’, ‘right’, ‘outer’, ‘inner’}, по умолчанию: ‘left’

Как обработать операцию с двумя объектами.

  • left: использовать индекс вызываемого DataFrame (или столбец, если задано on)
  • right: использовать индекс other DataFrame
  • outer: сформировать объединение индексов вызываемого DataFrame (или столбца, если задано on) с индексом other DataFrame и отсортировать его лексикографически
  • inner: сформировать пересечение индексов вызываемого DataFrame (или столбца, если задано on) с индексом other DataFrame, сохраняя порядок вызываемого DataFrame

lsuffix : строка

Суффикс, используемый для перекрывающихся столбцов левого DataFrame

rsuffix : строка

Суффикс, используемый для перекрывающихся столбцов правого DataFrame

sort : boolean, по умолчанию False

Отсортировать результирующий DataFrame лексикографически по ключу объединения. Если False, порядок ключа объединения зависит от типа объединения (параметр how)

Возвращаемое значение:

joined : DataFrame

См. также

DataFrame.merge
Для операций по столбцу(ам)-на-столбец(ы)

Примечания

Параметры on, lsuffix и rsuffix не поддерживаются при передаче списка объектов DataFrame

Примеры

>>> caller = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'],
...                        'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']})
>>> caller
    A key
0  A0  K0
1  A1  K1
2  A2  K2
3  A3  K3
4  A4  K4
5  A5  K5
>>> other = pd.DataFrame({'key': ['K0', 'K1', 'K2'],
...                       'B': ['B0', 'B1', 'B2']})
>>> other
    B key
0  B0  K0
1  B1  K1
2  B2  K2

Объединение DataFrames по их индексам.

>>> caller.join(other, lsuffix='_caller', rsuffix='_other')
>>>     A key_caller    B key_other
    0  A0         K0   B0        K0
    1  A1         K1   B1        K1
    2  A2         K2   B2        K2
    3  A3         K3  NaN       NaN
    4  A4         K4  NaN       NaN
    5  A5         K5  NaN       NaN

Если мы хотим объединить по ключевым столбцам, нам нужно установить ключ в качестве индекса как в вызываемом, так и в other DataFrame. Объединённый DataFrame будет иметь ключ в качестве своего индекса.

>>> caller.set_index('key').join(other.set_index('key'))
>>>      A    B
    key
    K0   A0   B0
    K1   A1   B1
    K2   A2   B2
    K3   A3  NaN
    K4   A4  NaN
    K5   A5  NaN

Ещё один вариант объединения по ключевым столбцам — использовать параметр on. DataFrame.join всегда использует индекс other, но мы можем использовать любой столбец в вызываемом DataFrame. Этот метод сохраняет исходный индекс вызываемого DataFrame в результате.

>>> caller.join(other.set_index('key'), on='key')
>>>     A key    B
    0  A0  K0   B0
    1  A1  K1   B1
    2  A2  K2   B2
    3  A3  K3  NaN
    4  A4  K4  NaN
    5  A5  K5  NaN

© 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.20.3/generated/pandas.DataFrame.join.html

Spec-Zone.ru

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