Spec-Zone.ru › Nushell

polars join для ленивого фрейма

Объединяет ленивый фрейм с другим ленивым фреймом.

Сигнатура

> polars join {flags} (other) (left_on) (right_on)

Флаги

  • --inner, -i: Внутреннее объединение ленивых фреймов (по умолчанию).
  • --left, -l: Левое объединение ленивых фреймов.
  • --full, -f: Полное объединение ленивых фреймов.
  • --cross, -c: Перекрёстное объединение ленивых фреймов.
  • --coalesce-columns: Задаёт стратегию объединения столбцов coalesce. Наиболее полезно при использовании с --full, при котором объединение столбцов иначе не выполняется.
  • --nulls-equal: Объединение по значениям null. По умолчанию значения null никогда не совпадают.
  • --suffix, -s {string}: Суффикс для столбцов с одинаковыми именами.

Параметры

  • other: LazyFrame для объединения.
  • left_on: Столбец(ы) слева для объединения.
  • right_on: Столбец(ы) справа для объединения.

Типы входных и выходных данных:

входные данные выходные данные
polars_dataframe polars_dataframe
polars_lazyframe polars_lazyframe

Примеры

Объединение двух ленивых фреймов данных

> let df_a = ([[a b c];[1 "a" 0] [2 "b" 1] [1 "c" 2] [1 "c" 3]] | polars into-lazy)
    let df_b = ([["foo" "bar" "ham"];[1 "a" "let"] [2 "c" "var"] [3 "c" "const"]] | polars into-lazy)
    $df_a | polars join $df_b a foo | polars collect
╭───┬───┬───┬───┬─────┬─────╮
│ # │ a │ b │ c │ bar │ ham │
├───┼───┼───┼───┼─────┼─────┤
│ 0 │ 1 │ a │ 0 │ a   │ let │
│ 1 │ 2 │ b │ 1 │ c   │ var │
│ 2 │ 1 │ c │ 2 │ a   │ let │
│ 3 │ 1 │ c │ 3 │ a   │ let │
╰───┴───┴───┴───┴─────┴─────╯

Объединение обычного фрейма данных с ленивым фреймом данных

> let df_a = ([[a b c];[1 "a" 0] [2 "b" 1] [1 "c" 2] [1 "c" 3]] | polars into-df)
    let df_b = ([["foo" "bar" "ham"];[1 "a" "let"] [2 "c" "var"] [3 "c" "const"]] | polars into-lazy)
    $df_a | polars join $df_b a foo
╭───┬───┬───┬───┬─────┬─────╮
│ # │ a │ b │ c │ bar │ ham │
├───┼───┼───┼───┼─────┼─────┤
│ 0 │ 1 │ a │ 0 │ a   │ let │
│ 1 │ 2 │ b │ 1 │ c   │ var │
│ 2 │ 1 │ c │ 2 │ a   │ let │
│ 3 │ 1 │ c │ 3 │ a   │ let │
╰───┴───┴───┴───┴─────┴─────╯

Полное объединение двух фреймов данных с объединением столбцов

> let table1 = [[A B]; ["common" "common"] ["table1" "only"]] | polars into-df
                let table2 = [[A C]; ["common" "common"] ["table2" "only"]] | polars into-df
                $table1 | polars join -f $table2 --coalesce-columns A A
╭───┬────────┬────────┬────────╮
│ # │   A    │   B    │   C    │
├───┼────────┼────────┼────────┤
│ 0 │ common │ common │ common │
│ 1 │ table2 │        │ only   │
│ 2 │ table1 │ only   │        │
╰───┴────────┴────────┴────────╯

Объединение одного обычного фрейма данных с другим с помощью перекрёстного объединения

> let tokens = [[monopoly_token]; [hat] [shoe] [boat]] | polars into-df
    let players = [[name, cash]; [Alice, 78] [Bob, 135]] | polars into-df
    $players | polars select (polars col name) | polars join --cross $tokens | polars collect
╭───┬───────┬────────────────╮
│ # │ name  │ monopoly_token │
├───┼───────┼────────────────┤
│ 0 │ Alice │ hat            │
│ 1 │ Alice │ shoe           │
│ 2 │ Alice │ boat           │
│ 3 │ Bob   │ hat            │
│ 4 │ Bob   │ shoe           │
│ 5 │ Bob   │ boat           │
╰───┴───────┴────────────────╯

Объединение по выражениям столбцов

>
                let df1 = [[a b]; ["2025-01-01 01:00:00+0000" 1] ["2025-01-02 05:36:42+0000" 2]] | polars into-df --schema {a: "datetime<ms,UTC>", b: i8}

                let df2 = [[a c]; ["2025-01-01 00:00:00+0000" a] ["2025-01-02 00:00:00+0000" b]] | polars into-df --schema {a: "datetime<ms,UTC>", c: str}

                $df1 | polars join $df2 [(polars col a | polars truncate 1d)] [a]
╭───┬────────────┬───┬────────────┬───╮
│ # │     a      │ b │    a_x     │ c │
├───┼────────────┼───┼────────────┼───┤
│ 0 │ a year ago │ 1 │ a year ago │ a │
│ 1 │ a year ago │ 2 │ a year ago │ b │
╰───┴────────────┴───┴────────────┴───╯

Объединение по значениям null

> [[col1 col2]; [2 a] [3 b] [null c]] | polars into-df
                | polars join (
                    [[col1 col3]; [2 x] [3 y] [null z]] | polars into-df
                ) [col1] [col1] --nulls-equal
                | polars collect
╭───┬──────┬──────┬──────╮
│ # │ col1 │ col2 │ col3 │
├───┼──────┼──────┼──────┤
│ 0 │    2 │ a    │ x    │
│ 1 │    3 │ b    │ y    │
│ 2 │      │ c    │ z    │
╰───┴──────┴──────┴──────╯

Copyright © 2019–2026 The Nushell Project DevelopersLicensed under the MIT License.
https://www.nushell.sh/commands/docs/polars_join.html

Spec-Zone.ru

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