我正在尝试使用 python Polars 将多列合并为 1 列。但是我似乎没有找到一种(优雅的)方法将列组合成列表。
我只需要将 b - e 列合并为 1 列。 a 列需要保持原样。我尝试使用
map_elements
来实现这一目标。尽管事实上这不起作用,但它也很慢,而且可能不是最好的方法。
有人可以帮助我如何实现这个结果吗?
我拥有的数据框:
df = pl.from_repr("""
┌─────┬─────┬─────┬─────┬─────┐
│ a ┆ b ┆ c ┆ d ┆ e │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 │
╞═════╪═════╪═════╪═════╪═════╡
│ 0.1 ┆ 1.1 ┆ 2.1 ┆ 3.1 ┆ 4.1 │
│ 0.2 ┆ 1.2 ┆ 2.2 ┆ 3.2 ┆ 4.2 │
│ 0.3 ┆ 1.3 ┆ 2.3 ┆ 3.3 ┆ 4.3 │
└─────┴─────┴─────┴─────┴─────┘
""")
我需要的结果:
shape: (3, 2)
┌─────┬──────────────────────┐
│ a ┆ value │
│ --- ┆ --- │
│ f64 ┆ list[f64] │
╞═════╪══════════════════════╡
│ 0.1 ┆ [1.1, 2.1, 3.1, 4.1] │
│ 0.2 ┆ [1.2, 2.2, 3.2, 4.2] │
│ 0.3 ┆ [1.3, 2.3, 3.3, 4.3] │
└─────┴──────────────────────┘