У меня есть электронная таблица, которая выглядит следующим образом:
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 в листах Google?