如何展平列表列表类型的列的元素,使其成为包含列表类型元素的列?

问题描述 投票:0回答:1

考虑以下示例:

import polars as pl

pl.DataFrame(pl.Series("x", ["1, 0", "2,3", "5 4"])).with_columns(
    pl.col("x").str.split(",").list.eval(pl.element().str.split(" "))
)
shape: (3, 1)
┌────────────────────┐
│ x                  │
│ ---                │
│ list[list[str]]    │
╞════════════════════╡
│ [["1"], ["", "0"]] │
│ [["2"], ["3"]]     │
│ [["5", "4"]]       │
└────────────────────┘

我想展平列的元素,因此元素不是嵌套列表,而是只是一个列表。我该怎么做?

python-polars
1个回答
1
投票

在列表中的每个

explode
上调用
element

import polars as pl

pl.DataFrame(pl.Series("x", ["1, 0", "2,3", "5 4"])).with_columns(
    pl.col("x")
    .str.split(",")
    .list.eval(pl.element().str.split(" "))
    .list.eval(pl.element().explode())
)
shape: (3, 1)
┌────────────────┐
│ x              │
│ ---            │
│ list[str]      │
╞════════════════╡
│ ["1", "", "0"] │
│ ["2", "3"]     │
│ ["5", "4"]     │
└────────────────┘
© www.soinside.com 2019 - 2024. All rights reserved.