У меня есть фрейм данных со столбцом «Медали», содержащий золото, серебро или бронзу.
Есть столбец высоты и столбец года. Это выглядит примерно так -
Medal Year Height 0
Bronze 1896 -2.352063 1
Bronze 1896 -0.435173 1
Bronze 1896 0.220606 1
Bronze 1896 0.304680 1
Bronze 1896 0.607347 1
Bronze 1900 -1.847618 1
Bronze 1900 -1.410432 1
Bronze 1900 -0.334284 1
Bronze 1900 -0.182950 1
Bronze 1900 -0.031617 3
Bronze 1900 0.136532 2
Silver 2016 1.078162 9
Silver 2016 1.179051 2
Silver 2016 1.279940 1
Silver 2016 1.380829 4
Silver 2016 1.481718 3
Silver 2016 1.582607 3
Silver 2016 1.683495 8
Silver 2016 1.784384 4
Silver 2016 1.885273 3
Silver 2016 2.087051 1
Silver 2016 2.187940 1
Silver 2016 2.288829 1
Silver 2016 2.591496 1
Silver 2016 2.692385 1
Silver 2016 2.995052 1
То, что я хочу, просто -
Medal Year Height
Bronze 1896 [Mean of heights having Bronze and 1896]
Bronze 1896 [Mean of heights having Bronze and 1900]
Bronze 1896 [Mean of heights having Silver and 2016]
Также столбец [0] представляет частоту. Поэтому мы должны умножить его на высоту, прежде чем вычислять среднее значение.
Я пытался использовать np.einsum
, но я не смог заставить его работать для моего случая. Есть несколько похожих вопросов, но ни один из ответов не отвечает моим требованиям.
Любые советы будут полезны.
PS: я нормализовал столбец высот и, следовательно, отрицательные значения