如何将单列中短横线分隔的多组词汇拆分至4个独立列
按固定分隔符拆分单列内容为多列的实现方法
原始数据情况
当前单列表格(命名为Column 1)的每行内容为通过-拼接的文本,共3行,具体内容:
group A - group B - group C - group Dtype A - type B - type C - type Dcolour A - colour B - colour C - colour D
目标拆分效果
需要将每行拼接的文本拆分为4个独立列,最终表结构如下:
| Column 1 | Column 2 | Column 3 | Column 4 |
|---|---|---|---|
| group A | group B | group C | group D |
| type A | type B | type C | type D |
| colour A | colour B | colour C | colour D |
具体实现方案
根据常用的处理工具不同,对应操作如下:
Excel/WPS 可视化操作
- 选中需要拆分的原始数据列
- 依次点击顶部菜单栏「数据」-「分列」
- 分列向导第一步选择「分隔符号」模式,进入下一步
- 第二步在分隔符设置里勾选「其他」,输入框中填入
-(注意分隔符是空格+短横+空格,避免拆分后内容残留多余空格) - 预览区域确认拆分结果符合预期后,点击完成即可,原列会自动拆分生成4个相邻的独立列
Pandas 代码处理
如果需要批量处理类似数据,可以用Python实现自动拆分:
import pandas as pd # 读取包含原始单列的数据源 raw_df = pd.read_excel("你的原始数据文件路径.xlsx") # 按指定分隔符拆分文本,自动生成4个列 split_result = raw_df["Column 1"].str.split(" - ", expand=True) # 给拆分后的列命名 split_result.columns = ["Column 1", "Column 2", "Column 3", "Column 4"] # 导出最终拆分结果 split_result.to_excel("拆分完成结果.xlsx", index=False)
数据库SQL处理
如果数据存储在数据库中,可以用字符串截取函数完成拆分(以MySQL语法为例):
SELECT -- 取第1段拆分内容 SUBSTRING_INDEX(SUBSTRING_INDEX(original_column, ' - ', 1), ' - ', -1) AS `Column 1`, -- 取第2段拆分内容 SUBSTRING_INDEX(SUBSTRING_INDEX(original_column, ' - ', 2), ' - ', -1) AS `Column 2`, -- 取第3段拆分内容 SUBSTRING_INDEX(SUBSTRING_INDEX(original_column, ' - ', 3), ' - ', -1) AS `Column 3`, -- 取第4段拆分内容 SUBSTRING_INDEX(SUBSTRING_INDEX(original_column, ' - ', 4), ' - ', -1) AS `Column 4` FROM 存储原始数据的表名;
内容的提问来源于stack exchange,提问作者L Cornwall
相关产品推荐
相关产品推荐

