我有一个.csv文件,其中有几列,其中一列是随机数字,我想在那里找到重复的值。如果有的话--情况很奇怪,但这毕竟是我想检查的--我想显示/存储这些值的完整行。
为了说清楚,我有这样的东西。
第一,无论如何,230,无论如何,等等。
第二,无论如何,11,无论如何,等等。
第三,无论如何,46,无论如何,等等。
第四,无论如何,18,无论如何,等等。
第五,无论如何,14,无论如何,等等。
第六,无论如何,48,无论如何,等等。
第七,无论如何,91,无论如何,等等。
第八,无论如何,18,无论如何,等等。
第九,无论如何,67,无论如何,等等。
而我希望能有。
第四,无论如何,18,无论如何,等等。
第八,无论如何,18,无论如何,等等。
为了找到重复的值,我将该列存储到一个字典中,并计算每一个键,以发现它们出现的次数。
import csv
from collections import Counter, defaultdict, OrderedDict
with open(file, 'rt') as inputfile:
data = csv.reader(inputfile)
seen = defaultdict(set)
counts = Counter(row[col_2] for row in data)
print "Numbers and times they appear: %s" % counts
Counter({' 18 ': 2, ' 46 ': 1, ' 67 ': 1, ' 48 ': 1,...})
现在问题来了,因为我没有设法将钥匙与重复的内容联系起来,并在以后计算它。如果我这样做
for value in counts:
if counts > 1:
print counts
我将只取键,这不是我想要的,还有每个值(更不用说我想打印的不仅是这个,还有整个行...)。
基本上,我正在寻找一种方法来做
If there's a repeated number:
print rows containing those number
print "No repetitions"
提前感谢。