Мой информационный фрейм имеет два столбца со средними значениями Team_A и Team_B, забивающими гол в матче.Для каждой строки я хочу создать матрицу 3 на 3, которая покрывает все возможные линии очков, используя распределение Пуассона.Вот первые несколько строк моих данных,
d = {'Team_A':[2.0160, 1.3421, 2.4654, 3.0281], 'Team_B':[0.0653, 1.5641, 4.0241, 1.2375]}
df = pd.DataFrame(data=d)
Так что из первого ряда команда A должна выиграть матч с score [2-0] (rounded to nearest integer)
.Предполагая, что оценки являются независимыми и происходят в интервале и используя формулу для распределения Пуассона,
P(k wins in interval) = ((lambda**k) * exp(-lambda))/factorial(k)
, где k = [0,1,2,3]
Team A scores 0, 1, 2 and 3 goals with prob. [0.1332, 0.2685, 0.2707, 0.1819] respectively.
And, Team B scores 0, 1, 2 and 3 goals with [0.5205, 0.3399, 0.1110, 0.0242] probabilities.
Таблица ниже построена поэлементным умножениемвышеуказанные вероятности.
For example the implied prob. of a 2-0 Team A win = 0.2707 * 0.5205 = 0.140899
Team_A Goals 0 1 2 3
Team_B Goals Poisson for no.of_goal/Team 0.1332 0.2685 0.2707 0.1819
0 0.5205 0.0693 0.1398 0.1409 0.0947
1 0.3399 0.0453 0.0913 0.0920 0.0618
2 0.1110 0.0148 0.0298 0.0030 0.0202
3 0.0242 0.0032 0.0065 0.0065 0.0044
Вопрос
Я заблудился в том, как написать функцию python, которая перебирает каждую строку и создает матрицу 3 на 3.