Spec-Zone.ru › Polars

polars.LazyFrame.merge_sorted

LazyFrame.merge_sorted(
    other: LazyFrame,
    key: str | Sequence[str],
    *,
    maintain_order: bool = False,
) → LazyFrame

Объединяет два отсортированных 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     │
└───────┴───────┘

© 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

Spec-Zone.ru

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