{ "cells": [ { "cell_type": "code", "execution_count": 79, "id": "c6bb3ab6", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from tqdm import tqdm" ] }, { "cell_type": "markdown", "id": "d7cfc02e", "metadata": {}, "source": [ "# Данные" ] }, { "cell_type": "markdown", "id": "67c32cdd", "metadata": {}, "source": [ "## Payments" ] }, { "cell_type": "code", "execution_count": 80, "id": "038a62d8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
payment_datePayment_typesreal_costaccount_id
02021-01-01 00:00:56Payment_system_59.6500002907221
12021-01-01 00:01:48Payment_system_50.9558723228373
22021-01-01 00:03:42Payment_system_53.026930318552
32021-01-01 00:04:27Payment_system_299.9900003832817
42021-01-01 00:06:41Payment_system_51.4325507229767
\n", "
" ], "text/plain": [ " payment_date Payment_types real_cost account_id\n", "0 2021-01-01 00:00:56 Payment_system_5 9.650000 2907221\n", "1 2021-01-01 00:01:48 Payment_system_5 0.955872 3228373\n", "2 2021-01-01 00:03:42 Payment_system_5 3.026930 318552\n", "3 2021-01-01 00:04:27 Payment_system_2 99.990000 3832817\n", "4 2021-01-01 00:06:41 Payment_system_5 1.432550 7229767" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "payments = pd.read_csv(\"data/payments.csv\")\n", "payments.head()" ] }, { "cell_type": "markdown", "id": "68048c5a", "metadata": {}, "source": [ "## Persents" ] }, { "cell_type": "code", "execution_count": 81, "id": "a4b72e40", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Payment_typesShare, %
0Payment_system_120.7
1Payment_system_215.0
2Payment_system_358.5
3Payment_system_40.0
4Payment_system_524.0
\n", "
" ], "text/plain": [ " Payment_types Share, %\n", "0 Payment_system_1 20.7\n", "1 Payment_system_2 15.0\n", "2 Payment_system_3 58.5\n", "3 Payment_system_4 0.0\n", "4 Payment_system_5 24.0" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "persents = pd.read_csv(\"data/persents.csv\", index_col=0)\n", "persents.head()" ] }, { "cell_type": "markdown", "id": "9a2ba6d3", "metadata": {}, "source": [ "## Registrations" ] }, { "cell_type": "code", "execution_count": 82, "id": "a0f238ba", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
account_idcreated_datecampaign
03842380.02021-01-01BRA_MS1_install
13842381.02021-01-01NaN
23842382.02021-01-01NaN
33842383.02021-01-01NaN
43842384.02021-01-01BRA_MS1_install
\n", "
" ], "text/plain": [ " account_id created_date campaign\n", "0 3842380.0 2021-01-01 BRA_MS1_install\n", "1 3842381.0 2021-01-01 NaN\n", "2 3842382.0 2021-01-01 NaN\n", "3 3842383.0 2021-01-01 NaN\n", "4 3842384.0 2021-01-01 BRA_MS1_install" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "registrations = pd.read_csv(\"data/registrations.csv\", index_col=0)#.dropna()\n", "registrations.head()" ] }, { "cell_type": "markdown", "id": "f52e9466", "metadata": {}, "source": [ "## Budget" ] }, { "cell_type": "code", "execution_count": 83, "id": "bf031a83", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
media_sourceCampaign_typeTargetPlan, USDInstallsSpend, USDDeviation, USD
0Media_source_1installBrazil1001046099.120.88
1Media_source_1purchaseBrazil4001081398.671.33
2Media_source_1installRussia20011894246.30-46.30
3Media_source_1purchaseRussia5001441616.77-116.77
4Media_source_1installUkrane100642499.430.57
5Media_source_1purchaseUkrane500242348.13151.87
6Media_source_2installBrazil10015281.1518.85
7Media_source_2installEnglish_speaking10037199.950.05
8TotalNaNNaN2000320651989.5210.48
\n", "
" ], "text/plain": [ " media_source Campaign_type Target Plan, USD Installs \\\n", "0 Media_source_1 install Brazil 100 10460 \n", "1 Media_source_1 purchase Brazil 400 1081 \n", "2 Media_source_1 install Russia 200 11894 \n", "3 Media_source_1 purchase Russia 500 1441 \n", "4 Media_source_1 install Ukrane 100 6424 \n", "5 Media_source_1 purchase Ukrane 500 242 \n", "6 Media_source_2 install Brazil 100 152 \n", "7 Media_source_2 install English_speaking 100 371 \n", "8 Total NaN NaN 2000 32065 \n", "\n", " Spend, USD Deviation, USD \n", "0 99.12 0.88 \n", "1 398.67 1.33 \n", "2 246.30 -46.30 \n", "3 616.77 -116.77 \n", "4 99.43 0.57 \n", "5 348.13 151.87 \n", "6 81.15 18.85 \n", "7 99.95 0.05 \n", "8 1989.52 10.48 " ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "budget = pd.read_excel(\"data/Рекламный бюджет январь 2021.xlsx\")\n", "budget.loc[0:5, 'media_source'] = 'Media_source_1'\n", "budget.loc[6:7, 'media_source'] = 'Media_source_2'\n", "budget" ] }, { "cell_type": "markdown", "id": "561d9fce", "metadata": {}, "source": [ "# Analisys" ] }, { "cell_type": "markdown", "id": "1e9e2cb6", "metadata": {}, "source": [ "## Оптимальный срок окупаемости" ] }, { "cell_type": "markdown", "id": "1701b5e5", "metadata": {}, "source": [ "$$\\Large\n", "T = \\frac{IC}{FV}\n", "$$\n", "\n", "где:\n", "\n", "- $\\large T$ — срок окупаемости\n", "- $\\large IC$ — инвестиционные расходы\n", "- $\\large FV$ — прибыль" ] }, { "cell_type": "markdown", "id": "7df2460e", "metadata": {}, "source": [ "### $\\large IC$ — инвестиционные расходы" ] }, { "cell_type": "code", "execution_count": 84, "id": "33a0a78b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['BRA_MS1_install']" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "campaigns = list(registrations['campaign'].unique()[:1])\n", "campaigns" ] }, { "cell_type": "markdown", "id": "bdaedc89", "metadata": {}, "source": [ "### $\\large FV$ — прибыль" ] }, { "cell_type": "code", "execution_count": 87, "id": "8353352e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
payment_datePayment_typesreal_costaccount_idShare, %costcreated_datecampaign
3302021-01-01 15:10:26Payment_system_52.445710386181124.01.8587402021-01-07RUS_MS1_purchase
3392021-01-01 15:22:00Payment_system_52.445710386181124.01.8587402021-01-07RUS_MS1_purchase
8272021-01-01 17:16:09Payment_system_59.624570384464724.07.3146732021-01-01BRA_MS1_install
8372021-01-01 17:17:45Payment_system_59.624570384464724.07.3146732021-01-01BRA_MS1_install
19222021-01-02 01:08:32Payment_system_50.955872384561324.00.7264632021-01-02RUS_MS1_purchase
...........................
3011242021-12-29 17:14:22Payment_system_42.62000039248400.02.6200002021-01-29RUS_MS1_install
3011692021-12-29 18:55:43Payment_system_40.10000039248400.00.1000002021-01-29RUS_MS1_install
3012432021-12-29 21:22:10Payment_system_40.31000039248400.00.3100002021-01-29RUS_MS1_install
3014712021-12-30 08:15:58Payment_system_40.38000039248400.00.3800002021-01-29RUS_MS1_install
3033322021-12-31 20:58:48Payment_system_52.309120386181124.01.7549312021-01-07RUS_MS1_purchase
\n", "

711 rows × 8 columns

\n", "
" ], "text/plain": [ " payment_date Payment_types real_cost account_id \\\n", "330 2021-01-01 15:10:26 Payment_system_5 2.445710 3861811 \n", "339 2021-01-01 15:22:00 Payment_system_5 2.445710 3861811 \n", "827 2021-01-01 17:16:09 Payment_system_5 9.624570 3844647 \n", "837 2021-01-01 17:17:45 Payment_system_5 9.624570 3844647 \n", "1922 2021-01-02 01:08:32 Payment_system_5 0.955872 3845613 \n", "... ... ... ... ... \n", "301124 2021-12-29 17:14:22 Payment_system_4 2.620000 3924840 \n", "301169 2021-12-29 18:55:43 Payment_system_4 0.100000 3924840 \n", "301243 2021-12-29 21:22:10 Payment_system_4 0.310000 3924840 \n", "301471 2021-12-30 08:15:58 Payment_system_4 0.380000 3924840 \n", "303332 2021-12-31 20:58:48 Payment_system_5 2.309120 3861811 \n", "\n", " Share, % cost created_date campaign \n", "330 24.0 1.858740 2021-01-07 RUS_MS1_purchase \n", "339 24.0 1.858740 2021-01-07 RUS_MS1_purchase \n", "827 24.0 7.314673 2021-01-01 BRA_MS1_install \n", "837 24.0 7.314673 2021-01-01 BRA_MS1_install \n", "1922 24.0 0.726463 2021-01-02 RUS_MS1_purchase \n", "... ... ... ... ... \n", "301124 0.0 2.620000 2021-01-29 RUS_MS1_install \n", "301169 0.0 0.100000 2021-01-29 RUS_MS1_install \n", "301243 0.0 0.310000 2021-01-29 RUS_MS1_install \n", "301471 0.0 0.380000 2021-01-29 RUS_MS1_install \n", "303332 24.0 1.754931 2021-01-07 RUS_MS1_purchase \n", "\n", "[711 rows x 8 columns]" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = payments.join(persents.set_index(\"Payment_types\"), on=\"Payment_types\")\n", "df['cost'] = df['real_cost'] * (100 - df['Share, %']) / 100\n", "df.join(registrations.set_index('account_id'), on=\"account_id\").dropna()\n", "# registrations.set_index('account_id')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.0" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 5 }