unir-metodologia/exploracion-individual.ipynb

665 KiB
Raw Blame History

from functools import cache
import pandas as pd
pd.set_option('display.max_columns', None)
@cache
def get_dataset_for(year):
    return pd.read_csv(f"datasets/sinac{year}DatosAbiertos.csv", dtype=object)
_df = get_dataset_for(2013)
estados_mexicanos ={'AGUASCALIENTES',
 'BAJA CALIFORNIA',
 'BAJA CALIFORNIA SUR',
 'CAMPECHE',
 'CHIAPAS',
 'CHIHUAHUA',
 'COAHUILA DE ZARAGOZA',
 'COLIMA',
 'DISTRITO FEDERAL',
 'DURANGO',
 'GUANAJUATO',
 'GUERRERO',
 'HIDALGO',
 'JALISCO',
 'MEXICO',
 'MICHOACAN DE OCAMPO',
 'MORELOS',
 'NAYARIT',
 'NUEVO LEON',
 'OAXACA',
 'PUEBLA',
 'QUERETARO  DE ARTEAGA',
 'QUINTANA ROO',
 'SAN LUIS POTOSI',
 'SINALOA',
 'SONORA',
 'TABASCO',
 'TAMAULIPAS',
 'TLAXCALA',
 'VERACRUZ DE IGNACIO DE LA LLAVE',
 'YUCATAN',
 'ZACATECAS'}
