Skip to main content
 首页 » 编程设计

Python 删除字段中具有共同值的所有行

2025年05月04日18lhb25

我有包含 4 个字段的数据行

aaaa bbb1 cccc dddd   
aaaa bbb2 cccc dddd   
aaaa bbb3 cccc eeee   
aaaa bbb4 cccc ffff   
aaaa bbb5 cccc gggg   
aaaa bbb6 cccc dddd     

请耐心等待。

第一个和第三个字段始终相同 - 但我不需要它们,第 4 个字段可以相同或不同。问题是,我只想要来自不共享公共(public)字段的行的第 2 和第 4 个字段。比如从上面的数据中这样

bbb3 eeee   
bbb4 ffff     
bbb5 gggg     

现在我不是说重复数据删除,因为那样会留下一个条目。如果第 4 个字段与另一行共享一个值,我不想要任何具有该值的行。

再次为询问可能很简单的问题而道歉。

请您参考如下方法:

给你:

from collections import defaultdict 
 
LINES = """\ 
aaaa bbb1 cccc dddd 
aaaa bbb2 cccc dddd 
aaaa bbb3 cccc eeee 
aaaa bbb4 cccc ffff 
aaaa bbb5 cccc gggg 
aaaa bbb6 cccc dddd""".split('\n') 
 
# Count how many lines each unique value of the fourth field appears in. 
d_counts = defaultdict(int) 
for line in LINES: 
    a, b, c, d = line.split() 
    d_counts[d] += 1 
 
# Print only those lines with a unique value for the fourth field. 
for line in LINES: 
    a, b, c, d = line.split() 
    if d_counts[d] == 1: 
        print b, d 
 
# Prints 
# bbb3 eeee 
# bbb4 ffff 
# bbb5 gggg