如何提取CSV中元组内数值并拆分为多行多列?
解决建议
方法一:Python脚本(灵活通用)
适合批量或复杂场景,直接用脚本自动化处理:
import csv import re # 匹配元组的正则规则 tuple_pattern = re.compile(r'\((\d+), (\d+), (\d+)\)') with open('input.csv', 'r', newline='') as in_file, open('output.csv', 'w', newline='') as out_file: csv_reader = csv.reader(in_file) csv_writer = csv.writer(out_file) # 写入目标表头 csv_writer.writerow(['Column A', 'Column B', 'Column C']) # 跳过原文件的表头行 next(csv_reader) for line in csv_reader: # 提取当前单元格里的所有元组 all_tuples = tuple_pattern.findall(line[0]) # 逐个元组写入新文件 for tpl in all_tuples: csv_writer.writerow(tpl)
使用步骤:
- 将原CSV保存为
input.csv - 运行脚本后,会生成符合要求的
output.csv
方法二:Excel/Google Sheets手动处理
适合少量数据快速调整:
- 打开原CSV,选中包含元组的列
- 查找替换:把
)(替换为换行符(Excel按Ctrl+Enter输入换行,Google Sheets按Ctrl+Enter),让每个元组单独占一行 - 数据分列:选中处理后的列,用「数据分列」功能,以
(、)、,作为分隔符,将每个元组拆成三列 - 清理空单元格,调整成目标表格格式
方法三:命令行工具(awk)
适合熟悉终端操作的用户,直接执行命令:
awk -F'[() ]+' 'NR>1{for(i=2;i<=NF;i+=4)print $(i)","$(i+1)","$(i+2)}' input.csv > output.csv
说明:
NR>1跳过原文件表头- 用
(、)、空格作为分隔符,提取每个元组的三个元素并输出为CSV格式
内容的提问来源于stack exchange,提问作者alwan01
相关产品推荐
相关产品推荐

