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