我正在Python中使用Polars(版本0.19.0),并面临着将字符串列转换为数字同时强制错误的问题。我的目标是将字符串转换为整数,其中非数字字符串被替换为空值。
这是我的数据框的示例:
import polars as pl
df = pl.DataFrame({
"str_column": ["3", "4", "unavailable", "random_String", "17"]
})
我想将 str_column 转换为整数,期望得到以下输出: | str_column | 列 |------------| | 3 | | 4 | |空 | |空 | | 17 |
我尝试像这样使用
to_integer(strict=False)
:
df.with_columns(pl.col("str_column").str.parse_int(strict=False))
但是,这会将所有内容转换为 null,而不是预期的输出。
如何在 Polars 中实现所需的转换(最好使用原生 Polars 操作)?
像这样
In [4]: import polars as pl
...:
...: df = pl.DataFrame({
...: "str_column": ["3", "4", "unavailable", "random_String", "17"]
...: })
In [5]: df.with_columns(parsed=pl.col('str_column').cast(pl.Int64, strict=False))
Out[5]:
shape: (5, 2)
┌───────────────┬────────┐
│ str_column ┆ parsed │
│ --- ┆ --- │
│ str ┆ i64 │
╞═══════════════╪════════╡
│ 3 ┆ 3 │
│ 4 ┆ 4 │
│ unavailable ┆ null │
│ random_String ┆ null │
│ 17 ┆ 17 │
└───────────────┴────────┘