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

如何使用pandas拆分配对文本并转换为指定结构DataFrame

Pandas夫妻配对数据拆分方案

你可以直接用pandas内置的字符串处理、行展开方法完成转换,不需要写逐行遍历的自定义函数,处理速度更快。

核心处理步骤

  • 先拆分多组配对:Pair列里不同配对用英文逗号加空格分隔,调用str.split(', ')把每个单元格的多组配对转成列表
  • 展开为单行:用explode('Pair')把列表里的每一组配对拆成独立的行,行上会自动保留对应的Place字段值
  • 拆分夫妻姓名:对单个配对的字符串,按空格分隔拆成Husband、Wife两列
  • 整理结构:删掉原始的Pair列,调整列顺序得到最终结果

完整可运行代码

import pandas as pd

# 这里是构造示例原始数据,实际使用时替换成你自己的DataFrame即可
df = pd.DataFrame({
    'Place': ['Boat Semeru', 'Boat Merbabu'],
    'Pair': [
        'Andy.Johnson Mary.Smith, Adam.Roger Bella.Huri',
        'Sena.Batra Lera.Clara, Tracy.Roger Bella.Salsa, Iman.Veva Umi.Zuba'
    ]
})

# 核心转换逻辑
df = df.assign(Pair=df['Pair'].str.split(', ')).explode('Pair').reset_index(drop=True)
df[['Husband', 'Wife']] = df['Pair'].str.split(' ', expand=True)
df = df[['Place', 'Husband', 'Wife']]

运行结果

执行代码后输出的DataFrame结构和你预期完全一致:

Place        Husband         Wife
0   Boat Semeru  Andy.Johnson   Mary.Smith
1   Boat Semeru    Adam.Roger   Bella.Huri
2  Boat Merbabu     Sena.Batra   Lera.Clara
3  Boat Merbabu   Tracy.Roger  Bella.Salsa
4  Boat Merbabu      Iman.Veva     Umi.Zuba

适配提示:如果你的原始数据里逗号前后的空格不规整(比如存在多空格、无空格、制表符的情况),可以把配对拆分规则改成正则匹配,将对应代码替换为df['Pair'].str.split(r',\s*'),就能兼容各类不规范的分隔格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:09:27