Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pandas as pd
- from datetime import datetime, timedelta
- from matplotlib import pyplot as plt
- users = pd.read_csv('ch02_problems01_users.csv') # профили
- visits = pd.read_csv('ch02_problems01_visits.csv') # сессии
- # преобразование данных о времени
- users['dt'] = pd.to_datetime(users['dt']).dt.date
- users['first_ts'] = pd.to_datetime(users['first_ts'])
- visits['session_start'] = pd.to_datetime(visits['session_start'])
- # доступный интервал привлечения пользователей
- min_analysis_date = users['dt'].min()
- observation_date = users['dt'].max()
- # горизонт анализа
- analysis_horizon = 14
- # максимально возможная дата привлечения с учётом горизонта
- max_analysis_date = observation_date - timedelta(days=analysis_horizon - 1)
- # рассчитайте размеры когорт
- report = (
- users.query('@min_analysis_date < dt and dt < @max_analysis_date') # допишите код
- .groupby('dt') # допишите код
- .agg({'user_id':'nunique'}) # допишите код
- )
- report.plot(grid=True) # постройте график, добавьте сетку
- plt.title('Динамика привлечения пользователей') # название графика
- plt.xlabel('Дата привлечения') # название оси X
- plt.xticks(rotation=45) # угол наклона подписей на оси X
- plt.ylabel('Размер когорты') # название оси Y
- plt.show()
- # посчитайте средний размер когорты
- mean_daily_cohort_size = report.mean()
- # ваш код здесь
- print(mean_daily_cohort_size.astype(int))
- # выведите средний размер когорты в виде целого числа
Advertisement
Comments
-
- users.query('@min_analysis_date <= dt and dt <= @max_analysis_date')
Add Comment
Please, Sign In to add comment
Advertisement