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

如何在Polars DataFrame中从右侧拆分列?

Polars实现从右拆分Location列的方法

问题背景

需要将以空格分隔的Location列拆分为城市、州、邮编三部分。在Pandas中可通过rsplit从右侧指定拆分次数,但使用Polars的str.split_exact(' ',2)从左侧拆分时,会出现城市名含空格(如La Mirada)的条目丢失邮编的情况(拆分结果为La, Mirada, CA),需要实现从右侧拆分的逻辑。

Pandas原有实现

先从右侧拆分1次分离出「城市+州」和邮编,再拆分城市与州:

df[["City State", "Zip"]] = df["Location"].str.rsplit(" ", n=1, expand=True)
# 后续拆分City和State

Polars解决方案

Polars提供了str.rsplit方法,与Pandas的rsplit逻辑一致,支持从右侧指定拆分次数:

步骤1:拆分「城市+州」与邮编

使用str.rsplit从右侧拆分1次,展开为两列:

# Polars 0.19.0及以上版本支持expand参数
df = df.with_columns(
    pl.col("Location").str.rsplit(" ", n=1, expand=True).alias(["City State", "Zip"])
)

# 低版本Polars可通过列表索引实现
df = df.with_columns(
    pl.col("Location").str.rsplit(" ", n=1).alias("split_temp")
).with_columns(
    pl.col("split_temp").list.get(0).alias("City State"),
    pl.col("split_temp").list.get(1).alias("Zip")
).drop("split_temp")

步骤2:拆分城市与州

同样用str.rsplit从右侧拆分「城市+州」列,分离出城市和州:

df = df.with_columns(
    pl.col("City State").str.rsplit(" ", n=1, expand=True).alias(["City", "State"])
).drop("City State")

说明

str.split_exact是从左侧按固定次数拆分,无法处理城市名含空格的场景;而从右侧拆分优先分离出格式固定的邮编(5位数字),再处理可能含空格的城市名,能避免信息丢失。

内容的提问来源于stack exchange,提问作者MrEvo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:05:26