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

如何以英文逗号为分隔符拆分数据集单列多值并展开行?

拆分多值列的实现方案

以下是几种不同场景下的可行实现方法:

方法1:Excel/Power Query(非编程场景)

适合日常办公用Excel处理数据的情况:

  • 选中目标数据区域,切换到「数据」选项卡,点击「从表格/区域」(Excel 2016及以上版本支持)
  • 在Power Query编辑器中,选中包含多值的B列,点击「转换」选项卡的「拆分列」→「按分隔符」
  • 选择英文逗号作为分隔符,拆分方式选择「拆分为行」
  • 完成后点击「关闭并上载」,即可得到拆分后的行式数据

方法2:Python Pandas(编程场景)

适合有编程基础,需要批量处理数据的情况:

import pandas as pd

# 构造原始数据(也可通过read_csv等方法读取外部数据)
data = {
    'A:': [1, 2, 3],
    'B:': ['A,B,C,D', 'E,F', 'G,H,I'],
    'C:': ['Square', 'Triangle', 'Circle']
}
df = pd.DataFrame(data)

# 拆分B列并将列表展开为单独行
df = df.assign(**{'B:': df['B:'].str.split(',')}).explode('B:').reset_index(drop=True)

# 输出结果
print(df)

方法3:SQL(数据库场景)

适合直接在数据库中处理表数据的情况,以MySQL为例:

WITH RECURSIVE split_data AS (
    SELECT 
        `A:` AS A_col,
        SUBSTRING_INDEX(`B:`, ',', 1) AS B_val,
        SUBSTRING(`B:`, LOCATE(',', `B:`) + 1) AS remaining_B,
        `C:` AS C_col
    FROM your_table
    WHERE `B:` IS NOT NULL AND `B:` != ''
    UNION ALL
    SELECT 
        A_col,
        SUBSTRING_INDEX(remaining_B, ',', 1) AS B_val,
        SUBSTRING(remaining_B, LOCATE(',', remaining_B) + 1) AS remaining_B,
        C_col
    FROM split_data
    WHERE remaining_B IS NOT NULL AND remaining_B != ''
)
SELECT A_col AS `A:`, B_val AS `B:`, C_col AS `C:`
FROM split_data
ORDER BY A_col;

如果是PostgreSQL,写法更简洁:

SELECT 
    `A:`,
    unnest(string_to_array(`B:`, ',')) AS `B:`,
    `C:`
FROM your_table
ORDER BY `A:`;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:05:10