剔除 csv 文件中的重复数据
例题描述和简单分析
有 csv 文件 csv.csv,如下所示:
a,123,value1,a@email.com
a,123,value1,a@email.com
a,123,value1,a@email.com
a,123,Value7,a@email.com
b,567,Value5,b@email.com
b,567,Value6,b@email.com
b,567,Value6,b@email.com
需要剔除 csv 文件中的重复数据,结果如下:
a,123,Value7,a@email.com
a,123,value1,a@email.com
b,567,Value5,b@email.com
b,567,Value6,b@email.com
解法及简要说明
方法1:序表
在集算器中编写脚本 p1.dfx,如下所示:
A |
|
1 |
=file("csv.csv").import@c() |
2 |
=A1.group@1(#1,#2,#3,#4) |
3 |
=file("result.csv").export@c(A2) |
简要说明:
A1 csv文件读成序表
A2 按所有列分组,取每一个分组的第一条记录组成排列后返回,也就是按所有列去重
A3 结果导出至 result.csv
方法2:字符串
在集算器中编写脚本 p1.dfx,如下所示:
A |
|
1 |
=file("csv.csv").read@n() |
2 |
=A1.id() |
3 |
=file("result.csv").export(A2) |
简要说明:
A1 csv每行读成串,返回串序列
A2 对串序列去重
A3 结果导出至 result.csv
方法3:序列的序列
在集算器中编写脚本 p1.dfx,如下所示:
A |
|
1 |
=file("csv.csv").import@w() |
2 |
=A1.id() |
3 |
=file("result.csv").export@c(A2) |
简要说明:
A1 csv文件读成序列的序列
A2 对序列的序列去重
A3 结果导出至 result.csv
英文版