python - 使用 Google Sheet 公式计算归一化分数
问题描述
我有一个如下所示的电子表格:
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-esque 伪代码将是:
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)
我可以计算包含谷歌表格中的 ANS 的新列的最简洁的方法是什么?
解决方案
也许不是最简洁的,但正确的答案:
=average((B2-average(B:B))/STDEVP(B:B),(C2-average(C:C))/STDEVP(C:C),(D2-average(D:D))/STDEVP(D:D))
复制下来以适应,假设8
在 B2 中。
推荐阅读
- matlab - 有没有办法使用 max() 函数在 Matlab 中找到最多 2 个变量的函数?
- python - 使用 json 文件作为数组
- javascript - 针对 php 中的值禁用每个包的按钮
- python - How to create a new column in pandas based on a conditional that references a dictionary
- javascript - removeEventListener 没有按我的预期工作
- visual-studio - 无法使用 CMake 的 autouic 从链接库中包含 ui 文件
- python - Python中的标记变量
- ios - UIScrollView 中的 iOS UIView 无法正确调整大小
- mongodb - 为什么我应该将 MongoDB Atlas 封装在 AWS EC2 集群中,而不是通过 URL 从我的应用程序连接?
- python - Azure AD B2C 的 mozilla-django-oidc 问题