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

如何用Pandas移除首个空格后的零(支持正则及其他方法)

问题:移除DataFrame字符串中首个空格后的零

原DataFrame结构:

number
+123 1234
+123 0123
+123+123 01234
+123 0123 0023

期望生成新列filtered,仅移除首个空格后的零,输出如下:

number            filtered
+123 1234         +123 1234
+123 0123         +123 123
+123+123 01234    +123+123 1234
+123 0123 0023    +123 123 0023

之前尝试的代码df['filtered'] = df['number'].replace(r'\s(.)', '', regex=True)会移除空格后的任意第一个字符,不符合需求。


解决方案

方法1:正则表达式替换

使用正则匹配首个空格后的0,保留空格仅移除该0:

df['filtered'] = df['number'].replace(r'(\s)0', r'\1', regex=True)
  • 正则(\s)0匹配空格(捕获为分组1)后跟0的组合
  • 替换为\1即保留原空格,去掉后续的0,精准满足需求

方法2:字符串分割处理(非正则)

通过分割首个空格、判断后续字符开头、重新拼接实现:

def process_string(s):
    if ' ' not in s:
        return s
    # 按第一个空格分割为前后两部分
    prefix, suffix = s.split(' ', 1)
    # 如果后缀以0开头,去掉首字符
    if suffix.startswith('0'):
        suffix = suffix[1:]
    return f"{prefix} {suffix}"

df['filtered'] = df['number'].apply(process_string)
  • 适合不熟悉正则的场景,逻辑直观易懂,能明确控制仅处理首个空格后的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:45:36