이 코드를 사용하여 숫자가 아닌 셀을 인쇄하고 있습니다. 그러나이 수치는 두 배가됩니다. 3.기본값으로 계산되는 카운터 기본값이 파이썬
샘플 데이터에 대한 인쇄 6 :
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
@kindall 'ABCD'의 수를 인쇄하고 3이어야합니다. 'ABCD'만 인쇄하지만 수는 6입니다. – abn
다시 출력하십시오. – kindall