私は毎日Pythonに苦労している初心者です。2 列目に動物の名前を持つ大きなデータ セットがあります。各動物の数を名前で合計するプログラムがあります(各行には1つの動物名と1つの「数」データがあります)。Python を使用して取得したカウント データの合計を取得しようとしていますが、それができません。私がこれまでに持っているコードは次のとおりです。
import csv, collections
reader=csv.reader(open('C:\Users\Owl\Data.txt','rb'), delimiter='\t')
counts=collections.Counter()
for line in reader:
Name=line[1]
counts[Name]+=1
for (Name, count) in sorted(counts.iteritems()):
Output=list('%s' % count) #Make output string to a list
Sum=sum(Output) # Sum function requires a list
print 'Total kinds of Animals: %s' % Sum
というエラーが表示されます" File "sum_count.py", line 17, in <module> Sum=sum(Output) # Sum function requires a list TypeError: unsupported operand type(s) for +: 'int' and 'str'".
私がこれまでに理解したのは、sum
明らかに入力タイプがリストである必要があるため、カウントデータ(文字列)をリストに変換しましたが、そうするとOutput=list('%s' % count)
、2を超えるすべてのカウントデータのようです桁が分かれています。たとえば、出力を印刷すると、次のようになります。
['1', '6', '3']
['3']
['1', '8', '5', '9']
['7', '9']
それ以外の
['163']
['3']
['1859']
['79']
ここでやりたいことは、これらの要素の単一の「合計」を取得することです。ここでは4になります。4種類の動物。
これが上記のエラーが発生する理由である可能性があると考えています。私は間違っているかもしれませんが、誰かがこの問題を解決する方法を教えてくれませんか? 事前に助けてくれてありがとう!