pandas.Series.align
- Series.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, тип другого)
-
Выровненные объекты.
Примеры
>>> 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.Series.align.html