【问题标题】:Creating a weighted score column from Pandas pivot table从 Pandas 数据透视表创建加权分数列
【发布时间】:2013-09-20 09:03:29
【问题描述】:

我在 pandas 中有以下数据透视表:

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 Dalmatians (1996)”的分数,如下所示:

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

我可以知道我该怎么做吗? 谢谢

【问题讨论】:

标签: python pandas pivot-table weighted


【解决方案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)

【讨论】:

    猜你喜欢
    • 2018-10-28
    • 2019-10-05
    • 2012-04-16
    • 2019-09-30
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多