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

如何从Phone字段提取分机号至Ext字段并清理Phone字段?

解决Phone与Ext字段的拆分与清理问题

1. 安全拆分Phone字段

使用str.split的expand=True参数拆分,避免无分机行报错:

# 按' x'分割Phone,最多拆1次,生成两列
phone_parts = df['Phone'].str.split(' x', n=1, expand=True)
# 更新Phone为纯号码部分
df['Phone'] = phone_parts[0]
# 临时存储从Phone提取的分机(含下划线)
ext_from_phone = phone_parts[1]

2. 清理并合并分机到Ext字段

先处理提取的分机(去掉下划线),再统一原有Ext的格式(去掉开头的'x'),最后优先用Phone里的分机:

# 清理Phone里提取的分机:移除所有下划线
ext_from_phone_clean = ext_from_phone.str.replace('_', '', regex=False)
# 清理原有Ext:去掉开头的'x'
df['Ext'] = df['Ext'].str.replace('^x', '', regex=True)
# 合并:优先用Phone提取的分机,无则保留原有清理后的Ext
df['Ext'] = ext_from_phone_clean.combine_first(df['Ext'])

3. 可选:统一空值格式

如果需要把空字段转为空字符串而非NaN,执行:

df[['Phone', 'Ext']] = df[['Phone', 'Ext']].fillna('')

完整代码

# 拆分Phone字段
phone_parts = df['Phone'].str.split(' x', n=1, expand=True)
df['Phone'] = phone_parts[0]
ext_from_phone = phone_parts[1]

# 清理合并分机号
ext_from_phone_clean = ext_from_phone.str.replace('_', '', regex=False)
df['Ext'] = df['Ext'].str.replace('^x', '', regex=True)
df['Ext'] = ext_from_phone_clean.combine_first(df['Ext'])

# 可选:空值转空字符串
df[['Phone', 'Ext']] = df[['Phone', 'Ext']].fillna('')

处理后效果:

  • Phone字段仅保留纯号码,如(800) 555-9876
  • Ext字段优先使用从Phone提取的清理后分机,无则保留原有Ext的规范化值,空字段为NaN或空字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:40:05