小编T_W*_*ong的帖子

在 csv 中查找重复项和重复项的唯一性

我需要创建一个脚本,该脚本会将 csv(有时标记为 .inf)加载到内存中,并评估数据是否存在重复类型。csv 本身在每个字段中总是有不同的信息,但列将是相同的。大约 100~ 列。在我的示例中,为了便于阅读,我将把它缩小到 10 列。

我正在寻找的重复的“类型”有点奇怪。我需要首先找到第 2 列中的所有重复项。然后我需要查看该组重复项,并查看第 8 列(在我的实际 csv 中,它将是第 84 列)。查看第 8 列,我只需要输出以下数据:

A. 第 2 栏重复

B. 在第 8 列中是唯一的

第 2 列可能只有 2 个重复,它们的第 8 列是相同的。我不需要看到那个。如果第 2 列中有 3 个重复项,并且它们的第 8、2 列相同,并且第 1 列是唯一的,则我需要查看所有 3 个 FULL 行。

Desired input
m,123veh,john;doe,10/1/2019,ryzen,split,32929,38757ace,turn,left
m,123veh,john;doe,10/1/2019,ryzen,split,32929,495842,turn,left
m,837iec,john;doe,10/1/2019,ryzen,split,32929,12345,turn,left
m,837iec,john;doe,10/1/2019,ryzen,split,32929,12345,turn,left
m,382ork,john;doe,10/1/2019,ryzen,split,32929,38757,turn,left
m,382ork,john;doe,10/1/2019,ryzen,split,32929,38757,turn,left
m,382ork,john;doe,10/1/2019,ryzen,split,32929,4978d87,turn,left
Run Code Online (Sandbox Code Playgroud)

这些数据会不断变化,甚至第 8 列中的字符数也可能会有所不同。

Desired output
m,123veh,john;doe,10/1/2019,ryzen,split,32929,38757ace,turn,left
m,123veh,john;doe,10/1/2019,ryzen,split,32929,495842,turn,left
m,382ork,john;doe,10/1/2019,ryzen,split,32929,38757,turn,left
m,382ork,john;doe,10/1/2019,ryzen,split,32929,38757,turn,left
m,382ork,john;doe,10/1/2019,ryzen,split,32929,4978d87,turn,left 
Run Code Online (Sandbox Code Playgroud)

您可以从我想要的输出中看到,我不需要看到带有 837iec 的行,因为虽然它们的第 2 列是重复的,但第 8 列彼此匹配。我不需要看到那个。而对于像 382ork 这样的东西,列 8s 中的 2 个匹配,一个是唯一的。我需要看到所有 3。

我将在 …

python linux csv bash awk

5
推荐指数
1
解决办法
109
查看次数

标签 统计

awk ×1

bash ×1

csv ×1

linux ×1

python ×1