Polars中如何高效将单个字节(Binary/字符串)转为整数?
高效实现单个字符转ASCII码并比较的Polars方案
直接使用Polars内置的矢量化字符串方法str.ascii_code()即可,完全不需要依赖效率低下的map_elements逐元素处理,示例代码如下:
import polars as pl s = pl.Series(["A", "B", "C"]) result = s.str.ascii_code() == pl.Series([65, 66, 67]) print(result)
这个方法底层基于Rust实现矢量化运算,性能和纯Rust扩展持平,比你之前的两种实现快数个数量级。
如果需要确保只处理单个字符的元素,可以先添加长度校验:
import polars as pl s = pl.Series(["A", "BB", "C"]) # 先过滤出长度为1的字符串 filtered_s = s.filter(s.str.lengths() == 1) result = filtered_s.str.ascii_code() == pl.Series([65, 67]) print(result)
内容的提问来源于stack exchange,提问作者cge
相关产品推荐
相关产品推荐

