add dicts

This commit is contained in:
Basyrov Rustam
2024-11-22 15:25:12 +03:00
parent 9811487087
commit 6f442db00d

View File

@@ -314,160 +314,26 @@
},
{
"cell_type": "code",
"execution_count": 83,
"execution_count": 114,
"id": "bf031a83",
"metadata": {},
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>media_source</th>\n",
" <th>Campaign_type</th>\n",
" <th>Target</th>\n",
" <th>Plan, USD</th>\n",
" <th>Installs</th>\n",
" <th>Spend, USD</th>\n",
" <th>Deviation, USD</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Media_source_1</td>\n",
" <td>install</td>\n",
" <td>Brazil</td>\n",
" <td>100</td>\n",
" <td>10460</td>\n",
" <td>99.12</td>\n",
" <td>0.88</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Media_source_1</td>\n",
" <td>purchase</td>\n",
" <td>Brazil</td>\n",
" <td>400</td>\n",
" <td>1081</td>\n",
" <td>398.67</td>\n",
" <td>1.33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Media_source_1</td>\n",
" <td>install</td>\n",
" <td>Russia</td>\n",
" <td>200</td>\n",
" <td>11894</td>\n",
" <td>246.30</td>\n",
" <td>-46.30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Media_source_1</td>\n",
" <td>purchase</td>\n",
" <td>Russia</td>\n",
" <td>500</td>\n",
" <td>1441</td>\n",
" <td>616.77</td>\n",
" <td>-116.77</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Media_source_1</td>\n",
" <td>install</td>\n",
" <td>Ukrane</td>\n",
" <td>100</td>\n",
" <td>6424</td>\n",
" <td>99.43</td>\n",
" <td>0.57</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Media_source_1</td>\n",
" <td>purchase</td>\n",
" <td>Ukrane</td>\n",
" <td>500</td>\n",
" <td>242</td>\n",
" <td>348.13</td>\n",
" <td>151.87</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Media_source_2</td>\n",
" <td>install</td>\n",
" <td>Brazil</td>\n",
" <td>100</td>\n",
" <td>152</td>\n",
" <td>81.15</td>\n",
" <td>18.85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Media_source_2</td>\n",
" <td>install</td>\n",
" <td>English_speaking</td>\n",
" <td>100</td>\n",
" <td>371</td>\n",
" <td>99.95</td>\n",
" <td>0.05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Total</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2000</td>\n",
" <td>32065</td>\n",
" <td>1989.52</td>\n",
" <td>10.48</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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 "
"{('Media_source_1', 'install', 'Brazil'): 'BRA_MS1_install',\n",
" ('Media_source_1', 'purchase', 'Brazil'): 'BRA_MS1_purchase',\n",
" ('Media_source_1', 'install', 'Russia'): 'RUS_MS1_install',\n",
" ('Media_source_1', 'purchase', 'Russia'): 'RUS_MS1_purchase',\n",
" ('Media_source_1', 'install', 'Ukrane'): 'UKR_MS1_install',\n",
" ('Media_source_1', 'purchase', 'Ukrane'): 'UKR_MS1_purchase',\n",
" ('Media_source_2', 'install', 'Brazil'): 'BRA_MS2_install',\n",
" ('Media_source_2', 'install', 'English_speaking'): 'ENG_MS2_install'}"
]
},
"execution_count": 83,
"execution_count": 114,
"metadata": {},
"output_type": "execute_result"
}
@@ -476,7 +342,24 @@
"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"
"for l in budget.iloc:\n",
" source, campaign, *_ = l\n",
"# print(source, campaign)\n",
"# print(l)\n",
" break\n",
"# print(budget)\n",
"d = {\n",
" (\"Media_source_1\", \"install\", \"Brazil\"): \"BRA_MS1_install\",\n",
" (\"Media_source_1\", \"purchase\", \"Brazil\"): \"BRA_MS1_purchase\",\n",
" (\"Media_source_1\", \"install\", \"Russia\"): \"RUS_MS1_install\",\n",
" (\"Media_source_1\", \"purchase\", \"Russia\"): \"RUS_MS1_purchase\",\n",
" (\"Media_source_1\", \"install\", \"Ukrane\"): \"UKR_MS1_install\",\n",
" (\"Media_source_1\", \"purchase\", \"Ukrane\"): \"UKR_MS1_purchase\",\n",
" (\"Media_source_2\", \"install\", \"Brazil\"): \"BRA_MS2_install\",\n",
" (\"Media_source_2\", \"install\", \"English_speaking\"): \"ENG_MS2_install\",\n",
"}\n",
"# print(budget[['media_source', 'Campaign_type', 'Target']])\n",
"d"
]
},
{
@@ -551,199 +434,17 @@
},
{
"cell_type": "code",
"execution_count": 87,
"execution_count": 92,
"id": "8353352e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>payment_date</th>\n",
" <th>Payment_types</th>\n",
" <th>real_cost</th>\n",
" <th>account_id</th>\n",
" <th>Share, %</th>\n",
" <th>cost</th>\n",
" <th>created_date</th>\n",
" <th>campaign</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>330</th>\n",
" <td>2021-01-01 15:10:26</td>\n",
" <td>Payment_system_5</td>\n",
" <td>2.445710</td>\n",
" <td>3861811</td>\n",
" <td>24.0</td>\n",
" <td>1.858740</td>\n",
" <td>2021-01-07</td>\n",
" <td>RUS_MS1_purchase</td>\n",
" </tr>\n",
" <tr>\n",
" <th>339</th>\n",
" <td>2021-01-01 15:22:00</td>\n",
" <td>Payment_system_5</td>\n",
" <td>2.445710</td>\n",
" <td>3861811</td>\n",
" <td>24.0</td>\n",
" <td>1.858740</td>\n",
" <td>2021-01-07</td>\n",
" <td>RUS_MS1_purchase</td>\n",
" </tr>\n",
" <tr>\n",
" <th>827</th>\n",
" <td>2021-01-01 17:16:09</td>\n",
" <td>Payment_system_5</td>\n",
" <td>9.624570</td>\n",
" <td>3844647</td>\n",
" <td>24.0</td>\n",
" <td>7.314673</td>\n",
" <td>2021-01-01</td>\n",
" <td>BRA_MS1_install</td>\n",
" </tr>\n",
" <tr>\n",
" <th>837</th>\n",
" <td>2021-01-01 17:17:45</td>\n",
" <td>Payment_system_5</td>\n",
" <td>9.624570</td>\n",
" <td>3844647</td>\n",
" <td>24.0</td>\n",
" <td>7.314673</td>\n",
" <td>2021-01-01</td>\n",
" <td>BRA_MS1_install</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1922</th>\n",
" <td>2021-01-02 01:08:32</td>\n",
" <td>Payment_system_5</td>\n",
" <td>0.955872</td>\n",
" <td>3845613</td>\n",
" <td>24.0</td>\n",
" <td>0.726463</td>\n",
" <td>2021-01-02</td>\n",
" <td>RUS_MS1_purchase</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>301124</th>\n",
" <td>2021-12-29 17:14:22</td>\n",
" <td>Payment_system_4</td>\n",
" <td>2.620000</td>\n",
" <td>3924840</td>\n",
" <td>0.0</td>\n",
" <td>2.620000</td>\n",
" <td>2021-01-29</td>\n",
" <td>RUS_MS1_install</td>\n",
" </tr>\n",
" <tr>\n",
" <th>301169</th>\n",
" <td>2021-12-29 18:55:43</td>\n",
" <td>Payment_system_4</td>\n",
" <td>0.100000</td>\n",
" <td>3924840</td>\n",
" <td>0.0</td>\n",
" <td>0.100000</td>\n",
" <td>2021-01-29</td>\n",
" <td>RUS_MS1_install</td>\n",
" </tr>\n",
" <tr>\n",
" <th>301243</th>\n",
" <td>2021-12-29 21:22:10</td>\n",
" <td>Payment_system_4</td>\n",
" <td>0.310000</td>\n",
" <td>3924840</td>\n",
" <td>0.0</td>\n",
" <td>0.310000</td>\n",
" <td>2021-01-29</td>\n",
" <td>RUS_MS1_install</td>\n",
" </tr>\n",
" <tr>\n",
" <th>301471</th>\n",
" <td>2021-12-30 08:15:58</td>\n",
" <td>Payment_system_4</td>\n",
" <td>0.380000</td>\n",
" <td>3924840</td>\n",
" <td>0.0</td>\n",
" <td>0.380000</td>\n",
" <td>2021-01-29</td>\n",
" <td>RUS_MS1_install</td>\n",
" </tr>\n",
" <tr>\n",
" <th>303332</th>\n",
" <td>2021-12-31 20:58:48</td>\n",
" <td>Payment_system_5</td>\n",
" <td>2.309120</td>\n",
" <td>3861811</td>\n",
" <td>24.0</td>\n",
" <td>1.754931</td>\n",
" <td>2021-01-07</td>\n",
" <td>RUS_MS1_purchase</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>711 rows × 8 columns</p>\n",
"</div>"
],
"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]"
"np.float64(468.51355862)"
]
},
"execution_count": 87,
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
@@ -751,8 +452,8 @@
"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')"
"df = df.join(registrations.set_index('account_id'), on=\"account_id\").dropna()\n",
"df[df['campaign'] == 'BRA_MS1_purchase']['cost'].sum()"
]
}
],