Advertisement
Vitaliy_Novichikhin

Когортный анализ 7.2. неверное значение report

Jul 22nd, 2022
3,654
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.86 KB | None | 0 0
  1. import pandas as pd
  2. from datetime import datetime, timedelta
  3. from matplotlib import pyplot as plt
  4.  
  5. users = pd.read_csv('ch02_problems01_users.csv')  # профили
  6. visits = pd.read_csv('ch02_problems01_visits.csv')  # сессии
  7.  
  8. # преобразование данных о времени
  9. users['dt'] = pd.to_datetime(users['dt']).dt.date
  10. users['first_ts'] = pd.to_datetime(users['first_ts'])
  11. visits['session_start'] = pd.to_datetime(visits['session_start'])
  12.  
  13. # доступный интервал привлечения пользователей
  14. min_analysis_date = users['dt'].min()
  15. observation_date = users['dt'].max()
  16.  
  17. # горизонт анализа
  18. analysis_horizon = 14
  19. # максимально возможная дата привлечения с учётом горизонта
  20. max_analysis_date = observation_date - timedelta(days=analysis_horizon - 1)
  21.  
  22. # рассчитайте размеры когорт
  23. report = (
  24.     users.query('@min_analysis_date < dt and dt < @max_analysis_date')  # допишите код
  25.     .groupby('dt')  # допишите код
  26.     .agg({'user_id':'nunique'})  # допишите код
  27. )
  28.  
  29. report.plot(grid=True)  # постройте график, добавьте сетку
  30. plt.title('Динамика привлечения пользователей')  # название графика
  31. plt.xlabel('Дата привлечения')  # название оси X
  32. plt.xticks(rotation=45)  # угол наклона подписей на оси X
  33. plt.ylabel('Размер когорты')   # название оси Y
  34. plt.show()
  35.  
  36. # посчитайте средний размер когорты
  37. mean_daily_cohort_size = report.mean()
  38. # ваш код здесь
  39.  
  40. print(mean_daily_cohort_size.astype(int))
  41. # выведите средний размер когорты в виде целого числа
Advertisement
Comments
Add Comment
Please, Sign In to add comment
Advertisement