我使用此代码打印非数字单元格的出现次数。但是,这个数字增加了一倍。它的印刷6 3.Defaultdict计数器计算两次Python
的样本数据:
pID,sID,dID,nID,ID
ABCD-02-01,ABCD-02-01-0002-UNK,2,123,ABCD
ABCD-02-01,ABCD-02-01-0004-UNK,3,1234,ABCD
ABCD-02-01,ABCD-02-01-0007-UNK,7,3455,ABCD
代码:
#!/usr/bin/env python
from collections import Counter, defaultdict
import csv
header_counter = defaultdict(Counter)
with open('trial.csv') as input_file:
r = csv.reader(input_file, delimiter=',')
headers = next(r)
for row in r:
row_val = sum([w.isdigit() for w in row])
for header, val in zip(headers, row):
if not any(map(str.isdigit, val)):
header_counter[header].update({val: row_val})
for k, v in header_counter.iteritems():
print k,v
电流输出ID Counter({'ABCD': 6})
所需的输出ID Counter({'ABCD': 3})
你期望输出什么,你会得到什么? – kindall 2015-01-20 21:49:05
@kindall我想只打印“ABCD”的计数,它应该是3.它只打印'ABCD',但计数是6. – abn 2015-01-20 21:52:15
再次,请张贴您获得的输出。 – kindall 2015-01-20 21:53:05