如何将 Polars 中的字符串列转换为数字强制错误

问题描述 投票:0回答:1

我正在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 操作)?

python python-polars
1个回答
0
投票

像这样


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     │
└───────────────┴────────┘
© www.soinside.com 2019 - 2024. All rights reserved.