Spec-Zone.ru › Polars

polars.DataFrame.update

DataFrame.update(
    other: DataFrame,
    on: str | Sequence[str] | None = None,
    how: Literal['left',
    'inner',
    'full'] = 'left',
    *,
    left_on: str | Sequence[str] | None = None,
    right_on: str | Sequence[str] | None = None,
    include_nulls: bool = False,
    maintain_order: MaintainOrderJoin | None = 'left',
) → DataFrame

Обновляет значения в этом DataFrame значениями из other.

Предупреждение

Эта функциональность считается нестабильной. Она может быть изменена в любой момент, и это не будет считаться нарушающим обратную совместимость изменением.

Параметры:
other

DataFrame, который будет использоваться для обновления значений

on

Имена столбцов, по которым будет выполнено объединение. Если задано None (значение по умолчанию), в качестве ключа объединения используется неявный индекс строк каждого фрейма.

how{‘left’, ‘inner’, ‘full’}
  • ‘left’ сохраняет все строки из левой таблицы; строки могут дублироваться, если несколько строк правого фрейма соответствуют ключу строки левого фрейма.
  • ‘inner’ сохраняет только те строки, ключ которых присутствует в обоих фреймах.
  • ‘full’ обновляет существующие строки с совпадающими ключами и одновременно добавляет все новые строки из указанного фрейма.
left_on

Столбец(ы) левого DataFrame для объединения.

right_on

Столбец(ы) правого DataFrame для объединения.

include_nulls

Заменять значения в левом фрейме значениями null из правого фрейма. Если задано False (значение по умолчанию), значения null в правом фрейме игнорируются.

maintain_order{‘none’, ‘left’, ‘right’, ‘left_right’, ‘right_left’}

Порядок строк входных данных, который нужно сохранить. Подробности см. в join(). В отличие от join эта функция по умолчанию сохраняет порядок строк левого фрейма.

Примечания

Это синтаксический сахар для объединения left/inner, которое по умолчанию сохраняет порядок строк левого DataFrame, с необязательным coalesce, если include_nulls = False.

Примеры

>>> df = pl.DataFrame(
...     {
...         "A": [1, 2, 3, 4],
...         "B": [400, 500, 600, 700],
...     }
... )
>>> df
shape: (4, 2)
┌─────┬─────┐
│ A   ┆ B   │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪═════╡
│ 1   ┆ 400 │
│ 2   ┆ 500 │
│ 3   ┆ 600 │
│ 4   ┆ 700 │
└─────┴─────┘
>>> new_df = pl.DataFrame(
...     {
...         "B": [-66, None, -99],
...         "C": [5, 3, 1],
...     }
... )

Обновление значений df ненулевыми значениями из new_df по индексу строки:

>>> df.update(new_df)
shape: (4, 2)
┌─────┬─────┐
│ A   ┆ B   │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪═════╡
│ 1   ┆ -66 │
│ 2   ┆ 500 │
│ 3   ┆ -99 │
│ 4   ┆ 700 │
└─────┴─────┘

Обновление значений df ненулевыми значениями из new_df по индексу строки с сохранением только строк, общих для обоих фреймов:

>>> df.update(new_df, how="inner")
shape: (3, 2)
┌─────┬─────┐
│ A   ┆ B   │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪═════╡
│ 1   ┆ -66 │
│ 2   ┆ 500 │
│ 3   ┆ -99 │
└─────┴─────┘

Обновление значений df ненулевыми значениями из new_df с использованием стратегии полного внешнего объединения, в которой явно задаются столбцы объединения для каждого фрейма:

>>> df.update(new_df, left_on=["A"], right_on=["C"], how="full")
shape: (5, 2)
┌─────┬─────┐
│ A   ┆ B   │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪═════╡
│ 1   ┆ -99 │
│ 2   ┆ 500 │
│ 3   ┆ 600 │
│ 4   ┆ 700 │
│ 5   ┆ -66 │
└─────┴─────┘

Обновление значений df, включая значения null из new_df, с использованием стратегии полного внешнего объединения, в которой явно задаются столбцы объединения для каждого фрейма:

>>> df.update(new_df, left_on="A", right_on="C", how="full", include_nulls=True)
shape: (5, 2)
┌─────┬──────┐
│ A   ┆ B    │
│ --- ┆ ---  │
│ i64 ┆ i64  │
╞═════╪══════╡
│ 1   ┆ -99  │
│ 2   ┆ 500  │
│ 3   ┆ null │
│ 4   ┆ 700  │
│ 5   ┆ -66  │
└─────┴──────┘

© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.update.html

Spec-Zone.ru

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