我有一个大的制表符分隔文件。我想计算整个文件的第三列中的任何字符串的出现次数。总共可能有数十万个不同的字符串。我认为Counter对此有好处,而且我非常接近我想要的东西:
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。有什么建议 ?我没有必要使用Counter我认为这是最好的,但如果有一种更有效的方式我会喜欢听它。
答案 0 :(得分:1)
不要在第三列中拆分字符串:
for row in sam:
c[row[2]] += 1