Untitled

From Gracious Owl, 11 Months ago, written in Plain Text, viewed 447 times.
URL http://codebin.org/view/7bafe334 Embed
Download Paste or View Raw
  1. # уберем событие Tutorial из данных для расчета воронки событий
  2.  
  3. data_new = data_new.query('event_name != "Tutorial"')
  4.  
  5. # сгруппируем данные по названию событий и посчитаем сколько пользователей совершали каждое из этих событий
  6. # отсортируем события по числу пользователей
  7.  
  8. events_per_user = data_new.groupby('event_name').agg(
  9.                                             {'user_id': 'nunique'}
  10.                                            ).sort_values(
  11.                                            by='user_id', ascending=False
  12.                                            ).rename(columns={'user_id': 'users_cnt'})
  13.  
  14.  
  15. # добавим колонку users_share с долей пользователей, которые хоть раз совершали событие
  16.  
  17. events_per_user['users_share'] = events_per_user['users_cnt'] /  data_new['user_id'].nunique()
  18.  
  19.  
  20. #  добавим колонку shift, чтобы посчитать отношение числа пользователей события к числу в предыдущем событии
  21.  
  22. events_per_user['shift'] = events_per_user['users_cnt'].shift(periods=1, axis=0, fill_value=events_per_user['users_cnt'][0])
  23.  
  24.  
  25. #  добавим колонку next_step_conversion, чтобы посчитать долю пользователей, которые доходят до следующего шага воронки
  26.  
  27. events_per_user['next_step_conversion'] = (events_per_user['users_cnt'] * 100 / events_per_user['shift']).round(2)
  28.  
  29.  
  30. # удалим колонке shift, она больше не пригодится
  31.  
  32. events_per_user.drop('shift', axis='columns', inplace=True)
  33.  
  34.  
  35. # посмотрим на результат
  36.  
  37. events_per_user.style.format({'users_share':'{:.0%}'})

Reply to "Untitled"

Here you can reply to the paste above