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

如何按条件替换pandas number列首个为0的字符为+233

解决方案

核心思路

由于number列已经是字符串类型,仅需要匹配列值开头的第一个0,将其替换为+233即可,非0开头的内容不会被修改。

实现方法

方法1:正则替换(最简洁)

用正则定位符匹配字符串开头的0,一行代码完成处理:

# ^为正则定位符,仅匹配字符串开头的第一个0
df['number'] = df['number'].str.replace(r'^0', '+233', regex=True)

方法2:条件判断(可读性更高)

先筛选出首字符为0的行,再做字符串拼接,逻辑更直观,后续调整规则更方便:

# 筛选首字符为0的行
mask = df['number'].str.startswith('0')
# 去掉首字符0后在头部拼接+233
df.loc[mask, 'number'] = '+233' + df.loc[mask, 'number'].str[1:]

测试验证

修正后的可运行示例代码如下(原示例存在字符串未加引号、0开头整数语法非法的问题):

import pandas as pd

# 构造示例DataFrame,所有值均为字符串类型
df = pd.DataFrame([["ken", "080222333222"], 
                   ["ben", "+233948433"], 
                   ["Paul", "0800000073"]], 
                   columns=['name', 'number'])

# 执行替换操作
df['number'] = df['number'].str.replace(r'^0', '+233', regex=True)
print(df)

运行后输出结果:

name          number
0   ken  +23380222333222
1   ben      +233948433
2  Paul    +233800000073

完全符合需求中Paul行的处理效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:27:02