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

如何根据第三列拆分数据行?数据格式转换技术咨询

拆分多行记录的简便方法

需求说明

需要将每行包含多组记录的数据,拆分为每行对应一组记录的格式:

原始数据

file_name    text                                           1
2a.txt         0      0.712518  0.61525  0.43918     0.2065 1     0.635078  0.81175  0.292786    0.0925
2b.txt         2      0.551273  0.5705   0.30198     0.0922 0     0.550212  0.31125  0.486563    0.2455

目标格式

file_name    text  
2a.txt         0      0.712518  0.61525  0.43918     0.2065
2a.txt         1      0.635078  0.81175  0.292786    0.0925
2b.txt         2      0.551273  0.5705   0.30198     0.0922
2b.txt         0      0.550212  0.31125  0.486563    0.2455

简便实现方法

方法1:用awk命令(命令行快速处理)

直接用awk就能一键拆分,核心逻辑是提取文件名后,按每5个字段为一组循环输出:

NR==1 {print "file_name    text  "; next}
{
    fname=$1
    n=2
    while (n <= NF) {
        printf "%-12s %-6s %-12s %-10s %-12s %-10s\n", fname, $(n), $(n+1), $(n+2), $(n+3), $(n+4)
        n +=5
    }
}

用法:

  1. 把上述代码保存为split_records.awk
  2. 执行命令:awk -f split_records.awk 你的输入文件名.txt
    或者直接用单行命令:
awk 'NR==1 {print "file_name    text  "; next} {fname=$1; n=2; while(n<=NF){printf "%-12s %-6s %-12s %-10s %-12s %-10s\n", fname, $(n), $(n+1), $(n+2), $(n+3), $(n+4); n+=5}}' input.txt

(注:printf是为了保证输出格式对齐,和目标格式一致)

方法2:用Python脚本(灵活自定义)

如果需要调整字段数或做额外处理,写个简单脚本更方便:

with open("input.txt", "r") as infile, open("output.txt", "w") as outfile:
    # 写入表头
    outfile.write("file_name    text  \n")
    # 跳过第一行原始表头,处理数据行
    for line in infile.readlines()[1:]:
        line = line.strip()
        if not line:
            continue
        parts = line.split()
        filename = parts[0]
        # 从第2个字段开始,每5个字段为一组
        for i in range(1, len(parts), 5):
            group = parts[i:i+5]
            # 按格式拼接输出
            out_line = f"{filename}         {'      '.join(group)}\n"
            outfile.write(out_line)

用法:运行脚本后,output.txt就是拆分好的结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:10:38