我有一个如下所示的电子表格:
Score1 Score2 Score3
Joe 8 5 3
Jane 4 6 2
Abdul 5 5 3
Nadia 9 7 5
我想为每个人计算一个包含“平均归一化分数”(ANS)的新列,其中,对于每个分数,我通过减去平均值并除以该得分列的标准差得到“归一化分数” ,然后平均这些归一化的分数即可获得每人的ANS。
结果应为:
Score1 Score2 Score3 ANS
Joe 8 5 3 -0.135
Jane 4 6 2 -0.686
Abdul 5 5 3 -0.621
Nadia 9 7 5 1.44
此操作的python式伪代码为:
for j in [1..N_cols]:
mean_scores = mean(score[i, j] for i in [1..N_rows])
std_scores = std(score[i, j] for i in [1..N_rows])
for i in [1..N_rows]:
norm_scores[i, j] = (scores[i, j] - mean_scores)/std_scores
for i in [1..N_rows]:
avg_norm_scores[i] = mean(norm_scores[i, j] for j in [1..N_cols])
或者用numpy来简单地是:
avg_norm_scores = ((scores - scores.mean(axis=0))/scores.std(axis=0)).mean(axis=1)
我可以在Google表格中计算出包含ANS的新列的最简洁的方法是什么?
答案 0 :(得分:1)
也许不是最简洁,但是正确的答案:
=average((B2-average(B:B))/STDEVP(B:B),(C2-average(C:C))/STDEVP(C:C),(D2-average(D:D))/STDEVP(D:D))
复制为适合,假设8
在B2中。