Spec-Zone.ru › pandas 0.21

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: использовать индекс вызываемого фрейма (или столбец, если указан on)
  • right: использовать индекс фрейма other
  • outer: сформировать объединение индекса вызываемого фрейма (или столбца, если указан on) с индексом фрейма other и отсортировать его лексикографически
  • inner: сформировать пересечение индекса вызываемого фрейма (или столбца, если указан on) с индексом фрейма other, сохраняя порядок вызываемого

lsuffix : строка

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

rsuffix : строка

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

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

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

>>> 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 будет иметь ключ в качестве индекса.

>>> 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, но мы можем использовать любой столбец в вызываемом. Этот метод сохраняет исходный индекс вызываемого в результате.

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

Spec-Zone.ru

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