0

私はパンダに次のピボットテーブルを持っています:

Rating                      1   2   3   4   5
MovieTitle                                   
1-900 (1994)                2   0   1   2   0
101 Dalmatians (1996)      15  17  46  25   6
12 Angry Men (1957)         0   1  15  49  60
187 (1997)                  5   8  13  11   4

加重スコアを計算して新しい列を作成する必要があります。この数式は、映画「101匹わんちゃん (1996)」のスコアを次のように計算します。

score = (15*1) + (17*2) + (46*3) + (25*4) + (6*5)

どうすればそれを行うことができますか?ありがとう

4

1 に答える 1

1

式で指定したのとまったく同じことをするだけです:)

>>> (df[1] * 1) + (df[2] * 2) + (df[3] * 3) + (df[4] * 4) + (df[5] * 5)
MovieTitle
1-900 (1994)              13
101 Dalmatians (1996)    317
12 Angry Men (1957)      543
187 (1997)               124
dtype: int64

または、映画のタイトルは DataFrame のインデックスであり、評価列しかないため、次のことができます。

>>> weights = np.array([1,2,3,4,5])
>>> (df * weights).sum(axis=1)
MovieTitle
1-900 (1994)              13
101 Dalmatians (1996)    317
12 Angry Men (1957)      543
187 (1997)               124
dtype: int64

必要に応じて、それを DataFrame に割り当てることができます。

>>> df['score'] = (df * weights).sum(axis=1)
于 2013-09-20T09:39:19.727 に答える