pandas.DataFrame.align
- DataFrame.align(other, join='outer', axis=None, level=None, copy=None, fill_value=None, method=_NoDefault.no_default, limit=_NoDefault.no_default, fill_axis=_NoDefault.no_default, broadcast_axis=_NoDefault.no_default)[source]
-
Выравнивание двух объектов по их осям с указанным методом объединения.
Метод объединения задается для каждого индекса оси.
- Параметры:
-
- other:DataFrame или Series
- join:{‘outer’, ‘inner’, ‘left’, ‘right’}, по умолчанию ‘outer’
-
Тип выравнивания, который нужно выполнить.
left: использовать только ключи из левой рамки, сохранить порядок ключей.
right: использовать только ключи из правой рамки, сохранить порядок ключей.
outer: использовать объединение ключей из обеих рамок, отсортировать ключи лексикографически.
inner: использовать пересечение ключей из обеих рамок, сохранить порядок ключей из левой рамки.
- axis:разрешённая ось другого объекта, по умолчанию None
-
Выравнивание по индексу (0), столбцам (1) или обоим (None).
- level:int или имя уровня, по умолчанию None
-
Трансляция по уровню, сопоставление значений индекса по переданному уровню MultiIndex.
- copy:bool, по умолчанию True
-
Всегда возвращает новые объекты. Если copy=False и переиндексация не требуется, то возвращаются исходные объекты.
Примечание
Ключевое слово copy изменит поведение в pandas 3.0. Copy-on-Write будет включено по умолчанию, что означает, что все методы с ключевым словом copy будут использовать механизм ленивой копии, чтобы отложить копирование и игнорировать ключевое слово copy. Ключевое слово copy будет удалено в будущей версии pandas.
Вы уже можете получить будущее поведение и улучшения, включив копирование при записи
pd.options.mode.copy_on_write = True - fill_value:скаляр, по умолчанию np.nan
-
Значение, используемое для пропущенных значений. По умолчанию NaN, но может быть любым «совместимым» значением.
- method:{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, по умолчанию None
-
Метод, используемый для заполнения пробелов в переиндексированных Series:
pad / ffill: распространение последнего действительного наблюдения вперед к следующему действительному.
backfill / bfill: использование следующего действительного наблюдения для заполнения пробела.
Устарело начиная с версии 2.1.
- limit:int, по умолчанию None
-
Если указан метод, это максимальное количество последовательных значений NaN, которые нужно заполнить вперед/назад. Другими словами, если есть пробел с более чем указанным количеством последовательных NaN, он будет заполнен только частично. Если метод не указан, это максимальное количество записей по всей оси, где будут заполнены NaN. Должен быть больше 0, если не None.
Устарело начиная с версии 2.1.
- fill_axis:{0 или ‘index’} для Series, {0 или ‘index’, 1 или ‘columns’} для DataFrame, по умолчанию 0
-
Ось заполнения, метод и предел.
Устарело начиная с версии 2.1.
- broadcast_axis:{0 или ‘index’} для Series, {0 или ‘index’, 1 или ‘columns’} для DataFrame, по умолчанию None
-
Трансляция значений по этой оси, если выравниваются два объекта с разными измерениями.
Устарело начиная с версии 2.1.
- Возвращает:
-
- кортеж из (Series/DataFrame, типа other)
-
Выровненные объекты.
Примеры
>>> df = pd.DataFrame( ... [[1, 2, 3, 4], [6, 7, 8, 9]], columns=["D", "B", "E", "A"], index=[1, 2] ... ) >>> other = pd.DataFrame( ... [[10, 20, 30, 40], [60, 70, 80, 90], [600, 700, 800, 900]], ... columns=["A", "B", "C", "D"], ... index=[2, 3, 4], ... ) >>> df D B E A 1 1 2 3 4 2 6 7 8 9 >>> other A B C D 2 10 20 30 40 3 60 70 80 90 4 600 700 800 900Выравнивание по столбцам:
>>> left, right = df.align(other, join="outer", axis=1) >>> left A B C D E 1 4 2 NaN 1 3 2 9 7 NaN 6 8 >>> right A B C D E 2 10 20 30 40 NaN 3 60 70 80 90 NaN 4 600 700 800 900 NaNМы также можем выровнять по индексу:
>>> left, right = df.align(other, join="outer", axis=0) >>> left D B E A 1 1.0 2.0 3.0 4.0 2 6.0 7.0 8.0 9.0 3 NaN NaN NaN NaN 4 NaN NaN NaN NaN >>> right A B C D 1 NaN NaN NaN NaN 2 10.0 20.0 30.0 40.0 3 60.0 70.0 80.0 90.0 4 600.0 700.0 800.0 900.0Наконец, по умолчанию axis=None выровняет и по индексу, и по столбцам:
>>> left, right = df.align(other, join="outer", axis=None) >>> left A B C D E 1 4.0 2.0 NaN 1.0 3.0 2 9.0 7.0 NaN 6.0 8.0 3 NaN NaN NaN NaN NaN 4 NaN NaN NaN NaN NaN >>> right A B C D E 1 NaN NaN NaN NaN NaN 2 10.0 20.0 30.0 40.0 NaN 3 60.0 70.0 80.0 90.0 NaN 4 600.0 700.0 800.0 900.0 NaN
© 2008–2022, 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/2.2.2/reference/api/pandas.DataFrame.align.html