You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Polars数据框中Cabin列拆分后转为指定类型多列

Polars拆分Cabin列并转换格式的解决方案

完整代码实现

train = pl.from_repr("""
┌───────┐
│ Cabin │
│ ---   │
│ str   │
╞═══════╡
│ B/0/P │
│ F/0/S │
│ A/0/S │
│ A/0/S │
│ F/1/S │
└───────┘
""")

# 基于你已完成的拆分操作,继续执行以下步骤
result = (
    train
    .select(pl.col("Cabin").str.split(by="/"))
    .unnest("Cabin")
    .rename({"field_0": "A", "field_1": "B", "field_2": "C"})
    .with_columns(pl.col("B").cast(pl.Int8))
)

print(result)

分步解释

  • 展开列表列为多列:调用unnest("Cabin"),将拆分得到的列表类型列直接拆分为3个独立的字符串列,Polars会自动命名为field_0、field_1、field_2。
  • 重命名列:用rename()方法把默认列名替换为你需要的A、B、C。
  • 转换列类型:通过cast(pl.Int8)将B列从字符串类型转换为8位整数类型(i8),匹配预期输出的格式。

执行后输出结果与你预期的完全一致:

shape: (5, 3)
┌─────┬─────┬─────┐
│ A   ┆ B   ┆ C   │
│ --- ┆ --- ┆ --- │
│ str ┆ i8  ┆ str │
╞═════╪═════╪═════╡
│ B   ┆ 0   ┆ P   │
│ F   ┆ 0   ┆ S   │
│ A   ┆ 0   ┆ S   │
│ A   ┆ 0   ┆ S   │
│ F   ┆ 1   ┆ S   │
└─────┴─────┴─────┘

内容的提问来源于stack exchange,提问作者Regular Tech Guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 09:21:00