你如何转换为 polars 中的 unsigned int?

How do you cast to an unsigned int in polars?

我尝试了 pl.col('foo').cast(np.uint32),但遇到了 NotImplementedError。

我问是因为 col.str.lengths() returns 类型为 UInt32 的列和连接的列必须是同一类型。

Polars 不是 numpy,因此在投射时需要一个 polars dtype

>>> s = pl.Series("a", [-1, 0, 1, 2, 3])
>>> s
shape: (5,)
Series: 'a' [i64]
[
    -1
    0
    1
    2
    3
]
>>> s.cast(pl.UInt32, strict=False)
shape: (5,)
Series: 'a' [u32]
[
    null
    0
    1
    2
    3
]

默认的转换行为是 strict。在这种情况下这会引发错误,因为我们不能将负整数转换为无符号整数。