{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![](https://raw.githubusercontent.com/rafneta/CienciaDatosPythonCIDE/master/imagenes/banner.png)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Ejemplos Pandas\n", "\n", "\n", "## Base de datos ESRU-EMOVI 2017\n", "\n", "\n", "\n", "Por primera vez y gracias al enfoque territorial de la ESRU – EMOVI 2017, es posible medir la movilidad social por regiones. La encuesta de 2017, al igual que las anteriores, tiene como finalidad principal medir la movilidad social intergeneracional. Cuenta con 17,665 entrevistas y es representativa de hombres y mujeres entre 25 y 64 años a nivel nacional, para la Ciudad de México y cinco regiones del país: norte, norte-occidente, centro, centro-norte y sur. Los objetivos de la ESRU-EMOVI 2017 son:\n", "\n", "- Contar con información actualizada en las distintas dimensiones de la movilidad social a nivel nacional.\n", "\n", "- Generar estimaciones de movilidad para cinco regiones del país y la Ciudad de México.\n", "\n", "- Analizar los patrones de movilidad social desde la perspectiva de la desigualdad de oportunidades.\n", "\n", "Encuesta financiada por la Fundación ESRU. [CEEY](https://ceey.org.mx/contenido/que-hacemos/emovi/) \n", "\n" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import seaborn as sns\n", "import string" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "folio object\n", "Estado float64\n", "folio_ageb object\n", "consecutivo object\n", "Origen float64\n", " ... \n", "cmo2_2 object\n", "cmo3_2 object\n", "cmo4_2 object\n", "cmo5_2 object\n", "tamhog float64\n", "Length: 366, dtype: object" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_stata('ESRU-EMOVI-2017-Entrevistado.dta',\n", " convert_categoricals= False\n", " )\n", "df.dtypes" ] }, { "cell_type": "code", "execution_count": 25, "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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
folioEstadofolio_agebconsecutivoOrigenLatitudLongitudLatitudGPLongitudGPrecontacto...regioncdmxtot_intrururbcmo1_2cmo2_2cmo3_2cmo4_2cmo5_2tamhog
001001000102860208301021.0010010001028611.021.901323-102.31059821.901477-102.3104292...3.0NaN5.00.041..13.5.0
101001000102860208502011.0010010001028612.021.901323-102.31059821.900773-102.3111381...3.0NaN1.00.041..41.1.0
201001000102860258302011.0010010001028611.021.900830-102.31181821.900549-102.3133611...3.0NaN2.00.081..11.2.0
301001000102860258401011.0010010001028611.021.901188-102.31070021.900765-102.3131441...3.0NaN1.00.052....1.0
401001000102860258501011.0010010001028612.021.901188-102.31070021.900577-102.3127331...3.0NaN2.00.052....2.0
..................................................................
17660320570001002201946040232.0320570001002221.022.755409-102.51398522.755409-102.5139851...2.0NaN4.00.071...714.0
17661320570001002202545050132.0320570001002221.022.288405-101.57753222.288405-101.5775321...2.0NaN4.00.0...82714.0
17662320570001002202546030132.0320570001002221.022.758625-102.49937522.758625-102.4993751...2.0NaN6.00.0...53526.0
17663320570001002202546030232.0320570001002221.022.755420-102.51399722.755420-102.5139971...2.0NaN5.00.0.52.53625.0
17664320570001002202546050132.0320570001002271.022.758625-102.49937522.758625-102.4993751...2.0NaN10.00.0....4110.0
\n", "

17665 rows × 366 columns

\n", "
" ], "text/plain": [ " folio Estado folio_ageb consecutivo Origen \\\n", "0 0100100010286020830102 1.0 0100100010286 1 1.0 \n", "1 0100100010286020850201 1.0 0100100010286 1 2.0 \n", "2 0100100010286025830201 1.0 0100100010286 1 1.0 \n", "3 0100100010286025840101 1.0 0100100010286 1 1.0 \n", "4 0100100010286025850101 1.0 0100100010286 1 2.0 \n", "... ... ... ... ... ... \n", "17660 3205700010022019460402 32.0 3205700010022 2 1.0 \n", "17661 3205700010022025450501 32.0 3205700010022 2 1.0 \n", "17662 3205700010022025460301 32.0 3205700010022 2 1.0 \n", "17663 3205700010022025460302 32.0 3205700010022 2 1.0 \n", "17664 3205700010022025460501 32.0 3205700010022 7 1.0 \n", "\n", " Latitud Longitud LatitudGP LongitudGP recontacto ... region \\\n", "0 21.901323 -102.310598 21.901477 -102.310429 2 ... 3.0 \n", "1 21.901323 -102.310598 21.900773 -102.311138 1 ... 3.0 \n", "2 21.900830 -102.311818 21.900549 -102.313361 1 ... 3.0 \n", "3 21.901188 -102.310700 21.900765 -102.313144 1 ... 3.0 \n", "4 21.901188 -102.310700 21.900577 -102.312733 1 ... 3.0 \n", "... ... ... ... ... ... ... ... \n", "17660 22.755409 -102.513985 22.755409 -102.513985 1 ... 2.0 \n", "17661 22.288405 -101.577532 22.288405 -101.577532 1 ... 2.0 \n", "17662 22.758625 -102.499375 22.758625 -102.499375 1 ... 2.0 \n", "17663 22.755420 -102.513997 22.755420 -102.513997 1 ... 2.0 \n", "17664 22.758625 -102.499375 22.758625 -102.499375 1 ... 2.0 \n", "\n", " cdmx tot_int rururb cmo1_2 cmo2_2 cmo3_2 cmo4_2 cmo5_2 tamhog \n", "0 NaN 5.0 0.0 41 . . 13 . 5.0 \n", "1 NaN 1.0 0.0 41 . . 41 . 1.0 \n", "2 NaN 2.0 0.0 81 . . 11 . 2.0 \n", "3 NaN 1.0 0.0 52 . . . . 1.0 \n", "4 NaN 2.0 0.0 52 . . . . 2.0 \n", "... ... ... ... ... ... ... ... ... ... \n", "17660 NaN 4.0 0.0 71 . . . 71 4.0 \n", "17661 NaN 4.0 0.0 . . . 82 71 4.0 \n", "17662 NaN 6.0 0.0 . . . 53 52 6.0 \n", "17663 NaN 5.0 0.0 . 52 . 53 62 5.0 \n", "17664 NaN 10.0 0.0 . . . . 41 10.0 \n", "\n", "[17665 rows x 366 columns]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "De acuerdo a las preguntas, hacemos un filtro de acuerdo lo que necesitemos" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "valores cohort de ingreso [4 3 7 5 1 2 6]\n" ] } ], "source": [ "# pregunta p02, comparten el mimso gasto para comer: 1 ) Si 2 ) No\n", "df2 = df[df.p02 == 1 ]\n", "\n", "# pregunta p08, es el jefe del hogar: 1 ) Si \n", "#df2 = df2[df2.p08 == 1 ]\n", "\n", "# pregunta p12. actualmente estudia, 1)Si 2)No\n", "df2 = df2[df2.p12 == 2 ]\n", "\n", "# aós alacnazado podria ser importante p14\n", "\n", "# p13, nivel escuela 1-12. 97 = no fue a la escuela\n", "#df2 = df2[df2.p13 = 97 ] # quitamos la no asistencia\n", "#print(df2.p13.unique())\n", "\n", "\n", "# p63, Escuela publica o privada, 8 = No aplica \n", "# estonces sino aplica con quedamos con el más alto \n", "# esta valirvale es mas complicada, por el momento no la utiizamos\n", "# (preguntas por cada caso)\n", "\n", "\n", "\n", "# p68, Personas que trabajan, 1. Si, 2. No\n", "# p69, negocio vacaciones, 1. Si, 2. No\n", "df2 = df2[(df2.p68 == 1) | (df2.p69 == 1)] # quitamos los no ocupados\n", "\n", "\n", "# p120, material de la casa opciones: 1,2,3\n", "\n", "# p121, numero de cuartos para dormir, libre\n", "\n", "# p122, numeor totales de cuartos, libre\n", "\n", "# p123, casa propia o del conyugue, 1. Sí, 2. No \n", "\n", "# p125, servicios básicos de la vivienda, \n", "# 125a - 125e (preguntas por cada caso, 1. Si, 2. No)\n", "\n", "# p126, articulos propiedad del hogar \n", "# 126a - 126r (preguntas por cada caso, 1. Si , 2. No)\n", "\n", "# p127, prestamo variable 1-9, 8 es otro caso\n", "#df2 = df2[df2.p127 != 8 ] # quitamos la otra posibilidad\n", "\n", "# p128, ahorros, tarjeta de credito, cuent abancaria, \n", "# a-f (preguntas por cada caso) 1. Si 2. No\n", "\n", "# p129, pertenencias propias o de conyugue, \n", "# a-e (pregunta por cada caso) 1. Si, 2. No\n", "\n", "# p130, apoyo economico porgramas u otro medio, \n", "# a-f, (preguntas por cada caso) \n", "\n", "# p131, numero de automoviles propios, libre\n", "\n", "# p132, numero de miembros que aportan ingreso al hogar\n", "df2 = df2[df2.p132 == 1] # un solo sosten\n", "\n", "# Cohort de ingreso todas las personas que aportan ingresos\n", "df2 = df2[(df2.p133 != 8) & ( df2.p133 != 9) ] #ingreso no reportado o no diponible\n", "\n", "print('valores cohort de ingreso',df2.p133.unique())\n", "\n", "\n", "# p134, condiciones del barrio\n", "# a-i, (preguntas por cada caso) 1. Si , 2. No, 8 son respuesta \n", "p = \"p134\"\n", "\n", "\n", "for _ in \"abcdefghi\":\n", " df2 = df2[df2[p+_] != 8]\n", "\n", "\n", "# p147 percepción de 1 más pobre + 10 más rico\n", " \n", " \n", "#df2.p08.plot.hist()\n", "\n", "\n", "#df2.p133.plot.hist()\n", "\n", "Estado = [\"Estado\"]\n", "p5 = ['p05']\n", "p6 = ['p06']\n", "p13 = ['p13']\n", "SINCO = ['SINCO3']\n", "p63 = ['p63a','p63b','p63c','p63d'] # por el momento la quitamos de la estimación\n", "p120 = ['p120']\n", "p121 = ['p121']\n", "p122 = ['p122']\n", "p123 = ['p123']\n", "p125 = ['p125a','p125b','p125c','p125d','p125e']\n", "import string\n", "p126 = ['p126' + i for i in string.ascii_lowercase[0:18] ]\n", "p127 = ['p127']\n", "p128 = ['p128a','p128b','p128c','p128d','p128e','p128f']\n", "p129 = ['p129a','p129b','p129c','p129d','p129e']\n", "p130 = ['p130a','p130b','p130c','p130d','p130e', 'p130f']\n", "p131 = ['p131']\n", "p132 = ['p132']\n", "p134 = ['p134a','p134b','p134c','p134d','p134e', 'p134f','p134g','p134h','p134i']\n", "p147 = ['p147']\n", "\n", "#indexX = p13 + p120 + p121 + p122 + p123 + p125 + p126 + p127 + p128 + p129 + p130 + p131 \n", "\n", "#indexX = p13 + p121 + p122 + p127 + p131 \n", "\n", "\n", "#indexX = p13 + p131 \n", "\n", "indexX = Estado + p5 + p6 + p13 + SINCO\n", "\n", "\n", "indexY = ['p133']\n", "\n", "M = df2[indexX+indexY].dropna() \n", "\n", "M.loc[M.p133 == 2,'p133'] = 1\n", "M.loc[M.p133 != 1,'p133'] = M.p133 - 1\n", "\n", "\n", "\n", "X = M[indexX].to_numpy()\n", "Xc = M[indexX].astype('category')\n", "y = M[indexY].to_numpy()\n", "yc = M[indexY].astype('category')\n", "y = np.ravel(y)\n", "y = y-1;\n" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 3699 entries, 6 to 17653\n", "Data columns (total 5 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Estado 3699 non-null category\n", " 1 p05 3699 non-null category\n", " 2 p06 3699 non-null category\n", " 3 p13 3699 non-null category\n", " 4 SINCO3 3699 non-null category\n", "dtypes: category(5)\n", "memory usage: 226.8 KB\n" ] } ], "source": [ "Xc.info()" ] }, { "cell_type": "code", "execution_count": 31, "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", "
Estadop05p06p13SINCO3
count3699.03699.036993699.03699
unique32.040.0213.0305
top9.040.012.04111
freq600.0146.02254943.0489
\n", "
" ], "text/plain": [ " Estado p05 p06 p13 SINCO3\n", "count 3699.0 3699.0 3699 3699.0 3699\n", "unique 32.0 40.0 2 13.0 305\n", "top 9.0 40.0 1 2.0 4111\n", "freq 600.0 146.0 2254 943.0 489" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Xc.describe()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Estado p05 p06 p13 SINCO3\n", "7.0 25.0 2 3.0 9998 4\n", " 62.0 1 2.0 6111 4\n", "4.0 64.0 1 2.0 6111 3\n", "6.0 62.0 1 2.0 7121 3\n", "9.0 26.0 1 6.0 4211 3\n", " ..\n", "19.0 27.0 2 11.0 1511 1\n", " 4.0 4111 1\n", " 2.0 7513 1\n", " 1 6.0 5114 1\n", "1.0 25.0 1 6.0 2815 1\n", "Length: 3606, dtype: int64" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Xc.value_counts()" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Estado category\n", "p05 category\n", "p06 category\n", "p13 category\n", "SINCO3 category\n", "dtype: object" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Xc.dtypes" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Int64Index([1, 2], dtype='int64')" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Xc.p06.cat.categories" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1 2254\n", "2 1445\n", "Name: p06, dtype: int64" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Xc.p06.value_counts(dropna=False)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "Mc = M.astype('category')" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sns.catplot(x = \"p133\",\n", " data = Mc,\n", " col=\"p13\", \n", " col_wrap=4,\n", " kind = 'count',\n", " hue = 'p06')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Encuesta Nacional de Ingresos y Gastos de los Hogares (ENIGH) 2016\n", "\n", "La Encuesta Nacional de Ingresos y Gastos de los Hogares 2016 se llevó a cabo del 21 de agosto al 28 de noviembre de 2016. Su objetivo es proporcionar un panorama estadístico del comportamiento de los ingresos y gastos de los hogares en cuanto a su monto, procedencia y distribución; adicionalmente, ofrece información sobre las características ocupacionales y sociodemográficas de los integrantes del hogar, así como las características de la infraestructura de la vivienda y el equipamiento del hogar. [ENIGH-2016](https://www.inegi.org.mx/programas/enigh/nc/2016/)\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "folioviv object\n", "foliohog object\n", "numren object\n", "clave object\n", "mes_1 object\n", "mes_2 object\n", "mes_3 object\n", "mes_4 object\n", "mes_5 object\n", "mes_6 object\n", "ing_1 float64\n", "ing_2 float64\n", "ing_3 float64\n", "ing_4 float64\n", "ing_5 float64\n", "ing_6 float64\n", "ing_tri float64\n", "dtype: object" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "url = \"ingresos.dta\"\n", "df = pd.read_stata(url,\n", " convert_categoricals= False\n", " )\n", "df.dtypes\n" ] }, { "cell_type": "code", "execution_count": 10, "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", " \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", "
foliovivfoliohognumrenclavemes_1mes_2mes_3mes_4mes_5mes_6ing_1ing_2ing_3ing_4ing_5ing_6ing_tri
00100003801102P0097500.0NaNNaNNaNNaNNaN1844.26
10100003801101P00109080706050418000.018000.018000.018000.018000.018000.053114.75
20100003801102P00109080706050415000.015000.015000.015000.015000.015000.044262.29
30100003801101P0096000.0NaNNaNNaNNaNNaN1475.40
40100003802102P0401009080706050.00.00.00.05000.00.02459.01
......................................................
3343323260801906102P0221009080706050.00.02200.02000.02000.02000.04010.86
3343333260801906102P053100908070605500.00.0300.0200.00.0300.0635.86
3343343260801906104P0141009080706051080.00.00.00.00.00.0528.26
3343353260801906104P0011009080706051200.0500.00.00.00.00.0831.52
3343363260801906101P053100908070605700.0300.0200.01200.0200.0200.01369.56
\n", "

334337 rows × 17 columns

\n", "
" ], "text/plain": [ " folioviv foliohog numren clave mes_1 mes_2 mes_3 mes_4 mes_5 mes_6 \\\n", "0 0100003801 1 02 P009 \n", "1 0100003801 1 01 P001 09 08 07 06 05 04 \n", "2 0100003801 1 02 P001 09 08 07 06 05 04 \n", "3 0100003801 1 01 P009 \n", "4 0100003802 1 02 P040 10 09 08 07 06 05 \n", "... ... ... ... ... ... ... ... ... ... ... \n", "334332 3260801906 1 02 P022 10 09 08 07 06 05 \n", "334333 3260801906 1 02 P053 10 09 08 07 06 05 \n", "334334 3260801906 1 04 P014 10 09 08 07 06 05 \n", "334335 3260801906 1 04 P001 10 09 08 07 06 05 \n", "334336 3260801906 1 01 P053 10 09 08 07 06 05 \n", "\n", " ing_1 ing_2 ing_3 ing_4 ing_5 ing_6 ing_tri \n", "0 7500.0 NaN NaN NaN NaN NaN 1844.26 \n", "1 18000.0 18000.0 18000.0 18000.0 18000.0 18000.0 53114.75 \n", "2 15000.0 15000.0 15000.0 15000.0 15000.0 15000.0 44262.29 \n", "3 6000.0 NaN NaN NaN NaN NaN 1475.40 \n", "4 0.0 0.0 0.0 0.0 5000.0 0.0 2459.01 \n", "... ... ... ... ... ... ... ... \n", "334332 0.0 0.0 2200.0 2000.0 2000.0 2000.0 4010.86 \n", "334333 500.0 0.0 300.0 200.0 0.0 300.0 635.86 \n", "334334 1080.0 0.0 0.0 0.0 0.0 0.0 528.26 \n", "334335 1200.0 500.0 0.0 0.0 0.0 0.0 831.52 \n", "334336 700.0 300.0 200.0 1200.0 200.0 200.0 1369.56 \n", "\n", "[334337 rows x 17 columns]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Creamos una función para filtar los folios de hogares y el tipo de persona deseada. ¿Qué es cada tipo de dato creado dentro de la función?" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def familiasintegrantes(df,foliohog,numren):\n", " \n", " confolio = [ df.foliohog == _ for _ in foliohog]\n", " confnum = [ df.numren == _ for _ in numren]\n", " \n", " aconfolio = 0\n", " for c in confolio:\n", " aconfolio = aconfolio | c \n", " \n", " aconfnum = 0\n", " for c in confnum:\n", " aconfnum = aconfnum | c \n", " \n", " con = aconfolio & aconfnum\n", " \n", " return df[con]\n", " " ] }, { "cell_type": "code", "execution_count": 11, "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", " \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", "
foliovivfoliohognumrenclavemes_1mes_2mes_3mes_4mes_5mes_6ing_1ing_2ing_3ing_4ing_5ing_6ing_tri
10100003801101P00109080706050418000.018000.018000.018000.018000.018000.053114.75
30100003801101P0096000.0NaNNaNNaNNaNNaN1475.40
80100003802101P00110090807060516000.016000.016000.016000.016000.016000.047213.11
100100003803101P00109080706050428000.028000.028000.028000.028000.028000.082622.95
130100003804101P00109080706050410000.010000.010000.010000.010000.010000.029508.19
......................................................
3343283260801904101P0721009080706051750.01750.01750.01750.01750.01750.05135.86
3343293260801905101P0321009080706056000.06000.06000.06000.06000.06000.017608.69
3343303260801905101P0441009080706051100.00.01100.00.01100.00.01614.13
3343313260801906101P0011009080706052200.02200.02200.02000.02000.02000.06163.04
3343363260801906101P053100908070605700.0300.0200.01200.0200.0200.01369.56
\n", "

151177 rows × 17 columns

\n", "
" ], "text/plain": [ " folioviv foliohog numren clave mes_1 mes_2 mes_3 mes_4 mes_5 mes_6 \\\n", "1 0100003801 1 01 P001 09 08 07 06 05 04 \n", "3 0100003801 1 01 P009 \n", "8 0100003802 1 01 P001 10 09 08 07 06 05 \n", "10 0100003803 1 01 P001 09 08 07 06 05 04 \n", "13 0100003804 1 01 P001 09 08 07 06 05 04 \n", "... ... ... ... ... ... ... ... ... ... ... \n", "334328 3260801904 1 01 P072 10 09 08 07 06 05 \n", "334329 3260801905 1 01 P032 10 09 08 07 06 05 \n", "334330 3260801905 1 01 P044 10 09 08 07 06 05 \n", "334331 3260801906 1 01 P001 10 09 08 07 06 05 \n", "334336 3260801906 1 01 P053 10 09 08 07 06 05 \n", "\n", " ing_1 ing_2 ing_3 ing_4 ing_5 ing_6 ing_tri \n", "1 18000.0 18000.0 18000.0 18000.0 18000.0 18000.0 53114.75 \n", "3 6000.0 NaN NaN NaN NaN NaN 1475.40 \n", "8 16000.0 16000.0 16000.0 16000.0 16000.0 16000.0 47213.11 \n", "10 28000.0 28000.0 28000.0 28000.0 28000.0 28000.0 82622.95 \n", "13 10000.0 10000.0 10000.0 10000.0 10000.0 10000.0 29508.19 \n", "... ... ... ... ... ... ... ... \n", "334328 1750.0 1750.0 1750.0 1750.0 1750.0 1750.0 5135.86 \n", "334329 6000.0 6000.0 6000.0 6000.0 6000.0 6000.0 17608.69 \n", "334330 1100.0 0.0 1100.0 0.0 1100.0 0.0 1614.13 \n", "334331 2200.0 2200.0 2200.0 2000.0 2000.0 2000.0 6163.04 \n", "334336 700.0 300.0 200.0 1200.0 200.0 200.0 1369.56 \n", "\n", "[151177 rows x 17 columns]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1 = familiasintegrantes(df,['1','2'],['01'])\n", "df1" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['1', '2'], dtype=object)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1.foliohog.unique()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Como cada persona está repetida de acuerdo al tipo de ingresos que tiene, creamos una función para sumar los ingresos de cada persona, y una nueva variable (`ing_men`) para tener el ingreso mensual acumulado\n" ] }, { "cell_type": "code", "execution_count": 16, "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", " \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", "
foliovivfoliohognumrening_1ing_2ing_3ing_4ing_5ing_6ing_triclavesing_men
0010000380110124000.018000.018000.018000.018000.018000.054590.15P001P00918196.716667
1010000380210116000.016000.016000.016000.016000.016000.047213.11P00115737.703333
2010000380310128000.028000.028000.028000.028000.028000.082622.95P00127540.983333
3010000380410115000.010000.010000.010000.010000.010000.030737.69P001P00910245.896667
4010000380510140000.012000.012000.012000.012000.012000.042295.07P001P00914098.356667
.......................................
6781432604386252014000.04000.04000.04000.04000.04000.011803.27P0013934.423333
6781532605477182016000.06000.06000.06000.06000.06000.017704.91P0015901.636667
6781632605479092011700.0750.01700.03200.04150.03200.07190.21P042P0222396.736667
678173260601317201950.00.0950.00.0950.00.01394.02P042464.673333
6781832606107092013600.03600.03600.03600.03600.03600.010622.95P0013540.983333
\n", "

67819 rows × 12 columns

\n", "
" ], "text/plain": [ " folioviv foliohog numren ing_1 ing_2 ing_3 ing_4 \\\n", "0 0100003801 1 01 24000.0 18000.0 18000.0 18000.0 \n", "1 0100003802 1 01 16000.0 16000.0 16000.0 16000.0 \n", "2 0100003803 1 01 28000.0 28000.0 28000.0 28000.0 \n", "3 0100003804 1 01 15000.0 10000.0 10000.0 10000.0 \n", "4 0100003805 1 01 40000.0 12000.0 12000.0 12000.0 \n", "... ... ... ... ... ... ... ... \n", "67814 3260438625 2 01 4000.0 4000.0 4000.0 4000.0 \n", "67815 3260547718 2 01 6000.0 6000.0 6000.0 6000.0 \n", "67816 3260547909 2 01 1700.0 750.0 1700.0 3200.0 \n", "67817 3260601317 2 01 950.0 0.0 950.0 0.0 \n", "67818 3260610709 2 01 3600.0 3600.0 3600.0 3600.0 \n", "\n", " ing_5 ing_6 ing_tri claves ing_men \n", "0 18000.0 18000.0 54590.15 P001P009 18196.716667 \n", "1 16000.0 16000.0 47213.11 P001 15737.703333 \n", "2 28000.0 28000.0 82622.95 P001 27540.983333 \n", "3 10000.0 10000.0 30737.69 P001P009 10245.896667 \n", "4 12000.0 12000.0 42295.07 P001P009 14098.356667 \n", "... ... ... ... ... ... \n", "67814 4000.0 4000.0 11803.27 P001 3934.423333 \n", "67815 6000.0 6000.0 17704.91 P001 5901.636667 \n", "67816 4150.0 3200.0 7190.21 P042P022 2396.736667 \n", "67817 950.0 0.0 1394.02 P042 464.673333 \n", "67818 3600.0 3600.0 10622.95 P001 3540.983333 \n", "\n", "[67819 rows x 12 columns]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def ingresosacu(df):\n", " df2 = df.groupby(by = ['numren','foliohog','folioviv']).sum()\n", " df2['claves'] = df.groupby(['numren','foliohog','folioviv'])['clave'].sum()\n", " df2.reset_index(level=0, inplace=True)\n", " df2.reset_index(level=0, inplace=True)\n", " df2.reset_index(level=0, inplace=True)\n", "\n", " df2['ing_men'] = df2.ing_tri/3\n", " return df2\n", "\n", "df2 = ingresosacu(df1)\n", "df2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cremos una variable para indicar en que rango de ingreso cae cada perosona. Los rangos están predefinidos " ] }, { "cell_type": "code", "execution_count": 17, "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", " \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", "
foliovivfoliohognumrening_1ing_2ing_3ing_4ing_5ing_6ing_triclavesing_mencohort
0010000380110124000.018000.018000.018000.018000.018000.054590.15P001P00918196.716667C5
1010000380210116000.016000.016000.016000.016000.016000.047213.11P00115737.703333C5
2010000380310128000.028000.028000.028000.028000.028000.082622.95P00127540.983333C6
3010000380410115000.010000.010000.010000.010000.010000.030737.69P001P00910245.896667C4
4010000380510140000.012000.012000.012000.012000.012000.042295.07P001P00914098.356667C5
..........................................
6781432604386252014000.04000.04000.04000.04000.04000.011803.27P0013934.423333C2
6781532605477182016000.06000.06000.06000.06000.06000.017704.91P0015901.636667C3
6781632605479092011700.0750.01700.03200.04150.03200.07190.21P042P0222396.736667C1
678173260601317201950.00.0950.00.0950.00.01394.02P042464.673333C1
6781832606107092013600.03600.03600.03600.03600.03600.010622.95P0013540.983333C2
\n", "

67819 rows × 13 columns

\n", "
" ], "text/plain": [ " folioviv foliohog numren ing_1 ing_2 ing_3 ing_4 \\\n", "0 0100003801 1 01 24000.0 18000.0 18000.0 18000.0 \n", "1 0100003802 1 01 16000.0 16000.0 16000.0 16000.0 \n", "2 0100003803 1 01 28000.0 28000.0 28000.0 28000.0 \n", "3 0100003804 1 01 15000.0 10000.0 10000.0 10000.0 \n", "4 0100003805 1 01 40000.0 12000.0 12000.0 12000.0 \n", "... ... ... ... ... ... ... ... \n", "67814 3260438625 2 01 4000.0 4000.0 4000.0 4000.0 \n", "67815 3260547718 2 01 6000.0 6000.0 6000.0 6000.0 \n", "67816 3260547909 2 01 1700.0 750.0 1700.0 3200.0 \n", "67817 3260601317 2 01 950.0 0.0 950.0 0.0 \n", "67818 3260610709 2 01 3600.0 3600.0 3600.0 3600.0 \n", "\n", " ing_5 ing_6 ing_tri claves ing_men cohort \n", "0 18000.0 18000.0 54590.15 P001P009 18196.716667 C5 \n", "1 16000.0 16000.0 47213.11 P001 15737.703333 C5 \n", "2 28000.0 28000.0 82622.95 P001 27540.983333 C6 \n", "3 10000.0 10000.0 30737.69 P001P009 10245.896667 C4 \n", "4 12000.0 12000.0 42295.07 P001P009 14098.356667 C5 \n", "... ... ... ... ... ... ... \n", "67814 4000.0 4000.0 11803.27 P001 3934.423333 C2 \n", "67815 6000.0 6000.0 17704.91 P001 5901.636667 C3 \n", "67816 4150.0 3200.0 7190.21 P042P022 2396.736667 C1 \n", "67817 950.0 0.0 1394.02 P042 464.673333 C1 \n", "67818 3600.0 3600.0 10622.95 P001 3540.983333 C2 \n", "\n", "[67819 rows x 13 columns]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def cohorts(df):\n", " \n", " cohorts = ['C'+ c for c in '123456']\n", " I = [(0,2400),(2400, 4800),(4800,7200),(7200,12000),(12000,24000),(24000,np.inf)]\n", " #L = [(c,i) for c,i in zip(cohorts,I)]\n", "\n", " df3 = df.copy()\n", " \n", " def coho(ing_men,cohorts,I):\n", " for a in range(len(I)):\n", " if I[a][0] < ing_men <= I[a][1]:\n", " return cohorts[a]\n", " return 0\n", " \n", " df3['cohort']=df3['ing_men'].apply(lambda x: coho(x,cohorts,I))\n", " \n", " return df3\n", "\n", "df3 = cohorts(df2)\n", "df3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Visualizamos cuantas personas caen en cada cohort de ingreso" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def histogramacohort(df):\n", " \n", " # hacemos a la variables cohort categorica ordenada\n", " \n", " df.cohort= pd.Categorical(df.cohort, \n", " categories=['C'+ c for c in '123456'],\n", " ordered=True)\n", " \n", " \n", " sns.catplot(x = \"cohort\",\n", " data = df,\n", " kind = 'count')\n", " plt.show()\n", "\n", "histogramacohort(df3)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.5" } }, "nbformat": 4, "nbformat_minor": 4 }