polars unnest
for dataframe
Decompose struct columns into separate columns for each of their fields. The new columns will be inserted into the dataframe at the location of the struct column.
This command requires a plugin
The polars unnest
command resides in the polars
plugin. To use this command, you must install and register nu_plugin_polars
. See the Plugins chapter in the book for more information.
Signature
> polars unnest {flags} ...rest
Parameters
...rest
: columns to unnest
Input/output types:
input | output |
---|---|
any | any |
Examples
Unnest a dataframe
> [[id person]; [1 {name: "Bob", age: 36}] [2 {name: "Betty", age: 63}]]
| polars into-df -s {id: i64, person: {name: str, age: u8}}
| polars unnest person
| polars get id name age
| polars sort-by id
╭───┬────┬───────┬─────╮
│ # │ id │ name │ age │
├───┼────┼───────┼─────┤
│ 0 │ 1 │ Bob │ 36 │
│ 1 │ 2 │ Betty │ 63 │
╰───┴────┴───────┴─────╯
Unnest a lazy dataframe
> [[id person]; [1 {name: "Bob", age: 36}] [2 {name: "Betty", age: 63}]]
| polars into-df -s {id: i64, person: {name: str, age: u8}}
| polars into-lazy
| polars unnest person
| polars select (polars col id) (polars col name) (polars col age)
| polars collect
| polars sort-by id
╭───┬────┬───────┬─────╮
│ # │ id │ name │ age │
├───┼────┼───────┼─────┤
│ 0 │ 1 │ Bob │ 36 │
│ 1 │ 2 │ Betty │ 63 │
╰───┴────┴───────┴─────╯