私のデータはタブ区切りで、次のようになります。
Name Count Sample
Dog .0001 1
Dog .00003 1
Dog .0001 2
Cat .0004 1
Cat .0002 1
Cat .0003 2
Cat .0002 2
変数 unid を 3 番目の列 (例: Dog_1) とマージされた最初の列として定義し、その行のカウントとして num を定義した後、次のように (Python 2.7 を使用して) unid の下の辞書に各 num を追加します。
for line in K:
sp = line.split("\t")
name = sp[0]
unid = sp[3][:-2] +"_"+ sp[0]
num = int(Decimal(sp[1]))
if not dict1.has_key(unid):
dict1[unid] = []
dict1[unid].append(num)
私はこれでそれを要約しようとします:
dictTot = sum(dict1.values())
しかし、私はこのエラーメッセージを受け取ります:
TypeError: unsupported operand type(s) for +: 'int' and 'list'
これらの値を合計して取得できるようにするにはどうすればよいCat_1: .0006, Cat_2: .0005
ですか?
申し訳ありませんが、私は私の ? 素晴らしいではありません。しかし、以下のジェイコブが述べているように、「dictTot = sum(sum(value) for value in dict1.values())」はすべての合計を合計しますが、私が探しているのは、各キーの下の値の各グループを個別に合計することです。サンプル 1 などに含まれる猫の数を調べることができます。おそらく合計はこれに適していませんか?申し訳ありませんが、明らかなように、私は並外れた Python ではありません。