polars.LazyFrame.update
-
Обновляет значения в этом
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 │ └─────┴──────┘
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
© 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