Polars:如何同时筛选以D结尾且为datetime类型的列执行with_columns?
同时筛选名称以D结尾且为Datetime类型的列(Polars)
你可以通过组合正则匹配和类型判断的条件,用逻辑运算符&实现“且”的筛选需求,有两种常用写法:
写法一:直接在pl.col()中组合条件
df.with_columns(pl.col("^.+D$", pl.datatypes.Datetime))
这种写法利用pl.col()支持同时传入正则表达式和类型的特性,自动取两者的交集,即同时满足列名匹配^.+D$(以D结尾)且类型为Datetime的列。
写法二:用filter()方法显式组合条件
如果需要更清晰的逻辑表达,可以用列的属性方法来组合条件:
df.with_columns(pl.col().filter( pl.col().name.matches("^.+D$") & pl.col().is_datetime() ))
这里:
pl.col().name.matches("^.+D$")用来校验列名是否符合以D结尾的规则pl.col().is_datetime()用来校验列的类型是否为Datetime&表示逻辑“且”,只有同时满足两个条件的列才会被选中
内容的提问来源于stack exchange,提问作者figs_and_nuts
相关产品推荐
相关产品推荐

