如何用关键字段关联两个 csv 文件
现有两个csv文件,分别是:
data1.csv:
id |
date |
amount |
1 |
2019/9/8 |
3000 |
1 |
2019/10/8 |
1500 |
2 |
2019/11/20 |
1560 |
2 |
2008/5/20 |
2060 |
data2.csv:
id |
name |
age |
location |
1 |
smith |
32 |
NY |
2 |
jack |
24 |
LA |
需要利用id列,将这两个csv的数据关联起来:
id |
date |
amount |
name |
age |
location |
1 |
2020/9/1 |
3000 |
smith |
32 |
NY |
1 |
2020/2/3 |
1500 |
smith |
32 |
NY |
2 |
2020/8/8 |
1560 |
jack |
25 |
LA |
2 |
2020/12/17 |
2060 |
jack |
25 |
LA |
借助集算器可以很方便地完成这件事。可去润乾网站下载集算器职场版,运行时需要一个授权,免费版本就够用。
1. 在集算器中编写脚本joincsv.dfx:
A |
B |
|
1 |
=file("data1.csv").import@ct() |
/读取csv文件内容 |
2 |
=file("data2.csv").import@ct().keys(id) |
/读取csv文件内容,并将id设为主键 |
3 |
=A1.join(id,A2,name,age,location) |
/用A1的外键id与A2关联 |
4 |
=file("data3.csv").export@ct(A3) |
/导出关联后的结果到data3.csv |
2. 执行脚本,得到关联后的csv文件:data3.csv。
通常情况下,data1.csv这样的文件可能很大,而data2.csv这样的代码数据通常较小可以装入内存,这时我们只需要将A1改为:=file("data1.csv").cursor@ct(),利用游标来解决文件太大,无法装入内存的问题。