Метод 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,
который заполняет пропуски значениями из другой таблицы