总的来说,我对 Polars 和 Python 都很陌生。我有一个有点不寻常的问题,需要一些帮助。我有一个包含 50 多个 0/1 列的数据框。我需要创建一个新列,其中包含每列的逗号分隔列表,其中包含 1 但使用部分列名。如果 hccx = 1,则将 x 附加到字符串列。一个简化的例子:
df=pl.DataFrame(
{'id':[1,2,3], 'hcc1':[0,1,1],'hcc2':[0,0,1],'hcc5':[0,1,1],'hcc8':[1,0,0]}
)
shape: (3, 5)
┌─────┬──────┬──────┬──────┬──────┐
│ id ┆ hcc1 ┆ hcc2 ┆ hcc5 ┆ hcc8 │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ i64 ┆ i64 ┆ i64 │
╞═════╪══════╪══════╪══════╪══════╡
│ 1 ┆ 0 ┆ 0 ┆ 0 ┆ 1 │
│ 2 ┆ 1 ┆ 0 ┆ 1 ┆ 0 │
│ 3 ┆ 1 ┆ 1 ┆ 1 ┆ 0 │
└─────┴──────┴──────┴──────┴──────┘
我想创建一个新列(字符串类型)hccall,如下所示:
ID | 呼呼 |
---|---|
1 | 8 |
2 | 1,5 |
3 | 1,2,5 |
我想某种类型的列表理解在以“hcc”开头的列上循环会起作用,但我有点卡住了。我可以创建一个循环,但不确定如何从循环内附加到列。有什么巧妙的想法吗?