РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
114 of 687 menu

Метод join

Метод join применяется к DataFrame и объединяет его столбцы со столбцами другого DataFrame. Основное отличие от merge в том, что join по умолчанию выполняет объединение по индексам. Первым параметром передаётся другой DataFrame. Параметр how определяет тип объединения: left, right, inner или outer. Параметр on позволяет указать столбец для объединения, если индексы не используются.

Синтаксис

df.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)

Пример

Объединим две таблицы по индексам с помощью левого соединения:

import pandas as pd df1 = pd.DataFrame({ 'a': [1, 2, 3], 'b': [10, 20, 30] }, index=[0, 1, 2]) df2 = pd.DataFrame({ 'c': [100, 200, 300], 'd': [1000, 2000, 3000] }, index=[0, 1, 2]) res = df1.join(df2) print(res)

Результат выполнения кода:

a b c d 0 1 10 100 1000 1 2 20 200 2000 2 3 30 300 3000

Пример

Теперь выполним внутреннее соединение, чтобы оставить только совпадающие индексы:

import pandas as pd df1 = pd.DataFrame({ 'a': [1, 2, 3], 'b': [10, 20, 30] }, index=[0, 1, 2]) df2 = pd.DataFrame({ 'c': [100, 200, 300], 'd': [1000, 2000, 3000] }, index=[1, 2, 3]) res = df1.join(df2, how='inner') print(res)

Результат выполнения кода:

a b c d 1 2 20 200 2000 2 3 30 300 3000

Пример

Объединим таблицы по указанному столбцу вместо индекса, используя параметр on:

import pandas as pd df1 = pd.DataFrame({ 'key': ['x', 'y', 'z'], 'a': [1, 2, 3] }) df2 = pd.DataFrame({ 'key': ['x', 'y', 'z'], 'b': [10, 20, 30] }) res = df1.join(df2.set_index('key'), on='key') print(res)

Результат выполнения кода:

key a b 0 x 1 10 1 y 2 20 2 z 3 30

Пример

Используем суффиксы для различения столбцов с одинаковыми именами:

import pandas as pd df1 = pd.DataFrame({ 'a': [1, 2, 3], 'b': [10, 20, 30] }, index=[0, 1, 2]) df2 = pd.DataFrame({ 'a': [100, 200, 300], 'b': [1000, 2000, 3000] }, index=[0, 1, 2]) res = df1.join(df2, lsuffix='_left', rsuffix='_right') print(res)

Результат выполнения кода:

a_left b_left a_right b_right 0 1 10 100 1000 1 2 20 200 2000 2 3 30 300 3000

Смотрите также

  • метод merge,
    который объединяет таблицы по столбцам
  • метод combine,
    который объединяет таблицы с помощью функции
  • метод combine_first,
    который заполняет пропуски значениями из другой таблицы
  • метод align,
    который выравнивает индексы двух таблиц
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить