有谁知道是否可以有效地替换极坐标中嵌套列表的元素。例如:
s = pl.Series('s', [[1,2,3],[3,4,5]])
# replace 3 with 10 to get [[1,2,10],[10,4,5]]
我已经尝试过
s.to_frame().with_columns(pl.when(pl.col('s') == 3)...)
但是
pl.when
不喜欢
List[bool]
我已经尝试过
s.list.eval(pl.element() == 3)
但除了拿回我的面具之外,什么也做不了
使用
apply
方法,并使用列表推导来替换嵌套列表中的值。
import polars as pl
s = pl.Series('s', [[1,2,3],[3,4,5]])
s = s.apply(lambda lst: [10 if x == 3 else x for x in lst])
print(s)
这将打印出:
shape: (2,)
Series: 's' [list]
[
[1, 2, 10]
[10, 4, 5]
]
这种方法遍历了序列中的每个嵌套列表,并使用列表推导创建了一个新的列表,其中 3 被替换为 10。
标签:python,python-polars From: 78786208