polars.LazyFrame.unpivot
-
Преобразует DataFrame из широкого формата в длинный.
При необходимости оставляет столбцы-идентификаторы.
Эта функция позволяет преобразовать DataFrame в формат, в котором один или несколько столбцов являются переменными-идентификаторами (индексом), а все остальные столбцы, рассматриваемые как измеряемые переменные (on), «разворачиваются» в строки, оставляя только два столбца, не являющихся идентификаторами: ‘variable’ и ‘value’.
- Параметры:
-
- on
-
Столбец или столбцы либо селектор или селекторы, используемые как переменные-значения; если
onпуст, столбцы использоваться не будут. Если задано значениеNone(по умолчанию), будут использоваться все столбцы, отсутствующие вindex. - index
-
Столбец или столбцы либо селектор или селекторы, используемые как переменные-идентификаторы.
- variable_name
-
Имя столбца
variable. По умолчанию — “variable” - value_name
-
Имя столбца
value. По умолчанию — “value” - streamable
-
устарел
Примечания
Если вы знакомы с pandas, эта операция похожа на
pandas.DataFrame.melt, но вместоid_varsиспользуетсяindex, а вместоvalue_vars—on. В других фреймворках эта операция может называтьсяpivot_longer.Порядок строк в результате не определён.
Примеры
>>> lf = pl.LazyFrame( ... { ... "a": ["x", "y", "z"], ... "b": [1, 3, 5], ... "c": [2, 4, 6], ... } ... ) >>> import polars.selectors as cs >>> lf.unpivot(cs.numeric(), index="a").collect() shape: (6, 3) ┌─────┬──────────┬───────┐ │ a ┆ variable ┆ value │ │ --- ┆ --- ┆ --- │ │ str ┆ str ┆ i64 │ ╞═════╪══════════╪═══════╡ │ x ┆ b ┆ 1 │ │ y ┆ b ┆ 3 │ │ z ┆ b ┆ 5 │ │ x ┆ c ┆ 2 │ │ y ┆ c ┆ 4 │ │ z ┆ c ┆ 6 │ └─────┴──────────┴───────┘
LazyFrame.unpivot(
on: ColumnNameOrSelector | Sequence[ColumnNameOrSelector] | None = None,
*,
index: ColumnNameOrSelector | Sequence[ColumnNameOrSelector] | None = None,
variable_name: str | None = None,
value_name: str | None = None,
streamable: bool = True,
) → LazyFrame
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/lazyframe/api/polars.LazyFrame.unpivot.html