剔除 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

问答搜集

https://stackoverflow.com/questions/62313801/compare-two-columns-in-csv-and-write-only-unique-values-to-another-csv