如何将结构不定的多个长行划分并重组成新格式
例题描述和简单分析
有 csv 文件 csv.csv,数据如下所示:
csv 文件里 N 条记录是横向摆放的,第1行是每条记录的国家字段的值,第2行是每条记录的其他字段名,第3行是每条记录的其他字段值。现在要将该文件整理成规范的行式数据,结果如下:
解法及简要说明
在集算器中编写脚本 p1.dfx,如下所示:
A |
|
1 |
=file("csv.csv").read() |
2 |
=A1.split@n(",") |
3 |
=transpose(A2).run(if(~(1)=="",~(1)=~[-1](1))) |
4 |
=create(country,cate,value) |
5 |
>A3.(A4.record(~)) |
6 |
=A4.pivot(country;cate,value) |
7 |
=file("result.csv").export@ct(A6) |
简要说明:
A1 把 csv 的数据读成串
A2 把串拆成序列的序列
A3 转置序列的序列,把第一列国家补完整
A4 建空序表(country,cate,value)
A5 将 A3 填入序表
A6 用 pivot 函数行转列
A7 结果导出到 result.csv
执行程序后,result.csv 就是需要的结果。
英文版