これを正しく表現しているかどうかさえわかりませんが、これについて頭を悩ませています。グループ、説明、個人、および数値のデータセットがあります。一部の個人は、異なるグループに属することができます。いくつかは同じ説明を持つことができます。例は次のようになります。
GROUP A DESCRIPTION A PERSON A NUMBER
GROUP A DESCRIPTION A PERSON B NUMBER
GROUP B DESCRIPTION A PERSON C NUMBER
GROUP C DESCRIPTION B PERSON A NUMBER
私が達成しようとしているのは、グループ/説明内の各人に対して特定の割合を取得することです. まず、データをループして配列に追加します。次に、それを使用して defaultdict を作成します。
for row in data:
l.append([group, description, person, number])
d = defaultdict(int)
for item in l:
d[item[0], item[1]] += item[2]
for k,v in d.iteritems():
print k,v
>>(group, description) (sum of numbers)
ここから私がしなければならないことは、私が混乱するところです。これが私が使用している実際の例です:
GROUP A DESCRIPTION A PERSON A 1.14
GROUP A DESCRIPTION A PERSON B 1.14
GROUP A DESCRIPTION A PERSON C 0.36
GROUP A DESCRIPTION A PERSON D 1.07
これらの数値の合計は 3.71 です。私の次のステップは、そのグループの 1 人を取り上げ、その人数をグループの合計で割ることです。上記のグループの例として PERSON C を使用すると、0.36/3.71 = 0.097 になります。これを自分のコードに組み込む方法がわかりませんが、まったく難しいことではないように思えますが、私はそれを見ていません。この後、他にもいくつかのステップがありますが、この特定のパーセンテージを取得する方法がわかれば、残りを理解できると思います。