我想读取CSV文件,其中一些列是这种类型的字符串:"[1.0, 0.0, -2.3]"
.
因此,我希望将该字符串解析为一个浮点数列表,为此,我使用了以下代码.
import polars as pl
df = pl.scan_csv(
"foo.csv",
).with_columns(
pl.col("^list.*$").str.strip("[ ]").str.split(",").cast(pl.List(pl.Float64)),
).collect()
其中一些字符串是空列表:"[]"
;当我解析它们时,我得到了一个类似以下的列表:[null]
.
我想删除其中有包含空元素的列表的所有行.
这是我试着使用的代码
df.filter(
pl.all_horizontal(
~pl.col("^list.*$").list.contains(None)
)
)
但它给了我这个错误
InvalidOperationError: `is_in` operation not supported for dtype `list[f64]`
我提供了一个小示例文件来自己测试代码:
list1,list2,list3
"[]","[0.0, 1.2]","[3.4]"
"[102, 506]","[12, 5.2]","[2.3]"
"[15]","[0.5, 8.2]","[]"
在本例中,我只希望将第二行保留在DataFrame中.