python - Polars 将数字字符串转换为列表

标签 python python-polars

所以我有一个极坐标列/系列,它是数字字符串。

s = pl.Series("a", ["111","123","101"])
s
shape: (3,)
Series: 'a' [str]
[
    "111"
    "123"
    "101"
]

我想将每个字符串转换为整数列表。 我找到了一个可行的解决方案,但我不确定它是否是最佳的。

s.str.split("").arr.shift(1).arr.slice(2).arr.eval(pl.element().str.parse_int(10))
shape: (3,)
Series: 'a' [list[i32]]
[
    [1, 1, 1]
    [1, 2, 3]
    [1, 0, 1]
]

我首先在每个点分割字符串。对于第一行,这给出了 ["","1","1","1",""]。由此我想删除第一个和最后一个条目(空字符串)。由于我事先不知道条目的长度,并且切片不允许指定结束索引,因此我使用了 shift -> slice 版本,但我觉得必须有更好的方法。

最后是parse_int的应用。

这似乎有效,但我想知道是否有更好的方法或任何单独的步骤。

最佳答案

.extract_all().cast()

s.str.extract_all(r"\d").cast(pl.List(pl.Int64))
shape: (3,)
Series: 'a' [list[i64]]
[
    [1, 1, 1]
    [1, 2, 3]
    [1, 0, 1]
]

关于python - Polars 将数字字符串转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76351947/

相关文章:

python - GAE : remote_api and Application Default Credentials

python-polars - 如何动态创建字段

python - Spotfire 表格可视化换行文本,迭代多个具有相同名称的 vis,并使垂直滚动变得平滑

python - 在 python 中声明文件夹路径的正确方法是什么?

python - 如何使用 shell 脚本/C/Python 在文件每一行的末尾添加迭代文本?

python - 如何将顶点属性添加到使用 TupleList 创建的图形?

python-polars - 基于单一条件的多列重新分配

types - Polars 中是否有相当于 pandas dtypes 命令的命令?

python - 如何在极坐标中进行条件缩放?

python - 极地 python : interpolation in the groupby context