Skip to content

Instantly share code, notes, and snippets.

@pr0nstar
Created November 4, 2021 19:09
Show Gist options
  • Save pr0nstar/87f1413fb27bc32f4d309653791af1f1 to your computer and use it in GitHub Desktop.
Save pr0nstar/87f1413fb27bc32f4d309653791af1f1 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 66,
"id": "buried-doctrine",
"metadata": {},
"outputs": [],
"source": [
"import glob\n",
"import unidecode\n",
"\n",
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"id": "treated-thought",
"metadata": {},
"source": [
"Prueba de como cargar datos de vacunacion del snis"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "virgin-kazakhstan",
"metadata": {},
"outputs": [],
"source": [
"muni_data = pd.read_csv('../sdsn.gen.csv')\n",
"muni_data = muni_data.set_index('cod_ine')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "funny-posting",
"metadata": {},
"outputs": [],
"source": [
"file_names = glob.glob(\n",
" '../../covid19-data/raw/bolivia/snis/estadisticas.reportes_dinamicos/otras.vacunaciones/2021/*'\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "increased-cooking",
"metadata": {},
"outputs": [],
"source": [
"def clean_df(df):\n",
" data_df = df.loc[5:]\n",
" data_df = data_df.loc[:, ~data_df.T.isna().T.all(axis=0)]\n",
" data_df = data_df[~data_df.iloc[:, 3].isna()]\n",
"\n",
" data_df = data_df.iloc[:, 1:-2]\n",
" data_df = data_df.T.reset_index(drop=True).T.reset_index(drop=True)\n",
"\n",
" data_df[0] = data_df[0].fillna(method='ffill')\n",
" data_df[1] = data_df[1].fillna(method='ffill')\n",
" \n",
" data_df = data_df.fillna(0)\n",
" \n",
" return data_df"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "preliminary-alcohol",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING *** file size (758950) not 512 + multiple of sector size (512)\n",
"WARNING *** file size (5683233) not 512 + multiple of sector size (512)\n",
"WARNING *** file size (3341456) not 512 + multiple of sector size (512)\n",
"WARNING *** file size (1652097) not 512 + multiple of sector size (512)\n",
"WARNING *** file size (5792897) not 512 + multiple of sector size (512)\n",
"WARNING *** file size (4889451) not 512 + multiple of sector size (512)\n",
"WARNING *** file size (2131038) not 512 + multiple of sector size (512)\n",
"WARNING *** file size (8115261) not 512 + multiple of sector size (512)\n",
"WARNING *** file size (2200379) not 512 + multiple of sector size (512)\n"
]
}
],
"source": [
"df = pd.DataFrame([])\n",
"for file_name in file_names:\n",
" dept_df = pd.read_excel(file_name, header=None)\n",
" dept_df = clean_df(dept_df)\n",
" df = pd.concat([df, dept_df])"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "respiratory-hayes",
"metadata": {},
"outputs": [],
"source": [
"df = df.set_index([0, 1, 2])\n",
"\n",
"df.columns = pd.MultiIndex.from_product([\n",
" np.arange(len(df.columns) / 2, dtype=int) + 1, ['Hombres', 'Mujeres']\n",
"])\n",
"\n",
"df = df.T.unstack().T\n",
"\n",
"df.columns = df.columns.map(lambda _: '2021-{:02d}-01'.format(_))\n",
"df.columns = pd.to_datetime(df.columns)\n",
"\n",
"df.index.names = ['c_ut', 'establecimiento', 'vacuna', 'sexo']"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "accompanied-compensation",
"metadata": {},
"outputs": [],
"source": [
"df_covid = df.loc[df.index.get_level_values(level='vacuna').str.contains('COVID')]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "overall-capitol",
"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></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>2021-01-01</th>\n",
" <th>2021-02-01</th>\n",
" <th>2021-03-01</th>\n",
" <th>2021-04-01</th>\n",
" <th>2021-05-01</th>\n",
" <th>2021-06-01</th>\n",
" <th>2021-07-01</th>\n",
" <th>2021-08-01</th>\n",
" <th>2021-09-01</th>\n",
" </tr>\n",
" <tr>\n",
" <th>c_ut</th>\n",
" <th>establecimiento</th>\n",
" <th>vacuna</th>\n",
" <th>sexo</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">90101</th>\n",
" <th rowspan=\"4\" valign=\"top\">27 DE MAYO</th>\n",
" <th rowspan=\"2\" valign=\"top\">17.23 COVID 1ra Dosis</th>\n",
" <th>Hombres</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>92</td>\n",
" <td>1987</td>\n",
" <td>126</td>\n",
" <td>154</td>\n",
" <td>110</td>\n",
" <td>156</td>\n",
" <td>55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mujeres</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>105</td>\n",
" <td>1902</td>\n",
" <td>110</td>\n",
" <td>126</td>\n",
" <td>120</td>\n",
" <td>117</td>\n",
" <td>59</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">17.24 COVID 2da Dosis</th>\n",
" <th>Hombres</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>17</td>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>91</td>\n",
" <td>995</td>\n",
" <td>413</td>\n",
" <td>132</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mujeres</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>36</td>\n",
" <td>21</td>\n",
" <td>2</td>\n",
" <td>70</td>\n",
" <td>1134</td>\n",
" <td>333</td>\n",
" <td>91</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ALTO BAHIA</th>\n",
" <th>17.23 COVID 1ra Dosis</th>\n",
" <th>Hombres</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <th>...</th>\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",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">60601</th>\n",
" <th rowspan=\"5\" valign=\"top\">YUQUIMBIA</th>\n",
" <th>17.23 COVID 1ra Dosis</th>\n",
" <th>Mujeres</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>21</td>\n",
" <td>19</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">17.24 COVID 2da Dosis</th>\n",
" <th>Hombres</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>9</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mujeres</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>20</td>\n",
" <td>17</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">17.25 COVID Dosis Unica</th>\n",
" <th>Hombres</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>51</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mujeres</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>16430 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" 2021-01-01 \\\n",
"c_ut establecimiento vacuna sexo \n",
"90101 27 DE MAYO ... 17.23 COVID 1ra Dosis ... Hombres 0 \n",
" Mujeres 0 \n",
" 17.24 COVID 2da Dosis ... Hombres 0 \n",
" Mujeres 0 \n",
" ALTO BAHIA ... 17.23 COVID 1ra Dosis ... Hombres 0 \n",
"... ... \n",
"60601 YUQUIMBIA ... 17.23 COVID 1ra Dosis ... Mujeres 0 \n",
" 17.24 COVID 2da Dosis ... Hombres 0 \n",
" Mujeres 0 \n",
" 17.25 COVID Dosis Unica ... Hombres 0 \n",
" Mujeres 0 \n",
"\n",
" 2021-02-01 \\\n",
"c_ut establecimiento vacuna sexo \n",
"90101 27 DE MAYO ... 17.23 COVID 1ra Dosis ... Hombres 0 \n",
" Mujeres 0 \n",
" 17.24 COVID 2da Dosis ... Hombres 0 \n",
" Mujeres 0 \n",
" ALTO BAHIA ... 17.23 COVID 1ra Dosis ... Hombres 0 \n",
"... ... \n",
"60601 YUQUIMBIA ... 17.23 COVID 1ra Dosis ... Mujeres 0 \n",
" 17.24 COVID 2da Dosis ... Hombres 0 \n",
" Mujeres 0 \n",
" 17.25 COVID Dosis Unica ... Hombres 0 \n",
" Mujeres 0 \n",
"\n",
" 2021-03-01 \\\n",
"c_ut establecimiento vacuna sexo \n",
"90101 27 DE MAYO ... 17.23 COVID 1ra Dosis ... Hombres 92 \n",
" Mujeres 105 \n",
" 17.24 COVID 2da Dosis ... Hombres 17 \n",
" Mujeres 36 \n",
" ALTO BAHIA ... 17.23 COVID 1ra Dosis ... Hombres 0 \n",
"... ... \n",
"60601 YUQUIMBIA ... 17.23 COVID 1ra Dosis ... Mujeres 0 \n",
" 17.24 COVID 2da Dosis ... Hombres 0 \n",
" Mujeres 0 \n",
" 17.25 COVID Dosis Unica ... Hombres 0 \n",
" Mujeres 0 \n",
"\n",
" 2021-04-01 \\\n",
"c_ut establecimiento vacuna sexo \n",
"90101 27 DE MAYO ... 17.23 COVID 1ra Dosis ... Hombres 1987 \n",
" Mujeres 1902 \n",
" 17.24 COVID 2da Dosis ... Hombres 10 \n",
" Mujeres 21 \n",
" ALTO BAHIA ... 17.23 COVID 1ra Dosis ... Hombres 0 \n",
"... ... \n",
"60601 YUQUIMBIA ... 17.23 COVID 1ra Dosis ... Mujeres 0 \n",
" 17.24 COVID 2da Dosis ... Hombres 0 \n",
" Mujeres 0 \n",
" 17.25 COVID Dosis Unica ... Hombres 0 \n",
" Mujeres 0 \n",
"\n",
" 2021-05-01 \\\n",
"c_ut establecimiento vacuna sexo \n",
"90101 27 DE MAYO ... 17.23 COVID 1ra Dosis ... Hombres 126 \n",
" Mujeres 110 \n",
" 17.24 COVID 2da Dosis ... Hombres 0 \n",
" Mujeres 2 \n",
" ALTO BAHIA ... 17.23 COVID 1ra Dosis ... Hombres 0 \n",
"... ... \n",
"60601 YUQUIMBIA ... 17.23 COVID 1ra Dosis ... Mujeres 0 \n",
" 17.24 COVID 2da Dosis ... Hombres 0 \n",
" Mujeres 0 \n",
" 17.25 COVID Dosis Unica ... Hombres 0 \n",
" Mujeres 0 \n",
"\n",
" 2021-06-01 \\\n",
"c_ut establecimiento vacuna sexo \n",
"90101 27 DE MAYO ... 17.23 COVID 1ra Dosis ... Hombres 154 \n",
" Mujeres 126 \n",
" 17.24 COVID 2da Dosis ... Hombres 91 \n",
" Mujeres 70 \n",
" ALTO BAHIA ... 17.23 COVID 1ra Dosis ... Hombres 5 \n",
"... ... \n",
"60601 YUQUIMBIA ... 17.23 COVID 1ra Dosis ... Mujeres 21 \n",
" 17.24 COVID 2da Dosis ... Hombres 0 \n",
" Mujeres 0 \n",
" 17.25 COVID Dosis Unica ... Hombres 0 \n",
" Mujeres 0 \n",
"\n",
" 2021-07-01 \\\n",
"c_ut establecimiento vacuna sexo \n",
"90101 27 DE MAYO ... 17.23 COVID 1ra Dosis ... Hombres 110 \n",
" Mujeres 120 \n",
" 17.24 COVID 2da Dosis ... Hombres 995 \n",
" Mujeres 1134 \n",
" ALTO BAHIA ... 17.23 COVID 1ra Dosis ... Hombres 0 \n",
"... ... \n",
"60601 YUQUIMBIA ... 17.23 COVID 1ra Dosis ... Mujeres 19 \n",
" 17.24 COVID 2da Dosis ... Hombres 9 \n",
" Mujeres 20 \n",
" 17.25 COVID Dosis Unica ... Hombres 0 \n",
" Mujeres 0 \n",
"\n",
" 2021-08-01 \\\n",
"c_ut establecimiento vacuna sexo \n",
"90101 27 DE MAYO ... 17.23 COVID 1ra Dosis ... Hombres 156 \n",
" Mujeres 117 \n",
" 17.24 COVID 2da Dosis ... Hombres 413 \n",
" Mujeres 333 \n",
" ALTO BAHIA ... 17.23 COVID 1ra Dosis ... Hombres 0 \n",
"... ... \n",
"60601 YUQUIMBIA ... 17.23 COVID 1ra Dosis ... Mujeres 0 \n",
" 17.24 COVID 2da Dosis ... Hombres 7 \n",
" Mujeres 17 \n",
" 17.25 COVID Dosis Unica ... Hombres 51 \n",
" Mujeres 33 \n",
"\n",
" 2021-09-01 \n",
"c_ut establecimiento vacuna sexo \n",
"90101 27 DE MAYO ... 17.23 COVID 1ra Dosis ... Hombres 55 \n",
" Mujeres 59 \n",
" 17.24 COVID 2da Dosis ... Hombres 132 \n",
" Mujeres 91 \n",
" ALTO BAHIA ... 17.23 COVID 1ra Dosis ... Hombres 4 \n",
"... ... \n",
"60601 YUQUIMBIA ... 17.23 COVID 1ra Dosis ... Mujeres 0 \n",
" 17.24 COVID 2da Dosis ... Hombres 0 \n",
" Mujeres 0 \n",
" 17.25 COVID Dosis Unica ... Hombres 4 \n",
" Mujeres 1 \n",
"\n",
"[16430 rows x 9 columns]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_covid"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "leading-tactics",
"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 tr th {\n",
" text-align: left;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"4\" halign=\"left\">La Paz</th>\n",
" <th colspan=\"4\" halign=\"left\">Cochabamba</th>\n",
" <th colspan=\"2\" halign=\"left\">Santa Cruz</th>\n",
" <th>...</th>\n",
" <th colspan=\"2\" halign=\"left\">Chuquisaca</th>\n",
" <th colspan=\"4\" halign=\"left\">Beni</th>\n",
" <th colspan=\"4\" halign=\"left\">Pando</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>Primera</th>\n",
" <th>Segunda</th>\n",
" <th>Tercera</th>\n",
" <th>Unica</th>\n",
" <th>Primera</th>\n",
" <th>Segunda</th>\n",
" <th>Tercera</th>\n",
" <th>Unica</th>\n",
" <th>Primera</th>\n",
" <th>Segunda</th>\n",
" <th>...</th>\n",
" <th>Tercera</th>\n",
" <th>Unica</th>\n",
" <th>Primera</th>\n",
" <th>Segunda</th>\n",
" <th>Tercera</th>\n",
" <th>Unica</th>\n",
" <th>Primera</th>\n",
" <th>Segunda</th>\n",
" <th>Tercera</th>\n",
" <th>Unica</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2021-02-02</th>\n",
" <td>12.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>278.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>647.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>6.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>270.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-03</th>\n",
" <td>361.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>687.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1264.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>48.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>388.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-04</th>\n",
" <td>1030.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1044.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1393.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>63.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>488.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-05</th>\n",
" <td>1783.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1369.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1638.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>154.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>550.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-06</th>\n",
" <td>1859.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1369.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1638.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>170.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>550.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</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",
" <td>...</td>\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",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-10-27</th>\n",
" <td>851867.0</td>\n",
" <td>683092.0</td>\n",
" <td>54491.0</td>\n",
" <td>248119.0</td>\n",
" <td>664105.0</td>\n",
" <td>549097.0</td>\n",
" <td>60169.0</td>\n",
" <td>168468.0</td>\n",
" <td>1049217.0</td>\n",
" <td>827315.0</td>\n",
" <td>...</td>\n",
" <td>18302.0</td>\n",
" <td>36465.0</td>\n",
" <td>139523.0</td>\n",
" <td>105153.0</td>\n",
" <td>6304.0</td>\n",
" <td>12559.0</td>\n",
" <td>50981.0</td>\n",
" <td>36468.0</td>\n",
" <td>3545.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-10-28</th>\n",
" <td>853805.0</td>\n",
" <td>684887.0</td>\n",
" <td>59864.0</td>\n",
" <td>248538.0</td>\n",
" <td>668309.0</td>\n",
" <td>551423.0</td>\n",
" <td>63838.0</td>\n",
" <td>168530.0</td>\n",
" <td>1051370.0</td>\n",
" <td>831826.0</td>\n",
" <td>...</td>\n",
" <td>19560.0</td>\n",
" <td>36489.0</td>\n",
" <td>139818.0</td>\n",
" <td>105528.0</td>\n",
" <td>7114.0</td>\n",
" <td>12664.0</td>\n",
" <td>51044.0</td>\n",
" <td>36545.0</td>\n",
" <td>3766.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-10-29</th>\n",
" <td>857111.0</td>\n",
" <td>688416.0</td>\n",
" <td>69261.0</td>\n",
" <td>250470.0</td>\n",
" <td>676467.0</td>\n",
" <td>555388.0</td>\n",
" <td>70963.0</td>\n",
" <td>168783.0</td>\n",
" <td>NaN</td>\n",
" <td>837538.0</td>\n",
" <td>...</td>\n",
" <td>22356.0</td>\n",
" <td>36557.0</td>\n",
" <td>140615.0</td>\n",
" <td>106509.0</td>\n",
" <td>9192.0</td>\n",
" <td>13013.0</td>\n",
" <td>51285.0</td>\n",
" <td>36749.0</td>\n",
" <td>4739.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-10-30</th>\n",
" <td>858159.0</td>\n",
" <td>689534.0</td>\n",
" <td>72214.0</td>\n",
" <td>252038.0</td>\n",
" <td>678452.0</td>\n",
" <td>556261.0</td>\n",
" <td>73490.0</td>\n",
" <td>169063.0</td>\n",
" <td>1056397.0</td>\n",
" <td>838341.0</td>\n",
" <td>...</td>\n",
" <td>23453.0</td>\n",
" <td>36655.0</td>\n",
" <td>140967.0</td>\n",
" <td>106866.0</td>\n",
" <td>10137.0</td>\n",
" <td>13117.0</td>\n",
" <td>51457.0</td>\n",
" <td>36864.0</td>\n",
" <td>5414.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-10-31</th>\n",
" <td>858318.0</td>\n",
" <td>689705.0</td>\n",
" <td>73520.0</td>\n",
" <td>252224.0</td>\n",
" <td>679200.0</td>\n",
" <td>557094.0</td>\n",
" <td>74902.0</td>\n",
" <td>169078.0</td>\n",
" <td>1057448.0</td>\n",
" <td>839662.0</td>\n",
" <td>...</td>\n",
" <td>24049.0</td>\n",
" <td>36663.0</td>\n",
" <td>141083.0</td>\n",
" <td>106930.0</td>\n",
" <td>10434.0</td>\n",
" <td>13129.0</td>\n",
" <td>51483.0</td>\n",
" <td>36888.0</td>\n",
" <td>5538.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>272 rows × 36 columns</p>\n",
"</div>"
],
"text/plain": [
" La Paz Cochabamba \\\n",
" Primera Segunda Tercera Unica Primera Segunda \n",
"2021-02-02 12.0 0.0 0.0 0.0 278.0 0.0 \n",
"2021-02-03 361.0 0.0 0.0 0.0 687.0 0.0 \n",
"2021-02-04 1030.0 0.0 0.0 0.0 1044.0 0.0 \n",
"2021-02-05 1783.0 0.0 0.0 0.0 1369.0 0.0 \n",
"2021-02-06 1859.0 0.0 0.0 0.0 1369.0 0.0 \n",
"... ... ... ... ... ... ... \n",
"2021-10-27 851867.0 683092.0 54491.0 248119.0 664105.0 549097.0 \n",
"2021-10-28 853805.0 684887.0 59864.0 248538.0 668309.0 551423.0 \n",
"2021-10-29 857111.0 688416.0 69261.0 250470.0 676467.0 555388.0 \n",
"2021-10-30 858159.0 689534.0 72214.0 252038.0 678452.0 556261.0 \n",
"2021-10-31 858318.0 689705.0 73520.0 252224.0 679200.0 557094.0 \n",
"\n",
" Santa Cruz ... Chuquisaca \\\n",
" Tercera Unica Primera Segunda ... Tercera Unica \n",
"2021-02-02 0.0 0.0 647.0 0.0 ... 0.0 0.0 \n",
"2021-02-03 0.0 0.0 1264.0 0.0 ... 0.0 0.0 \n",
"2021-02-04 0.0 0.0 1393.0 0.0 ... 0.0 0.0 \n",
"2021-02-05 0.0 0.0 1638.0 0.0 ... 0.0 0.0 \n",
"2021-02-06 0.0 0.0 1638.0 0.0 ... 0.0 0.0 \n",
"... ... ... ... ... ... ... ... \n",
"2021-10-27 60169.0 168468.0 1049217.0 827315.0 ... 18302.0 36465.0 \n",
"2021-10-28 63838.0 168530.0 1051370.0 831826.0 ... 19560.0 36489.0 \n",
"2021-10-29 70963.0 168783.0 NaN 837538.0 ... 22356.0 36557.0 \n",
"2021-10-30 73490.0 169063.0 1056397.0 838341.0 ... 23453.0 36655.0 \n",
"2021-10-31 74902.0 169078.0 1057448.0 839662.0 ... 24049.0 36663.0 \n",
"\n",
" Beni Pando \\\n",
" Primera Segunda Tercera Unica Primera Segunda Tercera \n",
"2021-02-02 6.0 0.0 0.0 0.0 270.0 0.0 0.0 \n",
"2021-02-03 48.0 0.0 0.0 0.0 388.0 0.0 0.0 \n",
"2021-02-04 63.0 0.0 0.0 0.0 488.0 0.0 0.0 \n",
"2021-02-05 154.0 0.0 0.0 0.0 550.0 0.0 0.0 \n",
"2021-02-06 170.0 0.0 0.0 0.0 550.0 0.0 0.0 \n",
"... ... ... ... ... ... ... ... \n",
"2021-10-27 139523.0 105153.0 6304.0 12559.0 50981.0 36468.0 3545.0 \n",
"2021-10-28 139818.0 105528.0 7114.0 12664.0 51044.0 36545.0 3766.0 \n",
"2021-10-29 140615.0 106509.0 9192.0 13013.0 51285.0 36749.0 4739.0 \n",
"2021-10-30 140967.0 106866.0 10137.0 13117.0 51457.0 36864.0 5414.0 \n",
"2021-10-31 141083.0 106930.0 10434.0 13129.0 51483.0 36888.0 5538.0 \n",
"\n",
" \n",
" Unica \n",
"2021-02-02 0.0 \n",
"2021-02-03 0.0 \n",
"2021-02-04 0.0 \n",
"2021-02-05 0.0 \n",
"2021-02-06 0.0 \n",
"... ... \n",
"2021-10-27 0.0 \n",
"2021-10-28 0.0 \n",
"2021-10-29 0.0 \n",
"2021-10-30 0.0 \n",
"2021-10-31 0.0 \n",
"\n",
"[272 rows x 36 columns]"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vaccs_df = pd.read_csv('../../covid19-data/processed/bolivia/vaccinations.csv', header=[0, 1], index_col=0)\n",
"vaccs_df.index = pd.to_datetime(vaccs_df.index)\n",
"\n",
"vaccs_df"
]
},
{
"cell_type": "code",
"execution_count": 89,
"id": "destroyed-contemporary",
"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>vacuna</th>\n",
" <th>17.23 COVID 1ra Dosis</th>\n",
" <th>17.24 COVID 2da Dosis</th>\n",
" <th>17.25 COVID Dosis Unica</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2021-01-01</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-01</th>\n",
" <td>111</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-03-01</th>\n",
" <td>9307</td>\n",
" <td>4699</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-04-01</th>\n",
" <td>38824</td>\n",
" <td>11385</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-05-01</th>\n",
" <td>88495</td>\n",
" <td>19773</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-06-01</th>\n",
" <td>137844</td>\n",
" <td>44523</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-07-01</th>\n",
" <td>186904</td>\n",
" <td>82069</td>\n",
" <td>416</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-01</th>\n",
" <td>203590</td>\n",
" <td>126495</td>\n",
" <td>13546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-09-01</th>\n",
" <td>214100</td>\n",
" <td>154179</td>\n",
" <td>16611</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"vacuna 17.23 COVID 1ra Dosis \\\n",
"2021-01-01 0 \n",
"2021-02-01 111 \n",
"2021-03-01 9307 \n",
"2021-04-01 38824 \n",
"2021-05-01 88495 \n",
"2021-06-01 137844 \n",
"2021-07-01 186904 \n",
"2021-08-01 203590 \n",
"2021-09-01 214100 \n",
"\n",
"vacuna 17.24 COVID 2da Dosis \\\n",
"2021-01-01 1 \n",
"2021-02-01 1 \n",
"2021-03-01 4699 \n",
"2021-04-01 11385 \n",
"2021-05-01 19773 \n",
"2021-06-01 44523 \n",
"2021-07-01 82069 \n",
"2021-08-01 126495 \n",
"2021-09-01 154179 \n",
"\n",
"vacuna 17.25 COVID Dosis Unica \n",
"2021-01-01 0 \n",
"2021-02-01 0 \n",
"2021-03-01 0 \n",
"2021-04-01 0 \n",
"2021-05-01 0 \n",
"2021-06-01 0 \n",
"2021-07-01 416 \n",
"2021-08-01 13546 \n",
"2021-09-01 16611 "
]
},
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_covid.loc['20101'].groupby(level='vacuna').sum().T.cumsum()"
]
},
{
"cell_type": "code",
"execution_count": 90,
"id": "closed-guarantee",
"metadata": {},
"outputs": [],
"source": [
"vac_rate_df = pd.DataFrame([])\n",
"\n",
"for dept_key, c_ut in muni_data.reset_index().groupby('departamento')['cod_ine'].first().iteritems():\n",
" c_ut = str(c_ut)[0]\n",
" dept_key = unidecode.unidecode(dept_key)\n",
" \n",
" df_dept = df_covid.loc[df_covid.index.get_level_values(0).str.startswith(c_ut)]\n",
" df_dept = df_dept.groupby(level=['c_ut', 'vacuna']).sum().sum(axis=1).to_frame().unstack()\n",
" df_dept.index = muni_data.reindex(df_dept.index.astype(int))['municipio']\n",
"\n",
" df_dept = df_dept.sum()\n",
" df_dept.index = ['Primera', 'Segunda', 'Unica']\n",
" \n",
" vaccs_dept = vaccs_df[dept_key].interpolate().loc['2021-09-30'].drop('Tercera')\n",
" \n",
" vac_rate_df = pd.concat([\n",
" vac_rate_df,\n",
" (df_dept / vaccs_dept).rename(dept_key)\n",
" ], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 79,
"id": "agricultural-terry",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Primera 232168.0\n",
"Segunda 191008.0\n",
"Unica 33189.5\n",
"Name: 2021-09-30 00:00:00, dtype: float64"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vaccs_df[dept_key].interpolate().loc['2021-09-30'].drop('Tercera')"
]
},
{
"cell_type": "code",
"execution_count": 78,
"id": "grand-correspondence",
"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>Beni</th>\n",
" <th>Chuquisaca</th>\n",
" <th>Cochabamba</th>\n",
" <th>La Paz</th>\n",
" <th>Oruro</th>\n",
" <th>Pando</th>\n",
" <th>Potosi</th>\n",
" <th>Santa Cruz</th>\n",
" <th>Tarija</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Primera</th>\n",
" <td>0.78</td>\n",
" <td>1.00</td>\n",
" <td>0.78</td>\n",
" <td>0.53</td>\n",
" <td>0.83</td>\n",
" <td>0.99</td>\n",
" <td>0.81</td>\n",
" <td>0.68</td>\n",
" <td>0.84</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Segunda</th>\n",
" <td>0.77</td>\n",
" <td>0.97</td>\n",
" <td>0.74</td>\n",
" <td>0.53</td>\n",
" <td>0.82</td>\n",
" <td>0.98</td>\n",
" <td>0.88</td>\n",
" <td>0.59</td>\n",
" <td>0.85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Unica</th>\n",
" <td>0.75</td>\n",
" <td>0.78</td>\n",
" <td>0.84</td>\n",
" <td>0.45</td>\n",
" <td>0.91</td>\n",
" <td>1.00</td>\n",
" <td>0.65</td>\n",
" <td>0.35</td>\n",
" <td>0.67</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Beni Chuquisaca Cochabamba La Paz Oruro Pando Potosi \\\n",
"Primera 0.78 1.00 0.78 0.53 0.83 0.99 0.81 \n",
"Segunda 0.77 0.97 0.74 0.53 0.82 0.98 0.88 \n",
"Unica 0.75 0.78 0.84 0.45 0.91 1.00 0.65 \n",
"\n",
" Santa Cruz Tarija \n",
"Primera 0.68 0.84 \n",
"Segunda 0.59 0.85 \n",
"Unica 0.35 0.67 "
]
},
"execution_count": 78,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vac_rate_df.replace(np.inf, 1).round(2)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment