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

技术求助:如何拆分手机号并复制对应DataFrame行?

解决方案:拆分手机号列并复制DataFrame行

没问题,这事儿用pandas的两个方法就能轻松搞定——str.split()和explode(),完美匹配你的需求。下面是完整的实现步骤和代码:

首先,先构造你给出的输入DataFrame:

import pandas as pd

# 输入DataFrame
data = {
    'col1': ['a', 'b', 'c', 'd'],
    'mob_no': ['9382949201/3245622535', '8383459345/4325562678', '8976247543/1827472398', '7844329432'],
    'col3': [45, 67, 89, 9]
}
df = pd.DataFrame(data)

接下来执行拆分和行复制操作:

# 1. 把mob_no列按"/"拆分成列表格式
df['mob_no'] = df['mob_no'].str.split('/')
# 2. 对mob_no列执行explode,将列表中的每个元素拆成单独的行,其他列自动匹配对应值
result_df = df.explode('mob_no', ignore_index=True)

运行完上面的代码后,result_df就是你想要的输出:

col1       mob_no  col3
0    a  9382949201    45
1    a  3245622535    45
2    b  8383459345    67
3    b  4325562678    67
4    c  8976247543    89
5    c  1827472398    89
6    d  7844329432     9

简单说下原理:

  • str.split('/')会把每个带"/"的手机号字符串拆成列表,单个手机号的行则会生成只有一个元素的列表
  • explode('mob_no')会把列表里的每个元素单独生成一行,同时保留该行对应的col1和col3的值;ignore_index=True是为了重置结果的索引,让它从0开始连续排列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 18:48:15