У меня есть кадр данных, как показано ниже:
Bookin_ID Session Walkin
1 S1 no
2 S1 no
3 S1 no
4 S1 yes
5 S1 no
6 S1 yes
10 S2 no
11 S2 yes
12 S2 no
13 S2 yes
14 S2 no
15 S2 yes
16 S2 no
17 S2 no
18 S2 yes
19 S2 no
26 S3 no
27 S3 no
28 S3 yes
29 S3 no
Исходя из вышеизложенного, я хотел бы рассчитать вероятность перехода для каждой сессии, как показано ниже:
walkin_prob = count of walkin = 'yes' in that session / total number of booking in that session
Например, для Сеанс = S1, количество Walkin = нет равно 2, а общее количество бронирований равно 6, поэтому walkin_prob = 2/6 = 0,33.
Аналогично для S2 количество Walkin = да равно 4 и общее количество бронирований 10, так что walkin_prob = 4/10 = 0,4. и т. д.
Ожидаемый результат:
Bookin_ID Session Walkin walkin_prob
1 S1 no 0.33
2 S1 no 0.33
3 S1 no 0.33
4 S1 yes 0.33
5 S1 no 0.33
6 S1 yes 0.33
10 S2 no 0.33
11 S2 yes 0.4
12 S2 no 0.4
13 S2 yes 0.4
14 S2 no 0.4
15 S2 yes 0.4
16 S2 no 0.4
17 S2 no 0.4
18 S2 yes 0.4
19 S2 no 0.4
26 S3 no 0.25
27 S3 no 0.25
28 S3 yes 0.25
29 S3 no 0.25
Я пробовал ниже, и это не работает.
df['walkin_prob'] = df.groupby('Session')[['Walkin'] == 'yes'].sum()/df.groupby('Session')['Walkin'].sum()
И это показывает ниже ошибка
Колонка не найдена: False