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

如何在Pandas中按最后一个0拆分数字字符串列为两列?

解决Pandas DataFrame列按最后一个0拆分的问题

针对你的需求,这里提供两种实用方法:

方法一:固定位置拆分(适合格式统一的场景)

如果目标列的字符串格式固定(比如示例中都是前4位为连续0,后续跟数字),直接用字符串切片就能快速拆分:

# 假设目标列名为 'num_str'
df[['prefix', 'suffix']] = df['num_str'].str[:4], df['num_str'].str[4:]

执行后即可得到你期望的两列结果。

方法二:动态按最后一个0拆分(通用场景)

如果字符串中0的位置不固定,需要动态定位最后一个0的位置来拆分,可以自定义函数结合apply实现:

def split_at_last_zero(s):
    # 找到最后一个0的索引
    last_zero_pos = s.rfind('0')
    if last_zero_pos == -1:
        # 没有0的情况,返回原字符串和空值
        return (s, '')
    # 拆分:前半部分包含最后一个0,后半部分是之后的内容
    return (s[:last_zero_pos+1], s[last_zero_pos+1:])

# 应用函数并拆分到新列
df[['prefix', 'suffix']] = df['num_str'].apply(split_at_last_zero).apply(pd.Series)

这个方法会自动适配不同位置的最后一个0,比如对于字符串"001230456",会拆分为"001230"和"456",完全符合按最后一个0分割的需求。

你之前用的str.split是基于明确分隔符的拆分方式,这里因为没有现成分隔符,所以用位置切片或自定义函数的方式更适配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:05:28