我有一个带有列的极坐标数据框
a_0, a_1, a_2, b_0, b_1, b_2
。我想将其转换为更长更薄的数据框(3 x 行,但只有 2 列 a
和 b
),以便 a
包含 a_0[0], a_1[0], a_2[0], a_0[1], a_1[1], a_2[1],...
,对于 b
也是如此。我怎样才能做到这一点?
您可以针对每列分别将数据帧从宽向长逆透视,然后连接结果。
import polars.selectors as cs
pl.concat(
[
df.melt(value_vars=cs.starts_with("a"), value_name="a").drop("variable"),
df.melt(value_vars=cs.starts_with("b"), value_name="b").drop("variable"),
],
how="horizontal"
)