Spec-Zone.ru › pandas 2

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API