polars.LazyFrame.merge_sorted
-
Объединяет два отсортированных DataFrame по ключу сортировки.
Результат этой операции также будет отсортирован. Ответственность за сортировку фреймов по ключу (ключам) в порядке возрастания, с нулевыми ключами в конце, лежит на вызывающем коде; в противном случае порядок результата не будет иметь смысла.
Схемы обоих LazyFrame должны совпадать.
- Параметры:
-
- other
-
Другой DataFrame, который необходимо объединить
- key
-
Столбец (столбцы), по которому отсортированы фреймы. Можно передать имя одного столбца или последовательность имён столбцов. Если указано несколько ключей, фреймы объединяются так, как если бы они были отсортированы по этим ключам в указанном порядке.
- maintain_order
-
Если
True, гарантируется, что при совпадении ключей порядок результата будет отдавать приоритет левому фрейму: строки из левого фрейма будут расположены перед строками из правого фрейма, если их ключи совпадают.
Примечания
Если не задано
maintain_order=True, порядок строк результата при совпадении ключей в обоих DataFrame не гарантируется.Ключи должны быть отсортированы в порядке возрастания.
Примеры
>>> df0 = pl.LazyFrame( ... {"name": ["steve", "elise", "bob"], "age": [42, 44, 18]} ... ).sort("age") >>> df0.collect() shape: (3, 2) ┌───────┬─────┐ │ name ┆ age │ │ --- ┆ --- │ │ str ┆ i64 │ ╞═══════╪═════╡ │ bob ┆ 18 │ │ steve ┆ 42 │ │ elise ┆ 44 │ └───────┴─────┘ >>> df1 = pl.LazyFrame( ... {"name": ["anna", "megan", "steve", "thomas"], "age": [21, 33, 42, 20]} ... ).sort("age") >>> df1.collect() shape: (4, 2) ┌────────┬─────┐ │ name ┆ age │ │ --- ┆ --- │ │ str ┆ i64 │ ╞════════╪═════╡ │ thomas ┆ 20 │ │ anna ┆ 21 │ │ megan ┆ 33 │ │ steve ┆ 42 │ └────────┴─────┘ >>> df0.merge_sorted(df1, key="age").collect() shape: (7, 2) ┌────────┬─────┐ │ name ┆ age │ │ --- ┆ --- │ │ str ┆ i64 │ ╞════════╪═════╡ │ bob ┆ 18 │ │ thomas ┆ 20 │ │ anna ┆ 21 │ │ megan ┆ 33 │ │ steve ┆ 42 │ │ steve ┆ 42 │ │ elise ┆ 44 │ └────────┴─────┘Для объединения фреймов, отсортированных по составному ключу, можно передать несколько ключей. Фреймы объединяются так, как если бы они были отсортированы сначала по
key_1, затем поkey_2.>>> df0 = pl.LazyFrame({"key_1": [1, 1, 3], "key_2": [1, 4, 2]}) >>> df1 = pl.LazyFrame({"key_1": [1, 2, 3], "key_2": [2, 1, 1]}) >>> df0.merge_sorted(df1, key=["key_1", "key_2"]).collect() shape: (6, 2) ┌───────┬───────┐ │ key_1 ┆ key_2 │ │ --- ┆ --- │ │ i64 ┆ i64 │ ╞═══════╪═══════╡ │ 1 ┆ 1 │ │ 1 ┆ 2 │ │ 1 ┆ 4 │ │ 2 ┆ 1 │ │ 3 ┆ 1 │ │ 3 ┆ 2 │ └───────┴───────┘
LazyFrame.merge_sorted(
other: LazyFrame,
key: str | Sequence[str],
*,
maintain_order: bool = False,
) → LazyFrame
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/lazyframe/api/polars.LazyFrame.merge_sorted.html