所以我有一个极坐标列/系列,它是数字字符串。
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的应用。
这似乎有效,但我想知道是否有更好的方法或任何单独的步骤。
最佳答案
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/