Spec-Zone.ru › Polars

polars.LazyFrame.update

LazyFrame.update(
    other: LazyFrame,
    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',
) → LazyFrame

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

движок:В памятиПотоковыйРаспределённый

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

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

Параметры:
other

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

on

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

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

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

right_on

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

include_nulls

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

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

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

Примечания

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

Примеры

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

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

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

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

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

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

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

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

>>> lf.update(
...     new_lf, left_on="A", right_on="C", how="full", include_nulls=True
... ).collect()
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/lazyframe/api/polars.LazyFrame.update.html

Spec-Zone.ru

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