Skip to main content
 首页 » 编程设计

python之查找并删除 CSV 文件中的重复项

2025年05月04日13freeliver54

我有一个包含三列的大型 CSV 文件 (1.8 GB)。每行包含两个字符串和一个数值。问题是它们是重复的但被交换了。 示例:

Col1,Col2,Col3 
ABC,DEF,123 
ABC,EFG,454 
DEF,ABC,123 

所需的输出如下所示:

Col1,Col2,Col3 
ABC,DEF,123 
ABC,EFG,454 

因为第三行包含与第一行相同的信息。

编辑

数据基本上是这样的(前两列是字符串,第三列是一个数值,4000万行):

Blockquote

请您参考如下方法:

你会处理 awk:

$ awk -F, '++seen[$3]==1' file 

输出:

COL1,Col2,Col3 
ABC,DEF,123 
ABC,EFG,454 

解释:

$ awk -F, '      # set comma as field delimiter 
++seen[$3]==1    # count instances of the third field to hash, printing only first 
' file 

更新:

$ awk -F, '++seen[($1<$2?$1 FS $2:$2 FS $1)]==1' file 

输出:

COL1,Col2,Col3 
ABC,DEF,123 
ABC,EFG,454 

它对第一个和第二个字段的每个满足组合进行哈希处理,使得 "ABC,DEF"=="DEF,ABC"并计算他们只打印第一个。 ($1<$2?$1 FS $2:$2 FS $1) : 如果第一个字段小于第二个,哈希 1st,2nd否则散列 2nd,1st .