Polars 0.20.23调用extract_many报错:无该属性的问题咨询
解决Polars 0.20.23中
str.extract_many不存在的错误 错误原因
你使用的Polars 0.20.23版本不包含str.extract_many方法,这个API是在Polars 0.21.0版本才新增的,因此调用时会触发AttributeError。
两种解决方案
1. 升级Polars到兼容版本
直接升级Polars到0.21.0及以上,你的原有代码无需修改即可运行。执行升级命令:
pip install --upgrade polars
2. 不升级,使用旧版本兼容的替代方法
在Polars 0.20.x中,用str.extract_groups实现多捕获组提取需求,示例如下:
提取为结构体并展开为单独列
import polars as pl data = { "text": [ "Year: 2020, Month: January", "Year: 2021, Month: February", "Year: 2022, Month: March", "Year: 2023, Month: April" ] } df = pl.DataFrame(data) pattern = r"Year: (\d{4}), Month: (\w+)" # 提取多捕获组为结构体列 df_extracted = df.with_columns( pl.col("text").str.extract_groups(pattern).alias("year_month") ) # 展开为year和month列 df_extracted = df_extracted.with_columns( pl.col("year_month").struct.field("0").cast(pl.Int32).alias("year"), pl.col("year_month").struct.field("1").alias("month") ).drop("year_month") print(df_extracted)
提取为列表格式(模拟extract_many的输出)
如果需要和extract_many类似的列表输出,可以将结构体转为列表:
df_extracted = df.with_columns( pl.col("text").str.extract_groups(pattern).struct.to_list().alias("year_month") ) print(df_extracted)
内容的提问来源于stack exchange,提问作者Cam
相关产品推荐
相关产品推荐

