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

Метод align

Метод align применяется к DataFrame и возвращает кортеж из двух объектов с одинаковыми индексами и столбцами. Это полезно для операций между таблицами с разными индексами. Метод принимает параметр join, который определяет способ объединения индексов: 'outer' (по умолчанию), 'inner', 'left' или 'right'. Также можно указать ось выравнивания через параметр axis и значение для заполнения пропусков через fill_value.

Синтаксис

df.align(other, join='outer', axis=None, fill_value=None)

Пример

Давайте создадим две таблицы с разными индексами и выровняем их по умолчанию (внешнее объединение):

import pandas as pd df1 = pd.DataFrame({'a': [1, 2, 3]}, index=[0, 1, 2]) df2 = pd.DataFrame({'b': [10, 20]}, index=[1, 3]) res1, res2 = df1.align(df2) print(res1)

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

a 0 1.0 1 2.0 2 3.0 3 NaN

Пример

Теперь выровняем таблицы с внутренним объединением (останутся только общие индексы):

import pandas as pd df1 = pd.DataFrame({'a': [1, 2, 3, 4]}, index=[0, 1, 2, 3]) df2 = pd.DataFrame({'b': [10, 20, 30]}, index=[1, 2, 4]) res1, res2 = df1.align(df2, join='inner') print(res1)

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

a 1 2 2 3

Пример

Выровняем таблицы с левосторонним объединением (индексы первой таблицы сохраняются):

import pandas as pd df1 = pd.DataFrame({'a': [1, 2, 3, 4]}, index=[0, 1, 2, 3]) df2 = pd.DataFrame({'b': [10, 20, 30]}, index=[1, 2, 4]) res1, res2 = df1.align(df2, join='left') print(res1)

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

a 0 1 1 2 2 3 3 4

Пример

Выровняем таблицы по оси столбцов, а не по индексам. Для этого используем параметр axis:

import pandas as pd df1 = pd.DataFrame({'a': [1, 2], 'b': [3, 4]}) df2 = pd.DataFrame({'b': [5, 6], 'c': [7, 8]}) res1, res2 = df1.align(df2, axis=1) print(res1)

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

a b c 0 1.0 3.0 NaN 1 2.0 4.0 NaN

Пример

Вместо NaN можно подставить значение-заполнитель с помощью параметра fill_value:

import pandas as pd df1 = pd.DataFrame({'a': [1, 2, 3]}, index=[0, 1, 2]) df2 = pd.DataFrame({'b': [10, 20]}, index=[1, 3]) res1, res2 = df1.align(df2, fill_value=0) print(res1)

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

a 0 1 1 2 2 3 3 0

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

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