我有一个大制表符分隔的文件。我想计算整个文件第三列中任何字符串的出现次数。总共可能有数十万个不同的字符串。我认为计数器对此有好处,我非常接近我想要的:
from collections import Counter
import csv
with open('samfile.sam') as samFile:
sam = csv.reader(samFile, dialect='excel-tab')
c=Counter()
for row in sam:
c.update(row[2].split())
问题是某些字符串有空格。它把它分成两根绳子,然后数一数。因此,如果这是我感兴趣的专栏:
foo
bar
foo bar
计数器将是 2 foo,2 bar,但我想要 1 foo,1 bar,1 foo bar。有什么建议吗?我不必使用计数器,我只是认为这是最好的,但如果有更有效的方式,我很想听听。
不要拆分第三列中的字符串:
for row in sam:
c[row[2]] += 1