<jupyter_start><jupyter_text>MAU февраля<jupyter_code>app[lambda df: df.date.dt.month==2]
app[lambda df: df.date.dt.month==2].nunique()<jupyter_output><empty_output><jupyter_text>Количество установок в январе<jupyter_code>app_jan = app[lambda df: df.date.dt.month==1]
app_jan.query('event == "app_install"').nunique()
app.head()
app.dtypes<jupyter_output><empty_output><jupyter_text>Присвойте пользователям когорты по дню установки приложения и постройте воронку по дням. В какой день конверсия из установки в покупку в течение 7 дней была наибольшей? Ответ впишите в формате: дд.мм.гггг<jupyter_code>app.shape
installs = app.query('event == "app_install"')
installs = installs.rename(columns={'date': 'date_cogort'})
installs
cogorts = installs[['date_cogort', 'device_id']]
app['device_id'].nunique()
final = app.merge(cogorts, on='device_id', how='left')
final['device_id'].nunique()
final.head()
final.shape
#final.to_csv('data_for_tableu_cogorts.csv', sep=';')
final.query('date_cogort == "2020-01-01" & event=="app_start"')
final.query('date_cogort == "2020-01-01" & event=="purchase"')
(11319/71516)*100<jupyter_output><empty_output><jupyter_text>С какого платного маркетингового канала пришло больше всего новых пользователей? В ответ впишите один из каналов в таком формате: «Яндекс», «Гугл», «ВК», «Фейсбук», «Инстаграм», «Реферальная программа»<jupyter_code>app
app.groupby('utm_source').device_id.nunique()<jupyter_output><empty_output><jupyter_text>Проанализируйте на каком этапе воронки отваливается бОльшая часть клиентов. Посмотрите отдельно сценарии для зарегистрированных и для незарегистрированных пользователей. На каком шаге отваливается больше всего зарегистрированных пользователей?В ответ впишите один из шагов, конверсия из которого (в следующий шаг) самая низкая, в таком формате: «Поиск», «Добавление товара», «Переход в корзину», «Регистрация»<jupyter_code>app.dtypes
app
registration = app.query('event == "register"')
registrations = registration.rename(columns={'date': 'date_registration'})
registrations
regs = registrations[['date_registration', 'device_id']]
final_reg = app.merge(regs, on='device_id', how='left')
final_reg
app.device_id.nunique()
final_reg.device_id.nunique()
reg_app_all = final_reg.query('date_registration <= date')
reg_app_all
reg_app_all.reg = reg_app_all.query('event == "register"').device_id.size
reg_app_all.search = reg_app_all.query('event == "search"').device_id.size
reg_app_all.choose = reg_app_all.query('event == "choose_item"').device_id.size
reg_app_all.tap = reg_app_all.query('event == "tap_basket"').device_id.size
reg_app_all.pur = reg_app_all.query('event == "purchase"').device_id.size
sear = reg_app_all.choose/reg_app_all.search*100
sear
ch = reg_app_all.tap/reg_app_all.choose*100
ch
tap = reg_app_all.reg/reg_app_all.tap*100
tap
reg = reg_app_all.pur/reg_app_all.reg*100
reg<jupyter_output><empty_output><jupyter_text>Пользователи, пришедшие с каких каналов, показали (за весь Q1) самую низкую конверсию в первую покупку?В ответ впишите один из каналов в таком формате: «Яндекс», «Гугл», «ВК», «Фейсбук», «Инстаграм», «Реферальная программа»<jupyter_code>app.head()
app_start = app.query('event == "app_start"') \
                .groupby('utm_source') \
                .agg({'device_id' : 'nunique'})
app_start
app_pur = app.query('event == "purchase"') \
                .groupby('utm_source') \
                .agg({'device_id' : 'nunique'})
app_pur
cr = (app_pur/app_start).idxmin()
cr<jupyter_output><empty_output><jupyter_text>Пользователи, пришедшие с какого канала, имеют медианный первый чек выше? (учитываются только первые покупки пользователей)В ответ впишите один из каналов в таком формате: «Яндекс», «Гугл», «ВК», «Фейсбук», «Инстаграм», «Реферальная программа»<jupyter_code>app_med = app.query('event == "purchase"') \
                .drop_duplicates('device_id') \
                .groupby('utm_source') \
                .agg({'purchase_sum' : 'median'}) \
                .sort_values(by='purchase_sum', ascending=False)
app_med<jupyter_output><empty_output><jupyter_text>Данные по затратам на рекламу в Q1:Какой платный канал привлечения имеет самый высокий ROMI?<jupyter_code>yandex = 10491707
google = 10534878
facebook = 8590498
insta = 8561626
vk = 9553531
val_prib = app.groupby('utm_source', as_index=False) \
                .agg({'purchase_sum' : 'sum'}) \
                .sort_values('purchase_sum', ascending=True)
val_prib
facebbok_val = val_prib.query('utm_source == "facebook_ads"').purchase_sum
(facebbok_val - facebook)/facebook
google_val = val_prib.query('utm_source == "google_ads"').purchase_sum
(google_val - google)/google
ya_val = val_prib.query('utm_source == "yandex-direct"').purchase_sum
(ya_val - yandex)/yandex
in_val = val_prib.query('utm_source == "instagram_ads"').purchase_sum
(in_val - insta)/insta
vk_val = val_prib.query('utm_source == "vk_ads"').purchase_sum
(vk_val - vk)/vk
app.head()
mindate = app.sort_values('date').drop_duplicates('device_id')
app['device_id'].nunique()
mindate['device_id'].nunique()
mindate = mindate[['device_id', 'date']]
mindate
dates_install = app.groupby('device_id', as_index=False) \
        .agg({'date' : 'min'}) \
        .rename(columns={'date': 'date_install'})
dates_install.head()
dates_install.shape
app_merge = app.merge(dates_install, how='inner', on='device_id')
app_merge_purchase = app_merge.query('event == "purchase"')
app_merge_purchase.head()
app_merge_installs = app_merge.query('event == "app_install"')
app_merge_installs['date'] - app_merge_installs['date_install']
app_merge_installs.device_id.count()
app_merge_purchase['date'] - app_merge_purchase['date_install']
days_7_filter = app_merge_purchase['date'] - app_merge_purchase['date_install'] <= '6 days'
days_7_orders = app_merge_purchase[days_7_filter]
days_7_orders.head()
days_7_orders.device_id.count()
66193/154597
cohorts = days_7_orders.groupby(['date_install','date']).agg({'device_id': 'count'})
cohorts.head(10)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.14330944842526247, 'fraction_numerical': 0.017330444925845692, 'mean_word_length': 6.428217821782178, 'pattern_counts': {'":': 0, '<': 35, '<?xml version=': 0, '>': 33, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '8', 'dir': 'jupyter-structured-clean-dedup', 'id': '456328', 'license': 'MIT', 'n_tokens_mistral': 2449, 'n_tokens_neox': 2500, 'n_words': 432, 'path': 'ProductAnalytics/Lesson_3_Metrics/DZ_lesson_3_metrics.ipynb', 'repo_name': 'LubovFedoseeva/Learning', 'size': '6001'}