_df.sample(n=20)
edo_captura edo_nac_madre mpo_nac_madre fecha_nac_madre edad_madre estado_conyugal entidad_residencia_madre municipio_residencia_madre localidad_residencia_madre numero_embarazos hijos_nacidos_muertos hijos_nacidos_vivos hijos_sobrevivientes el_hijo_anterior_nacio vive_aun_hijo_anterior orden_nacimiento recibio_atencion_prenatal trimestre_recibio_primera_consulta total_consultas_recibidas madre_sobrevivio_al_parto afiliacion_serv_salud escolaridad_madre ocupacion_habitual_madre trabaja_actualmente fecha_nacimiento_nac_vivo hora_nacimiento_nac_vivo sexo_nac_vivo semanas_gestacion_nac_vivo talla_nac_vivo peso_nac_vivo valoracion_apgar_nac_vivo valoracion_silverman_nac_vivo recibio_vacuna_bcg recibio_vacuna_hep_b recibio_vit_a recibio_vit_k se_realizo_tamiz_auditivo producto_de_un_embarazo codigo_anomalia anomalia_congenita_nac_vivo procedimiento_utilizado lugar_de_nacimiento nombre_unidad_medica clues quien_atendio_parto entidad_nacimiento municipio_nacimiento localidad_nacimiento certificado_por unidad_medica_certifico clues_certifico entidad_certifico municipio_certifico localidad_certifico fecha_certificacion fecha_captura tipo_formato
1921658 TAMAULIPAS VERACRUZ DE IGNACIO DE LA LLAVE TANTOYUCA 12/04/1989 24 UNIÓN LIBRE TAMAULIPAS NUEVO LAREDO NUEVO LAREDO 4 0 4 4 VIVO SI 4 SI PRIMERO 8 SI SEGURO POPULAR SECUNDARIA COMPLETA NO REMUNERADO - AMA DE CASA NaN 05/11/2013 09:47 HOMBRE 40 51 3240 9 99 SI SI SI SI SI ÚNICO 9999 No Especificado CESÁREA SECRETARÍA DE SALUD HG HOSPITAL GENERAL CIVIL NUEVO LAREDO TSSSA001562 MÉDICO TAMAULIPAS NUEVO LAREDO NUEVO LAREDO MÉDICO GINECO-OBSTETRA NO APLICA 9997 TAMAULIPAS NUEVO LAREDO NUEVO LAREDO 05/11/2013 25/11/2013 2010
2120706 VERACRUZ DE IGNACIO DE LA LLAVE VERACRUZ DE IGNACIO DE LA LLAVE TRES VALLES 12/03/1992 21 CASADA VERACRUZ DE IGNACIO DE LA LLAVE TRES VALLES TRES VALLES 3 0 3 3 VIVO SI 3 SI PRIMERO 5 SI SEGURO POPULAR PRIMARIA COMPLETA NO REMUNERADO - AMA DE CASA NaN 25/10/2013 03:00 MUJER 38 50 3300 9 0 NO NO NO SI NO ÚNICO 0000 Ninguna aparente EUTÓCICO SECRETARÍA DE SALUD HOSPITAL GENERAL COSAMALOAPAN DR. VÍCTOR MANU... VZSSA001384 MÉDICO VERACRUZ DE IGNACIO DE LA LLAVE COSAMALOAPAN DE CARPIO COSAMALOAPAN OTRO MÉDICO NO APLICA 9997 VERACRUZ DE IGNACIO DE LA LLAVE COSAMALOAPAN DE CARPIO COSAMALOAPAN 25/10/2013 13/11/2013 2010
208694 CHIAPAS CHIAPAS COMITAN DE DOMINGUEZ 08/05/1991 22 CASADA CHIAPAS LA INDEPENDENCIA LA INDEPENDENCIA 3 0 3 3 VIVO SI 3 SI PRIMERO 8 SI SEGURO POPULAR PRIMARIA INCOMPLETA NO REMUNERADO - AMA DE CASA NaN 23/12/2013 15:03 HOMBRE 40 51 2915 8 0 NO NO NO SI NO ÚNICO 0000 Ninguna aparente EUTÓCICO SECRETARÍA DE SALUD HOSPITAL DE LA MUJER COMITÁN CSSSA018776 MÉDICO CHIAPAS COMITAN DE DOMINGUEZ COMITAN DE DOMINGUEZ MÉDICO GINECO-OBSTETRA NO APLICA 9997 CHIAPAS COMITAN DE DOMINGUEZ COMITAN DE DOMINGUEZ 23/12/2013 27/12/2013 2010
1181864 MEXICO DISTRITO FEDERAL CUAUHTEMOC 30/07/1983 29 SOLTERA MEXICO CUAUTITLAN IZCALLI NO ESPECIFICADO 3 0 3 3 VIVO SI 3 SI SEGUNDO 3 SI SEGURO POPULAR SECUNDARIA COMPLETA NO REMUNERADO - AMA DE CASA NaN 15/03/2013 22:42 HOMBRE 40 48 3000 9 0 NO NO NO SI NO ÚNICO 0000 Ninguna aparente CESÁREA SECRETARÍA DE SALUD H.G. VALLE CEYLAN MCSSA007265 MÉDICO MEXICO TLALNEPANTLA DE BAZ TLALNEPANTLA MÉDICO PEDIATRA NO APLICA 9997 MEXICO TLALNEPANTLA DE BAZ TLALNEPANTLA 16/03/2013 20/03/2013 2010
1719391 SAN LUIS POTOSI SAN LUIS POTOSI SAN LUIS POTOSI 19/06/1993 19 UNIÓN LIBRE SAN LUIS POTOSI SAN LUIS POTOSI SAN LUIS POTOSI 1 0 1 1 NO HA TENIDO OTROS HIJOS(AS) NaN 1 SI PRIMERO 4 SI SEGURO POPULAR SECUNDARIA COMPLETA NO REMUNERADO - ESTUDIANTE NaN 27/04/2013 13:50 MUJER 40 99 3280 8 0 NO NO NO NO NO ÚNICO 0000 Ninguna aparente EUTÓCICO UNIDAD MÉDICA PRIVADA NO TIENE CLUES 9998 MÉDICO SAN LUIS POTOSI SAN LUIS POTOSI SAN LUIS POTOSI MÉDICO PEDIATRA NO APLICA 9997 SAN LUIS POTOSI SAN LUIS POTOSI SAN LUIS POTOSI 27/04/2013 27/04/2013 2010
1770740 SINALOA SINALOA CULIACAN 11/09/1986 26 CASADA SINALOA CULIACAN CULIACAN ROSALES 1 0 1 1 NO HA TENIDO OTROS HIJOS(AS) NaN 1 SI PRIMERO 7 SI IMSS PROFESIONAL EMPLEADOS DE SECTORES PÚBLICO Y PRIVADO SI 24/08/2013 23:09 MUJER 37 52 3250 9 0 SI SI SI SI NO ÚNICO 0000 Ninguna aparente CESÁREA IMSS HGR 1 CULIACÁN SLIMS000131 MÉDICO SINALOA CULIACAN CULIACAN ROSALES MÉDICO PEDIATRA NO APLICA 9997 SINALOA CULIACAN CULIACAN ROSALES 27/08/2013 09/09/2013 2010
1541814 MORELOS PUEBLA JOLALPAN 18/08/1973 40 CASADA PUEBLA JOLALPAN JOLALPAN 4 0 4 4 VIVO SI 4 SI PRIMERO 6 SI SEGURO POPULAR PRIMARIA INCOMPLETA NO REMUNERADO - AMA DE CASA NaN 20/09/2013 12:25 HOMBRE 39 50 3100 9 2 NO NO NO SI NO ÚNICO 0000 Ninguna aparente EUTÓCICO SECRETARÍA DE SALUD HG DE AXOCHIAPAN DR. ÁNGEL VENTURA NERI MSSSA000080 MÉDICO MORELOS AXOCHIAPAN AXOCHIAPAN MÉDICO PEDIATRA NO APLICA 9997 MORELOS AXOCHIAPAN AXOCHIAPAN 20/09/2013 23/09/2013 2010
476524 DURANGO DURANGO DURANGO 28/01/1998 15 UNIÓN LIBRE DURANGO DURANGO VICTORIA DE DURANGO 1 0 1 1 NO HA TENIDO OTROS HIJOS(AS) NaN 1 SI TERCERO 5 SI SEGURO POPULAR SECUNDARIA INCOMPLETA NO REMUNERADO - AMA DE CASA NaN 05/02/2013 12:30 MUJER 40 50 3170 10 0 NO NO NO SI NO ÚNICO 0000 Ninguna aparente EUTÓCICO SECRETARÍA DE SALUD HOSPITAL GENERAL DE DURANGO DGSSA000191 MÉDICO DURANGO DURANGO VICTORIA DE DURANGO MÉDICO PEDIATRA NO APLICA 9997 DURANGO DURANGO VICTORIA DE DURANGO 05/02/2013 02/05/2013 2010
1031734 DISTRITO FEDERAL DISTRITO FEDERAL NO ESPECIFICADO 22/10/1977 35 CASADA MEXICO NAUCALPAN DE JUAREZ NAUCALPAN DE JUAREZ 2 1 1 1 MUERTO NaN 2 SI PRIMERO 12 SI IMSS PROFESIONAL EMPLEADOS DE SECTORES PÚBLICO Y PRIVADO SI 07/08/2013 00:25 HOMBRE 38 47 2460 9 0 NO NO NO SI S.I. ÚNICO 0000 Ninguna aparente CESÁREA UNIDAD MÉDICA PRIVADA SOCIEDAD DE BENEFICENCIA ESPAÑOLA I.A.P. (HOSP... DFSMP000032 MÉDICO DISTRITO FEDERAL MIGUEL HIDALGO MIGUEL HIDALGO MÉDICO GINECO-OBSTETRA NO APLICA 9997 DISTRITO FEDERAL MIGUEL HIDALGO MIGUEL HIDALGO 07/08/2013 07/08/2013 2010
640165 GUERRERO GUERRERO ACAPULCO DE JUAREZ 08/01/1992 21 UNIÓN LIBRE GUERRERO ACAPULCO DE JUAREZ ACAPULCO DE JUAREZ 3 2 1 1 MUERTO NaN 3 SI TERCERO 2 SI SEGURO POPULAR BACHILLERATO O PREPARATORIA INCOMPLETA NO REMUNERADO - AMA DE CASA NaN 21/01/2013 09:35 MUJER 38 49 3150 9 0 NO NO NO SI NO ÚNICO 0000 Ninguna aparente EUTÓCICO SECRETARÍA DE SALUD HOSP. GRAL. RENACIMIENTO GRSSA000034 MÉDICO GUERRERO ACAPULCO DE JUAREZ ACAPULCO DE JUAREZ MÉDICO PEDIATRA NO APLICA 9997 GUERRERO ACAPULCO DE JUAREZ ACAPULCO DE JUAREZ 21/01/2013 28/01/2013 2010
853491 JALISCO JALISCO GUADALAJARA 16/06/1995 18 UNIÓN LIBRE JALISCO TLAQUEPAQUE TLAQUEPAQUE 1 0 1 1 NO HA TENIDO OTROS HIJOS(AS) NaN 1 SI PRIMERO 9 SI NINGUNA BACHILLERATO O PREPARATORIA COMPLETA NO OCUPADO NaN 01/10/2013 12:03 MUJER 39 54 4150 9 0 NO NO SI SI NO ÚNICO 0000 Ninguna aparente CESÁREA UNIDAD MÉDICA PRIVADA SALUD DE LOS ENFERMOS AC JCSMP000202 MÉDICO JALISCO GUADALAJARA GUADALAJARA MÉDICO PEDIATRA NO APLICA 9997 JALISCO GUADALAJARA GUADALAJARA 01/10/2013 01/10/2013 2010
310935 CHIHUAHUA CHIHUAHUA JUAREZ 09/09/1984 28 UNIÓN LIBRE CHIHUAHUA JUAREZ JUAREZ 4 1 4 4 MUERTO NaN 5 SI PRIMERO 12 SI SEGURO POPULAR PRIMARIA COMPLETA NO REMUNERADO - AMA DE CASA NaN 07/01/2013 20:10 MUJER 38 52 3240 9 0 NO NO NO SI NO ÚNICO 0000 Ninguna aparente CESÁREA SECRETARÍA DE SALUD H DE LA MUJER CHSSA001796 MÉDICO CHIHUAHUA JUAREZ JUAREZ MÉDICO PEDIATRA NO APLICA 9997 CHIHUAHUA JUAREZ JUAREZ 08/01/2013 01/08/2013 2010
1614190 VERACRUZ DE IGNACIO DE LA LLAVE PUEBLA TEZIUTLAN 23/05/1988 24 UNIÓN LIBRE PUEBLA TEZIUTLAN SAN SEBASTIAN 1 0 1 99 NO HA TENIDO OTROS HIJOS(AS) S.I. 1 SI SEGUNDO 4 SI NINGUNA PRIMARIA COMPLETA NO REMUNERADO - AMA DE CASA NaN 01/05/2013 12:25 HOMBRE 40 50 3000 99 99 S.I. S.I. S.I. S.I. S.I. ÚNICO 9999 No Especificado EUTÓCICO HOGAR NO TIENE CLUES 9998 PARTERA VERACRUZ DE IGNACIO DE LA LLAVE JALACINGO MELCHOR OCAMPO PARTERA JALACINGO VZSSA002900 VERACRUZ DE IGNACIO DE LA LLAVE JALACINGO JALACINGO 01/05/2013 18/05/2013 2010
1439899 PUEBLA OAXACA SAN JUAN BAUTISTA TUXTEPEC 30/01/1980 33 CASADA OAXACA HUAUTLA DE JIMENEZ HUAUTLA DE JIMENEZ 3 0 3 3 VIVO SI 3 SI PRIMERO 8 SI NINGUNA PROFESIONAL TRABAJADORES DE LA EDUCACIÓN SI 11/02/2013 11:15 MUJER 38 99 9999 9 0 NO NO NO NO NO ÚNICO 0000 Ninguna aparente CESÁREA UNIDAD MÉDICA PRIVADA NO TIENE CLUES 9998 MÉDICO PUEBLA TEHUACAN TEHUACAN MÉDICO PEDIATRA NO APLICA 9997 PUEBLA TEHUACAN TEHUACAN 13/02/2013 04/04/2013 2010
1518822 PUEBLA PUEBLA CALPAN 07/07/1986 27 UNIÓN LIBRE PUEBLA CALPAN SAN ANDRES CALPAN 3 0 3 3 VIVO SI 3 SI TERCERO 2 SI SEGURO POPULAR BACHILLERATO O PREPARATORIA COMPLETA NO REMUNERADO - AMA DE CASA NaN 12/10/2013 15:03 MUJER 38 48 2650 9 0 SI NO NO SI NO ÚNICO 0000 Ninguna aparente CESÁREA UNIDAD MÉDICA PRIVADA CLÍNICA MATERNO INFANTIL PLSMP001974 MÉDICO PUEBLA PUEBLA HEROICA PUEBLA DE ZARAGOZA OTRO MÉDICO NO APLICA 9997 PUEBLA PUEBLA HEROICA PUEBLA DE ZARAGOZA 13/10/2013 14/10/2013 2010
1885809 TABASCO TABASCO JALPA DE MENDEZ 12/12/1992 20 UNIÓN LIBRE TABASCO JALPA DE MENDEZ JALPA DE MENDEZ 1 0 1 1 NO HA TENIDO OTROS HIJOS(AS) NaN 1 SI PRIMERO 8 SI SEGURO POPULAR BACHILLERATO O PREPARATORIA COMPLETA NO REMUNERADO - AMA DE CASA NaN 14/06/2013 08:42 HOMBRE 39 49 2600 9 0 SI SI SI SI NO ÚNICO 0000 Ninguna aparente CESÁREA SECRETARÍA DE SALUD HOSPITAL REGIONAL DE ALTA ESPECIALIDAD DE LA M... TCSSA001076 MÉDICO TABASCO CENTRO VILLAHERMOSA OTRO MÉDICO NO APLICA 9997 TABASCO CENTRO VILLAHERMOSA 14/06/2013 17/06/2013 2010
226340 CHIAPAS CHIAPAS ACAPETAHUA 25/08/1992 21 UNIÓN LIBRE CHIAPAS PALENQUE EL NARANJO 2 0 2 2 VIVO SI 2 SI SEGUNDO 7 SI SEGURO POPULAR PRIMARIA COMPLETA NO REMUNERADO - AMA DE CASA NaN 11/10/2013 05:40 SIN INFORMACIÓN 40 51 3200 9 0 NO NO NO SI NO ÚNICO 9999 No Especificado EUTÓCICO SECRETARÍA DE SALUD HOSPITAL GENERAL PALENQUE CSSSA004595 MÉDICO CHIAPAS PALENQUE PALENQUE OTRO MÉDICO NO APLICA 9997 CHIAPAS PALENQUE PALENQUE 11/10/2013 11/10/2013 2010
1490 AGUASCALIENTES AGUASCALIENTES AGUASCALIENTES 09/05/1996 17 SOLTERA AGUASCALIENTES AGUASCALIENTES AGUASCALIENTES 1 0 1 1 NO HA TENIDO OTROS HIJOS(AS) S.I. 1 SI PRIMERO 7 SI SEGURO POPULAR BACHILLERATO O PREPARATORIA INCOMPLETA NO REMUNERADO - AMA DE CASA NaN 02/07/2013 11:09 MUJER 38 49 3300 9 0 SI SI SI SI S.I. ÚNICO 0000 Ninguna aparente EUTÓCICO SECRETARÍA DE SALUD HOSPITAL DE LA MUJER ASSSA000042 MÉDICO AGUASCALIENTES AGUASCALIENTES AGUASCALIENTES MÉDICO PEDIATRA NO APLICA 9997 AGUASCALIENTES AGUASCALIENTES AGUASCALIENTES 02/07/2013 08/07/2013 2010
71323 BAJA CALIFORNIA BAJA CALIFORNIA MEXICALI 03/07/1992 20 UNIÓN LIBRE BAJA CALIFORNIA TIJUANA TIJUANA 3 0 3 3 VIVO SI 3 SI PRIMERO 5 SI NINGUNA BACHILLERATO O PREPARATORIA COMPLETA NO REMUNERADO - AMA DE CASA NaN 26/01/2013 12:28 MUJER 39 48 2625 9 0 SI SI SI SI NO ÚNICO 0000 Ninguna aparente EUTÓCICO SECRETARÍA DE SALUD HOSPITAL GENERAL TIJUANA BCSSA000913 MÉDICO BAJA CALIFORNIA TIJUANA TIJUANA MÉDICO PEDIATRA NO APLICA 9997 BAJA CALIFORNIA TIJUANA TIJUANA 27/01/2013 27/01/2013 2010
1672856 QUINTANA ROO QUINTANA ROO COZUMEL 18/01/1996 17 SOLTERA QUINTANA ROO COZUMEL COZUMEL 1 0 1 1 NO HA TENIDO OTROS HIJOS(AS) NaN 1 SI PRIMERO 8 SI IMSS BACHILLERATO O PREPARATORIA INCOMPLETA NO REMUNERADO - ESTUDIANTE NaN 06/08/2013 21:35 HOMBRE 39 49 3100 9 0 NO NO SI SI NO ÚNICO P835 Hidrocele congénito EUTÓCICO IMSS HGSMF 2 COZUMEL QRIMS000014 MÉDICO QUINTANA ROO COZUMEL COZUMEL MÉDICO PEDIATRA NO APLICA 9997 QUINTANA ROO COZUMEL COZUMEL 06/08/2013 19/08/2013 2010
columns = ["ENTIDAD_NACMAD", "FECH_NACM", "ESTADO_CIVIL", "ENTIDAD_RESMAD", "NUMERO_EMBARAZOS", "NACIDOS_MUERTOS", "NACIDOS_VIVOS", "SOBREVIVIENTES", "ANTERIOR_NACIO", "VIVE_AUN", "ORDEN_NAC", "ATENCION_PRENA", "TRIMESTR_ATEN", "SOBREVIVIO_PARTO", "ESCOLARIDAD", "DESC_OCUPHAB", "OCUPACION_HABITUAL", "TRABAJA_ACTUALMENTE", "FECH_NACH", "HORA_NACH", "SEXO_RN", "GESTACH", "TALLAH", "PESOH", "APGARH", "SILVERMAN", "NACIMIENTOS", "MES_NACI", "Producto", "CIE10", "CIE10_2da", "PROCEDIMIENTO", "OTRO_PROCEDIMIENTO", "LUGAR_NACIM", "ENTIDAD_NACIM", "ENTIDAD_CERTIF", "FECHA_CERTIF",]
columns = [x.lower() for x in columns]
len(set(columns) - set(df.columns.to_list()))
35
columns_original = get_dataset_for(2013).columns.to_list()
columns_selected = [
    'edo_captura', 'edo_nac_madre', 'fecha_nac_madre', 'edad_madre', 'estado_conyugal', 'entidad_residencia_madre', 'numero_embarazos', 'hijos_nacidos_muertos', 'hijos_nacidos_vivos', 'hijos_sobrevivientes', 'el_hijo_anterior_nacio', 'vive_aun_hijo_anterior', 'orden_nacimiento', 'recibio_atencion_prenatal', 'trimestre_recibio_primera_consulta', 'total_consultas_recibidas', 'madre_sobrevivio_al_parto', 'escolaridad_madre', 'ocupacion_habitual_madre', 'trabaja_actualmente', 'fecha_nacimiento_nac_vivo', 'hora_nacimiento_nac_vivo', 'sexo_nac_vivo', 'semanas_gestacion_nac_vivo', 'talla_nac_vivo', 'peso_nac_vivo', 'valoracion_apgar_nac_vivo', 'valoracion_silverman_nac_vivo', 'producto_de_un_embarazo', 'anomalia_congenita_nac_vivo', 'lugar_de_nacimiento', 'entidad_nacimiento', 'entidad_certifico',]
print(" - ", end="")
print(*sorted(columns_selected), sep="\n - ")
len(columns_selected)
 - anomalia_congenita_nac_vivo
 - edad_madre
 - edo_captura
 - edo_nac_madre
 - el_hijo_anterior_nacio
 - entidad_certifico
 - entidad_nacimiento
 - entidad_residencia_madre
 - escolaridad_madre
 - estado_conyugal
 - fecha_nac_madre
 - fecha_nacimiento_nac_vivo
 - hijos_nacidos_muertos
 - hijos_nacidos_vivos
 - hijos_sobrevivientes
 - hora_nacimiento_nac_vivo
 - lugar_de_nacimiento
 - madre_sobrevivio_al_parto
 - numero_embarazos
 - ocupacion_habitual_madre
 - orden_nacimiento
 - peso_nac_vivo
 - producto_de_un_embarazo
 - recibio_atencion_prenatal
 - semanas_gestacion_nac_vivo
 - sexo_nac_vivo
 - talla_nac_vivo
 - total_consultas_recibidas
 - trabaja_actualmente
 - trimestre_recibio_primera_consulta
 - valoracion_apgar_nac_vivo
 - valoracion_silverman_nac_vivo
 - vive_aun_hijo_anterior
33
print("Año - #Cols - #Faltantes")
for year in range(2010, 2020):
    df = get_dataset_for(year)
    columns = set(df.columns.to_list())
    print(year, " - ", len(columns), " - ", len(set(columns_selected) - columns))
Año - #Cols - #Faltantes
2010  -  57  -  0
2011  -  57  -  0
2012  -  57  -  0
2013  -  57  -  0
2014  -  57  -  0
2015  -  61  -  0
2016  -  61  -  0
2017  -  77  -  33
2018  -  77  -  33
2019  -  76  -  33
df = pd.concat([get_dataset_for(year)[columns_selected] for year in range(2010, 2017)])
def _ano_nacimiento_vivo_func(str_date):
    try:
        return str_date.split("/")[-1]
    except:
        return ""

df["año_de_nacimiento_vivo"] = df["fecha_nacimiento_nac_vivo"].apply(_ano_nacimiento_vivo_func)
df = df[df.edad_madre < 120]
df.info()
<class 'pandas.core.frame.DataFrame'>
Index: 15003237 entries, 0 to 2080252
Data columns (total 34 columns):
 #   Column                              Dtype 
---  ------                              ----- 
 0   edo_captura                         object
 1   edo_nac_madre                       object
 2   fecha_nac_madre                     object
 3   edad_madre                          int64 
 4   estado_conyugal                     object
 5   entidad_residencia_madre            object
 6   numero_embarazos                    int64 
 7   hijos_nacidos_muertos               int64 
 8   hijos_nacidos_vivos                 int64 
 9   hijos_sobrevivientes                int64 
 10  el_hijo_anterior_nacio              object
 11  vive_aun_hijo_anterior              object
 12  orden_nacimiento                    int64 
 13  recibio_atencion_prenatal           object
 14  trimestre_recibio_primera_consulta  object
 15  total_consultas_recibidas           int64 
 16  madre_sobrevivio_al_parto           object
 17  escolaridad_madre                   object
 18  ocupacion_habitual_madre            object
 19  trabaja_actualmente                 object
 20  fecha_nacimiento_nac_vivo           object
 21  hora_nacimiento_nac_vivo            object
 22  sexo_nac_vivo                       object
 23  semanas_gestacion_nac_vivo          int64 
 24  talla_nac_vivo                      int64 
 25  peso_nac_vivo                       int64 
 26  valoracion_apgar_nac_vivo           int64 
 27  valoracion_silverman_nac_vivo       int64 
 28  producto_de_un_embarazo             object
 29  anomalia_congenita_nac_vivo         object
 30  lugar_de_nacimiento                 object
 31  entidad_nacimiento                  object
 32  entidad_certifico                   object
 33  año_de_nacimiento_vivo              object
dtypes: int64(12), object(22)
memory usage: 3.9+ GB

Agrupación por estado lugar de nacimiento de la madre, y año del registro, agregación de edad de la madre

consulta = df.groupby(
    ["edo_captura", "edo_nac_madre", "año_de_nacimiento_vivo"]
).agg({
    "edad_madre": ["count", "mean", "std", "min", "max", ],
})
[row_name for row_name in consulta.index.to_list() if row_name[0] == "JALISCO"]
[('JALISCO', 'AGUASCALIENTES', '2010'),
 ('JALISCO', 'AGUASCALIENTES', '2011'),
 ('JALISCO', 'AGUASCALIENTES', '2012'),
 ('JALISCO', 'AGUASCALIENTES', '2013'),
 ('JALISCO', 'AGUASCALIENTES', '2014'),
 ('JALISCO', 'AGUASCALIENTES', '2015'),
 ('JALISCO', 'AGUASCALIENTES', '2016'),
 ('JALISCO', 'BAJA CALIFORNIA', '2010'),
 ('JALISCO', 'BAJA CALIFORNIA', '2011'),
 ('JALISCO', 'BAJA CALIFORNIA', '2012'),
 ('JALISCO', 'BAJA CALIFORNIA', '2013'),
 ('JALISCO', 'BAJA CALIFORNIA', '2014'),
 ('JALISCO', 'BAJA CALIFORNIA', '2015'),
 ('JALISCO', 'BAJA CALIFORNIA', '2016'),
 ('JALISCO', 'BAJA CALIFORNIA SUR', '2010'),
 ('JALISCO', 'BAJA CALIFORNIA SUR', '2011'),
 ('JALISCO', 'BAJA CALIFORNIA SUR', '2012'),
 ('JALISCO', 'BAJA CALIFORNIA SUR', '2013'),
 ('JALISCO', 'BAJA CALIFORNIA SUR', '2014'),
 ('JALISCO', 'BAJA CALIFORNIA SUR', '2015'),
 ('JALISCO', 'BAJA CALIFORNIA SUR', '2016'),
 ('JALISCO', 'CAMPECHE', '2010'),
 ('JALISCO', 'CAMPECHE', '2011'),
 ('JALISCO', 'CAMPECHE', '2012'),
 ('JALISCO', 'CAMPECHE', '2013'),
 ('JALISCO', 'CAMPECHE', '2014'),
 ('JALISCO', 'CAMPECHE', '2015'),
 ('JALISCO', 'CAMPECHE', '2016'),
 ('JALISCO', 'CHIAPAS', '2010'),
 ('JALISCO', 'CHIAPAS', '2011'),
 ('JALISCO', 'CHIAPAS', '2012'),
 ('JALISCO', 'CHIAPAS', '2013'),
 ('JALISCO', 'CHIAPAS', '2014'),
 ('JALISCO', 'CHIAPAS', '2015'),
 ('JALISCO', 'CHIAPAS', '2016'),
 ('JALISCO', 'CHIHUAHUA', '2010'),
 ('JALISCO', 'CHIHUAHUA', '2011'),
 ('JALISCO', 'CHIHUAHUA', '2012'),
 ('JALISCO', 'CHIHUAHUA', '2013'),
 ('JALISCO', 'CHIHUAHUA', '2014'),
 ('JALISCO', 'CHIHUAHUA', '2015'),
 ('JALISCO', 'CHIHUAHUA', '2016'),
 ('JALISCO', 'COAHUILA DE ZARAGOZA', '2010'),
 ('JALISCO', 'COAHUILA DE ZARAGOZA', '2011'),
 ('JALISCO', 'COAHUILA DE ZARAGOZA', '2012'),
 ('JALISCO', 'COAHUILA DE ZARAGOZA', '2013'),
 ('JALISCO', 'COAHUILA DE ZARAGOZA', '2014'),
 ('JALISCO', 'COAHUILA DE ZARAGOZA', '2015'),
 ('JALISCO', 'COAHUILA DE ZARAGOZA', '2016'),
 ('JALISCO', 'COLIMA', '2010'),
 ('JALISCO', 'COLIMA', '2011'),
 ('JALISCO', 'COLIMA', '2012'),
 ('JALISCO', 'COLIMA', '2013'),
 ('JALISCO', 'COLIMA', '2014'),
 ('JALISCO', 'COLIMA', '2015'),
 ('JALISCO', 'COLIMA', '2016'),
 ('JALISCO', 'DISTRITO FEDERAL', '2010'),
 ('JALISCO', 'DISTRITO FEDERAL', '2011'),
 ('JALISCO', 'DISTRITO FEDERAL', '2012'),
 ('JALISCO', 'DISTRITO FEDERAL', '2013'),
 ('JALISCO', 'DISTRITO FEDERAL', '2014'),
 ('JALISCO', 'DISTRITO FEDERAL', '2015'),
 ('JALISCO', 'DISTRITO FEDERAL', '2016'),
 ('JALISCO', 'DURANGO', '2010'),
 ('JALISCO', 'DURANGO', '2011'),
 ('JALISCO', 'DURANGO', '2012'),
 ('JALISCO', 'DURANGO', '2013'),
 ('JALISCO', 'DURANGO', '2014'),
 ('JALISCO', 'DURANGO', '2015'),
 ('JALISCO', 'DURANGO', '2016'),
 ('JALISCO', 'ESTADOS UNIDOS DE NORTEAMERICA', '2010'),
 ('JALISCO', 'ESTADOS UNIDOS DE NORTEAMERICA', '2011'),
 ('JALISCO', 'ESTADOS UNIDOS DE NORTEAMERICA', '2012'),
 ('JALISCO', 'ESTADOS UNIDOS DE NORTEAMERICA', '2013'),
 ('JALISCO', 'ESTADOS UNIDOS DE NORTEAMERICA', '2014'),
 ('JALISCO', 'ESTADOS UNIDOS DE NORTEAMERICA', '2015'),
 ('JALISCO', 'ESTADOS UNIDOS DE NORTEAMERICA', '2016'),
 ('JALISCO', 'ESTADOS UNIDOS MEXICANOS', '2011'),
 ('JALISCO', 'GUANAJUATO', '2010'),
 ('JALISCO', 'GUANAJUATO', '2011'),
 ('JALISCO', 'GUANAJUATO', '2012'),
 ('JALISCO', 'GUANAJUATO', '2013'),
 ('JALISCO', 'GUANAJUATO', '2014'),
 ('JALISCO', 'GUANAJUATO', '2015'),
 ('JALISCO', 'GUANAJUATO', '2016'),
 ('JALISCO', 'GUERRERO', '2010'),
 ('JALISCO', 'GUERRERO', '2011'),
 ('JALISCO', 'GUERRERO', '2012'),
 ('JALISCO', 'GUERRERO', '2013'),
 ('JALISCO', 'GUERRERO', '2014'),
 ('JALISCO', 'GUERRERO', '2015'),
 ('JALISCO', 'GUERRERO', '2016'),
 ('JALISCO', 'HIDALGO', '2010'),
 ('JALISCO', 'HIDALGO', '2011'),
 ('JALISCO', 'HIDALGO', '2012'),
 ('JALISCO', 'HIDALGO', '2013'),
 ('JALISCO', 'HIDALGO', '2014'),
 ('JALISCO', 'HIDALGO', '2015'),
 ('JALISCO', 'HIDALGO', '2016'),
 ('JALISCO', 'JALISCO', '2010'),
 ('JALISCO', 'JALISCO', '2011'),
 ('JALISCO', 'JALISCO', '2012'),
 ('JALISCO', 'JALISCO', '2013'),
 ('JALISCO', 'JALISCO', '2014'),
 ('JALISCO', 'JALISCO', '2015'),
 ('JALISCO', 'JALISCO', '2016'),
 ('JALISCO', 'MEXICO', '2010'),
 ('JALISCO', 'MEXICO', '2011'),
 ('JALISCO', 'MEXICO', '2012'),
 ('JALISCO', 'MEXICO', '2013'),
 ('JALISCO', 'MEXICO', '2014'),
 ('JALISCO', 'MEXICO', '2015'),
 ('JALISCO', 'MEXICO', '2016'),
 ('JALISCO', 'MICHOACAN DE OCAMPO', '2010'),
 ('JALISCO', 'MICHOACAN DE OCAMPO', '2011'),
 ('JALISCO', 'MICHOACAN DE OCAMPO', '2012'),
 ('JALISCO', 'MICHOACAN DE OCAMPO', '2013'),
 ('JALISCO', 'MICHOACAN DE OCAMPO', '2014'),
 ('JALISCO', 'MICHOACAN DE OCAMPO', '2015'),
 ('JALISCO', 'MICHOACAN DE OCAMPO', '2016'),
 ('JALISCO', 'MORELOS', '2010'),
 ('JALISCO', 'MORELOS', '2011'),
 ('JALISCO', 'MORELOS', '2012'),
 ('JALISCO', 'MORELOS', '2013'),
 ('JALISCO', 'MORELOS', '2014'),
 ('JALISCO', 'MORELOS', '2015'),
 ('JALISCO', 'MORELOS', '2016'),
 ('JALISCO', 'N.E.', '2010'),
 ('JALISCO', 'N.E.', '2011'),
 ('JALISCO', 'N.E.', '2012'),
 ('JALISCO', 'N.E.', '2013'),
 ('JALISCO', 'N.E.', '2014'),
 ('JALISCO', 'N.E.', '2015'),
 ('JALISCO', 'N.E.', '2016'),
 ('JALISCO', 'NAYARIT', '2010'),
 ('JALISCO', 'NAYARIT', '2011'),
 ('JALISCO', 'NAYARIT', '2012'),
 ('JALISCO', 'NAYARIT', '2013'),
 ('JALISCO', 'NAYARIT', '2014'),
 ('JALISCO', 'NAYARIT', '2015'),
 ('JALISCO', 'NAYARIT', '2016'),
 ('JALISCO', 'NUEVO LEON', '2010'),
 ('JALISCO', 'NUEVO LEON', '2011'),
 ('JALISCO', 'NUEVO LEON', '2012'),
 ('JALISCO', 'NUEVO LEON', '2013'),
 ('JALISCO', 'NUEVO LEON', '2014'),
 ('JALISCO', 'NUEVO LEON', '2015'),
 ('JALISCO', 'NUEVO LEON', '2016'),
 ('JALISCO', 'OAXACA', '2010'),
 ('JALISCO', 'OAXACA', '2011'),
 ('JALISCO', 'OAXACA', '2012'),
 ('JALISCO', 'OAXACA', '2013'),
 ('JALISCO', 'OAXACA', '2014'),
 ('JALISCO', 'OAXACA', '2015'),
 ('JALISCO', 'OAXACA', '2016'),
 ('JALISCO', 'OTROS PAISES', '2010'),
 ('JALISCO', 'OTROS PAISES', '2011'),
 ('JALISCO', 'OTROS PAISES', '2012'),
 ('JALISCO', 'OTROS PAISES', '2013'),
 ('JALISCO', 'OTROS PAISES', '2014'),
 ('JALISCO', 'OTROS PAISES', '2015'),
 ('JALISCO', 'OTROS PAISES', '2016'),
 ('JALISCO', 'OTROS PAISES DE LATINOAMERICA', '2010'),
 ('JALISCO', 'OTROS PAISES DE LATINOAMERICA', '2011'),
 ('JALISCO', 'OTROS PAISES DE LATINOAMERICA', '2012'),
 ('JALISCO', 'OTROS PAISES DE LATINOAMERICA', '2013'),
 ('JALISCO', 'OTROS PAISES DE LATINOAMERICA', '2014'),
 ('JALISCO', 'OTROS PAISES DE LATINOAMERICA', '2015'),
 ('JALISCO', 'OTROS PAISES DE LATINOAMERICA', '2016'),
 ('JALISCO', 'PUEBLA', '2010'),
 ('JALISCO', 'PUEBLA', '2011'),
 ('JALISCO', 'PUEBLA', '2012'),
 ('JALISCO', 'PUEBLA', '2013'),
 ('JALISCO', 'PUEBLA', '2014'),
 ('JALISCO', 'PUEBLA', '2015'),
 ('JALISCO', 'PUEBLA', '2016'),
 ('JALISCO', 'QUERETARO  DE ARTEAGA', '2010'),
 ('JALISCO', 'QUERETARO  DE ARTEAGA', '2011'),
 ('JALISCO', 'QUERETARO  DE ARTEAGA', '2012'),
 ('JALISCO', 'QUERETARO  DE ARTEAGA', '2013'),
 ('JALISCO', 'QUERETARO  DE ARTEAGA', '2014'),
 ('JALISCO', 'QUERETARO  DE ARTEAGA', '2015'),
 ('JALISCO', 'QUERETARO  DE ARTEAGA', '2016'),
 ('JALISCO', 'QUINTANA ROO', '2010'),
 ('JALISCO', 'QUINTANA ROO', '2011'),
 ('JALISCO', 'QUINTANA ROO', '2012'),
 ('JALISCO', 'QUINTANA ROO', '2013'),
 ('JALISCO', 'QUINTANA ROO', '2014'),
 ('JALISCO', 'QUINTANA ROO', '2015'),
 ('JALISCO', 'QUINTANA ROO', '2016'),
 ('JALISCO', 'SAN LUIS POTOSI', '2010'),
 ('JALISCO', 'SAN LUIS POTOSI', '2011'),
 ('JALISCO', 'SAN LUIS POTOSI', '2012'),
 ('JALISCO', 'SAN LUIS POTOSI', '2013'),
 ('JALISCO', 'SAN LUIS POTOSI', '2014'),
 ('JALISCO', 'SAN LUIS POTOSI', '2015'),
 ('JALISCO', 'SAN LUIS POTOSI', '2016'),
 ('JALISCO', 'SINALOA', '2010'),
 ('JALISCO', 'SINALOA', '2011'),
 ('JALISCO', 'SINALOA', '2012'),
 ('JALISCO', 'SINALOA', '2013'),
 ('JALISCO', 'SINALOA', '2014'),
 ('JALISCO', 'SINALOA', '2015'),
 ('JALISCO', 'SINALOA', '2016'),
 ('JALISCO', 'SONORA', '2010'),
 ('JALISCO', 'SONORA', '2011'),
 ('JALISCO', 'SONORA', '2012'),
 ('JALISCO', 'SONORA', '2013'),
 ('JALISCO', 'SONORA', '2014'),
 ('JALISCO', 'SONORA', '2015'),
 ('JALISCO', 'SONORA', '2016'),
 ('JALISCO', 'TABASCO', '2010'),
 ('JALISCO', 'TABASCO', '2011'),
 ('JALISCO', 'TABASCO', '2012'),
 ('JALISCO', 'TABASCO', '2013'),
 ('JALISCO', 'TABASCO', '2014'),
 ('JALISCO', 'TABASCO', '2015'),
 ('JALISCO', 'TABASCO', '2016'),
 ('JALISCO', 'TAMAULIPAS', '2010'),
 ('JALISCO', 'TAMAULIPAS', '2011'),
 ('JALISCO', 'TAMAULIPAS', '2012'),
 ('JALISCO', 'TAMAULIPAS', '2013'),
 ('JALISCO', 'TAMAULIPAS', '2014'),
 ('JALISCO', 'TAMAULIPAS', '2015'),
 ('JALISCO', 'TAMAULIPAS', '2016'),
 ('JALISCO', 'TLAXCALA', '2010'),
 ('JALISCO', 'TLAXCALA', '2011'),
 ('JALISCO', 'TLAXCALA', '2012'),
 ('JALISCO', 'TLAXCALA', '2013'),
 ('JALISCO', 'TLAXCALA', '2014'),
 ('JALISCO', 'TLAXCALA', '2015'),
 ('JALISCO', 'TLAXCALA', '2016'),
 ('JALISCO', 'VERACRUZ DE IGNACIO DE LA LLAVE', '2010'),
 ('JALISCO', 'VERACRUZ DE IGNACIO DE LA LLAVE', '2011'),
 ('JALISCO', 'VERACRUZ DE IGNACIO DE LA LLAVE', '2012'),
 ('JALISCO', 'VERACRUZ DE IGNACIO DE LA LLAVE', '2013'),
 ('JALISCO', 'VERACRUZ DE IGNACIO DE LA LLAVE', '2014'),
 ('JALISCO', 'VERACRUZ DE IGNACIO DE LA LLAVE', '2015'),
 ('JALISCO', 'VERACRUZ DE IGNACIO DE LA LLAVE', '2016'),
 ('JALISCO', 'YUCATAN', '2010'),
 ('JALISCO', 'YUCATAN', '2011'),
 ('JALISCO', 'YUCATAN', '2012'),
 ('JALISCO', 'YUCATAN', '2013'),
 ('JALISCO', 'YUCATAN', '2014'),
 ('JALISCO', 'YUCATAN', '2015'),
 ('JALISCO', 'YUCATAN', '2016'),
 ('JALISCO', 'ZACATECAS', '2010'),
 ('JALISCO', 'ZACATECAS', '2011'),
 ('JALISCO', 'ZACATECAS', '2012'),
 ('JALISCO', 'ZACATECAS', '2013'),
 ('JALISCO', 'ZACATECAS', '2014'),
 ('JALISCO', 'ZACATECAS', '2015'),
 ('JALISCO', 'ZACATECAS', '2016')]
edos_fronterizos = {
    "BAJA CALIFORNIA", "SONORA", "CHIHUAHUA", "COAHUILA DE ZARAGOZA", "NUEVO LEON", "TAMAULIPAS"
}
edo_nac_madre_de_interes = {"ESTADOS UNIDOS DE NORTEAMERICA", "OTROS PAISES"} # "OTROS PAISES DE LATINOAMERICA"}
consulta_edo_madre_especifico = consulta.loc[[row_name
    for row_name in consulta.index.to_list()
    if row_name[1] in edo_nac_madre_de_interes
    # and row_name[0] in edos_fronterizos
]]
# consulta_edo_madre_especifico.index, consulta_edo_madre_especifico.columns
%matplotlib notebook
from matplotlib.figure import Figure
{x[0] for x in consulta_edo_madre_especifico.index.to_list()}
{'AGUASCALIENTES',
 'BAJA CALIFORNIA',
 'BAJA CALIFORNIA SUR',
 'CAMPECHE',
 'CHIAPAS',
 'CHIHUAHUA',
 'COAHUILA DE ZARAGOZA',
 'COLIMA',
 'DISTRITO FEDERAL',
 'DURANGO',
 'GUANAJUATO',
 'GUERRERO',
 'HIDALGO',
 'JALISCO',
 'MEXICO',
 'MICHOACAN DE OCAMPO',
 'MORELOS',
 'NAYARIT',
 'NUEVO LEON',
 'OAXACA',
 'PUEBLA',
 'QUERETARO  DE ARTEAGA',
 'QUINTANA ROO',
 'SAN LUIS POTOSI',
 'SINALOA',
 'SONORA',
 'TABASCO',
 'TAMAULIPAS',
 'TLAXCALA',
 'VERACRUZ DE IGNACIO DE LA LLAVE',
 'YUCATAN',
 'ZACATECAS'}
fig = Figure(figsize=(12, 6))
ax = fig.add_subplot()
edo_nac_madre_deseado = "ESTADOS UNIDOS DE NORTEAMERICA"
_df = consulta_edo_madre_especifico.reset_index()
edo = "BAJA CALIFORNIA"
for edo in {x[0] for x in consulta_edo_madre_especifico.index.to_list()}:
    _to_plot = _df[
        (_df["edo_nac_madre"] == edo_nac_madre_deseado)
      & (_df["edo_captura"] == edo)
    ][
    [("año_de_nacimiento_vivo", ""), ("edad_madre", "count")]
    ]
    _to_plot.columns = ["Año", "Cantidad"]
    _to_plot = _to_plot.set_index("Año")
    
    _to_plot.plot(y="Cantidad", ax=ax, label=edo, linestyle="--", grid=True)

ax.legend(loc='upper left')
ax.set_xlabel("Año")
ax.set_ylabel("Cantidad de Nacimientos")
fig

 consulta_edo_madre_especifico.reset_index().columns
MultiIndex([(           'edo_captura',      ''),
            (         'edo_nac_madre',      ''),
            ('año_de_nacimiento_vivo',      ''),
            (            'edad_madre', 'count'),
            (            'edad_madre',  'mean'),
            (            'edad_madre',   'std'),
            (            'edad_madre',   'min'),
            (            'edad_madre',   'max')],
           )

Agrupación por estado de captura, y año

# Edades de madres
consulta = df.groupby(
    ["edo_captura", "año_de_nacimiento_vivo"]
).agg({
    "edad_madre": ["count", "mean", "std", "min", "max", ],
})
consulta2
edad_madre
count mean std min max
edo_captura año_de_nacimiento_vivo
AGUASCALIENTES 2010 26973 25.569792 6.364083 10 52
2011 28361 25.576073 6.362188 11 47
2012 28840 25.510576 6.370119 12 47
2013 28695 25.435302 6.343520 10 53
2014 28718 25.434048 6.321484 12 56
... ... ... ... ... ... ...
ZACATECAS 2012 30840 25.378956 6.396084 12 58
2013 30971 25.417358 6.367588 10 52
2014 30202 25.548606 6.382292 11 56
2015 30099 25.619157 6.412798 12 57
2016 30118 25.641975 6.402262 10 51

224 rows × 5 columns

_df = consulta2.reset_index()
_df.columns = ["_".join(x).rstrip("_") for x in _df.columns.to_flat_index()]
_df = _df.rename(columns={"año_de_nacimiento_vivo": "año"})
_df
edo_captura año edad_madre_count edad_madre_mean edad_madre_std edad_madre_min edad_madre_max
0 AGUASCALIENTES 2010 26973 25.569792 6.364083 10 52
1 AGUASCALIENTES 2011 28361 25.576073 6.362188 11 47
2 AGUASCALIENTES 2012 28840 25.510576 6.370119 12 47
3 AGUASCALIENTES 2013 28695 25.435302 6.343520 10 53
4 AGUASCALIENTES 2014 28718 25.434048 6.321484 12 56
... ... ... ... ... ... ... ...
219 ZACATECAS 2012 30840 25.378956 6.396084 12 58
220 ZACATECAS 2013 30971 25.417358 6.367588 10 52
221 ZACATECAS 2014 30202 25.548606 6.382292 11 56
222 ZACATECAS 2015 30099 25.619157 6.412798 12 57
223 ZACATECAS 2016 30118 25.641975 6.402262 10 51

224 rows × 7 columns

fig = Figure(figsize=(12, 6))
ax = fig.add_subplot()
_df = consulta2.reset_index()
_df.columns = ["_".join(x).rstrip("_") for x in _df.columns.to_flat_index()]
_df = _df.rename(columns={"año_de_nacimiento_vivo": "año"})
edo = "BAJA CALIFORNIA"
for edo in estados_mexicanos:
    _to_plot = _df[(_df["edo_captura"] == edo)][["año", "edad_madre_mean", "edad_madre_std"]]
    _to_plot = _to_plot.set_index("año")
    _to_plot.plot(y="edad_madre_mean", ax=ax, label=edo, linestyle="--", grid=True)


fig

fig = Figure(figsize=(12, 6))
ax = fig.add_subplot()
_df = consulta2.reset_index()
for edo in {x[0] for x in consulta.index.to_list()}:
    _to_plot = _df[(_df["edo_captura"] == edo)
    ][
    [("año_de_nacimiento_vivo", ""), ("edad_madre", "count")]
    ]
    _to_plot.columns = ["Año", "Cantidad"]
    _to_plot = _to_plot.set_index("Año")
    
    _to_plot.plot(y="Cantidad", ax=ax, label=edo, linestyle="--", grid=True)

ax.legend(loc='upper left')
ax.set_xlabel("Año")
ax.set_ylabel("Cantidad de Nacimientos")
fig
edad_madre
count mean std min max
edo_captura edo_nac_madre año_de_nacimiento_vivo
AGUASCALIENTES AGUASCALIENTES 2010 20696 24.986906 6.228893 10 52
2011 21580 24.995551 6.241311 11 47
2012 21878 24.886918 6.231271 12 47
2013 22170 24.847857 6.172318 10 52
2014 22451 24.871810 6.158577 12 56
... ... ... ... ... ... ... ...
ZACATECAS ZACATECAS 2012 25399 25.386590 6.392179 12 58
2013 25811 25.383441 6.385638 11 52
2014 25316 25.526900 6.395030 13 56
2015 25138 25.556846 6.421693 12 57
2016 25003 25.590809 6.399027 10 51

8054 rows × 5 columns

Filtrar a solo observar los:

Top GDP

Agrupación por zonas metropolitanas