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

如何在DataFrame中清理联系电话:移除特殊字符与国际前缀

Pandas 手机号清洗:移除特殊字符与国际前缀保留纯数字

需求说明

需要对包含联系电话的DataFrame的Phone列进行清洗:移除括号、连字符等特殊字符,同时去除国际前缀(如+1),最终保留10位纯数字格式。

原始数据

Id Phone
1  (+1)123-456-7890
2  (123)-(456)-(7890)
3  123-456-7890

期望输出

Id  Phone
1   1234567890
2   1234567890
3   1234567890

解决方案

使用Pandas结合正则表达式完成清洗,步骤如下:

  1. 导入Pandas并创建原始DataFrame:
import pandas as pd

data = {
    'Id': [1, 2, 3],
    'Phone': ['(+1)123-456-7890', '(123)-(456)-(7890)', '123-456-7890']
}
df = pd.DataFrame(data)
  1. 清洗Phone列:
# 移除所有非数字字符
df['Phone'] = df['Phone'].str.replace(r'\D', '', regex=True)
# 处理国际前缀:若为11位且以1开头,保留后10位
df['Phone'] = df['Phone'].apply(lambda x: x[-10:] if len(x) == 11 and x.startswith('1') else x)
  1. 查看结果:
print(df)

代码解释

  • str.replace(r'\D', '', regex=True):利用正则\D匹配所有非数字字符,将其替换为空,得到纯数字字符串。
  • apply函数判断:针对带国际前缀的11位号码(如11234567890),截取最后10位;对于本身就是10位的号码,直接保留,确保结果统一为10位纯数字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:45:37