[英]How to Split the Contents of a Single Pandas Dataframe Column into Multiple New Columns
[英]How to split the contents of a column into multiple columns inside a polars dataframe
如果我的 dataframe 中有字符串列,即“Cabin”,包含如下所示的值:
Series: 'Cabin' [str]
[
"B/0/P"
"F/0/S"
"A/0/S"
"A/0/S"
"F/1/S"
]
我想知道將'Cabin'列拆分為多個列的過程,如下所示:
一種 | 乙 | C |
---|---|---|
海峽 | i8 | 海峽 |
“乙” | 0 | “P” |
“F” | 0 | “S” |
“一種” | 1個 | “S” |
“C” | 1個 | “S” |
我通過train.select(pl.col("Cabin").str.split(by="/")).to_series()
對列進行了初始拆分操作以獲得
Series: 'Cabin' [list]
[
["B", "0", "P"]
["F", "0", "S"]
["A", "0", "S"]
["A", "0", "S"]
["F", "1", "S"]
]
所以我想知道下一步如何獲得我想要的 output,如上所示。
你越來越近了。 您可以索引到此列表以創建新列,或者使用split_exact
來創建struct
。
>>> s = pl.Series("Cabin", ["B/0/P", "F/0/S", "A/0/S"])
>>> train = s.to_frame()
>>> train
shape: (3, 1)
┌───────┐
│ Cabin │
│ --- │
│ str │
╞═══════╡
│ B/0/P │
├╌╌╌╌╌╌╌┤
│ F/0/S │
├╌╌╌╌╌╌╌┤
│ A/0/S │
└───────┘
索引到列表中(相應地添加更多表達式get(1)
和get(2)
):
>>> train.with_column(pl.col("Cabin").str.split("/").arr.get(0))
shape: (3, 1)
┌───────┐
│ Cabin │
│ --- │
│ str │
╞═══════╡
│ B │
├╌╌╌╌╌╌╌┤
│ F │
├╌╌╌╌╌╌╌┤
│ A │
└───────┘
分裂精確解:
>>> train.select(pl.col("Cabin").str.split_exact("/", 2)).unnest("Cabin")
shape: (3, 3)
┌─────────┬─────────┬─────────┐
│ field_0 ┆ field_1 ┆ field_2 │
│ --- ┆ --- ┆ --- │
│ str ┆ str ┆ str │
╞═════════╪═════════╪═════════╡
│ B ┆ 0 ┆ P │
├╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ F ┆ 0 ┆ S │
├╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ A ┆ 0 ┆ S │
└─────────┴─────────┴─────────┘
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.