所以我有一个极坐标列/系列,它是数字字符串。
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的应用。
这似乎有效,但我想知道是否有更好的方法或任何单独的步骤。
.str.split("")
不再在结果中插入前导/尾随空字符串。
.cast()
结果列表。
s.str.split("").cast(pl.List(pl.Int64))
shape: (3,)
Series: 'a' [list[i64]]
[
[1, 1, 1]
[1, 2, 3]
[1, 0, 1]
]