You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Polars:使用原生表达式API替换下划线后的字符为大写

Polars:使用原生表达式API替换下划线后的字符为大写

当然有啦!你完全可以用Polars的原生表达式API来实现这个需求,不用依赖map_elements和Python的re模块,不仅代码更简洁,性能也会更出色(尤其是处理大数据集的时候)。

你的需求很明确:把字符串中下划线后面的小写字母转成大写,同时去掉下划线,比如accessible_bidding_strategy.id要变成accessibleBiddingStrategy.id。下面是用Polars原生API实现的完整方案:

import polars as pl

# 调整打印配置,方便查看完整的字符串结果
pl.Config(fmt_str_lengths=100)

# 初始化示例数据
df = pl.DataFrame(
    {
        "id": [
            "accessible_bidding_strategy.id",
            "accessible_bidding_strategy.name",
            "accessible_bidding_strategy.owner_customer_id",
        ]
    }
)

# 用原生表达式完成转换
df = df.with_columns(
    pl.col("id")
    .str.replace(r"_(\w)", r"\u\1")
    .alias("parsed_id")
)

print(df)

输出结果

shape: (3, 2)
┌───────────────────────────────────────────────┬───────────────────────────────────────────┐
│ id                                            ┆ parsed_id                                 │
│ ---                                           ┆ ---                                       │
│ str                                           ┆ str                                       │
╞═══════════════════════════════════════════════╪═══════════════════════════════════════════╡
│ accessible_bidding_strategy.id                ┆ accessibleBiddingStrategy.id              │
│ accessible_bidding_strategy.name              ┆ accessibleBiddingStrategy.name            │
│ accessible_bidding_strategy.owner_customer_id ┆ accessibleBiddingStrategy.ownerCustomerId │
└───────────────────────────────────────────────┴───────────────────────────────────────────┘

代码说明

这里的核心是Polars原生的str.replace方法:

  • 正则表达式_(\w)匹配下划线+任意单词字符,并把下划线后的字符捕获为第一个分组
  • 替换字符串\u\1的作用是:将捕获到的第一个分组(也就是下划线后面的字符)转成大写,同时自动去掉原来的下划线

和原方法的对比

和你之前用map_elements结合re.sub的方法相比,原生表达式有这些优势:

  • 无需额外引入Python的re模块,代码更聚合
  • 性能更优:原生表达式在Polars的内部引擎执行,避免了Python层面的循环开销,大数据场景下速度提升明显
  • 类型更安全:不需要手动指定return_dtype,Polars会自动推断结果类型

备注:内容来源于stack exchange,提问作者dikesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 13:53:01