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

如何在PySpark中按对应关系拆分多列逗号分隔数据

多列关联拆分解决方案

针对你遇到的多列逗号分隔数据需要按对应位置拆分的问题,直接对单列拆分再explode会产生笛卡尔积,正确的做法是先将目标列转为列表,再同时对多列执行explode操作,确保对应位置的元素匹配:

步骤1:构造示例DataFrame(已有可跳过)

import pandas as pd

df = pd.DataFrame({
    'col1': [1],
    'col2': ['123, 124'],
    'col3': ['Employer, Employer'],
    'col4': ['EAGLE, ANIMAL']
})

步骤2:将目标列拆分转为列表

# 按", "分割字符串,转为列表格式
df[['col2', 'col3', 'col4']] = df[['col2', 'col3', 'col4']].apply(lambda x: x.str.split(', '))

步骤3:同时对多列执行explode

# 传入多个列名,一次性拆分并保持对应关系
df = df.explode(['col2', 'col3', 'col4'], ignore_index=True)

执行后得到的结果如下:

col1col2col3col4
1123EmployerEAGLE
1124EmployerANIMAL

备选方案:适用于旧版Pandas(低于1.3.0)

如果你的Pandas版本不支持多列explode,可以用逐行处理的方式:

df = df.apply(
    lambda row: pd.Series({
        'col1': row['col1'],
        'col2': row['col2'].split(', '),
        'col3': row['col3'].split(', '),
        'col4': row['col4'].split(', ')
    }).explode(),
    axis=1
).reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:32:46