36 KiB
36 KiB
from functools import cache
import pandas as pd
pd.set_option("display.max_columns", None)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",
"entidad_certifico",
]df_original = pd.read_csv("~/Downloads/out2.csv", dtype=object)# df_original.columnsdf = df_original.copy()df_cols = df.columns.to_list()
columnas_description = {x for x in df_cols if x[-2:] == ".1"} | {"estado_conyugal"}
df_cols = [x for x in df_cols if x + ".1" not in columnas_description]
print(columnas_description)
df = df[df_cols]{'entidad_residencia_madre.1', 'edo_captura.1', 'sexo_nacimiento_vivo.1', 'escolaridad_madre.1', 'edo_nac_madre.1', 'madre_sobrevivio_parto.1', 'recibio_atencion_prenatal.1', 'producto_de_un_embarazo.1', 'estado_conyugal'}
df = df.rename(columns={x: x[:-2] for x in columnas_description})df.columnsIndex(['Unnamed: 0', 'MPO_NACM', 'fecha_nac_madre', 'edad_madre', 'CON_INDM',
'HABLA_INDM', 'CUAL_LENGM', 'estado_conyug', 'TIPOVIAL_RES',
'TIPOASEN_RES', 'MPO_RES', 'LOC_RES', 'numeros_embarazos',
'hijos_nacidos_muertos', 'hijos_nacidos_vivos', 'hijos_sobrevivientes',
'hijo_anterior_nacio', 'VIVE_AUN', 'orden_nacimiento', 'TRIM_CONS',
'total_consultas_recibidas', 'DERHAB', 'DERHAB2',
'ocupacion_habitual_madre', 'CVEOCUPHAB', 'TRAB_ACT',
'fecha_nacimiento_vivo', 'hora_nacimiento_vivo',
'semanas_gestacion_vivo', 'talla_nacimiento_vivo', 'peso_nac_vivo',
'valoracion_apgar_nac_vivo', 'valoracion_silverman_nac_vivo', 'BCG',
'HEP_B', 'VIT_A', 'VIT_K', 'TAM_AUD', 'ACELRN', 'CVE_CIE', 'ACELRN2',
'CVE_CIE2', 'PROCNAC', 'FORCEPS', 'ESPECIFIQUE', 'INST_NAC', 'UNIMED',
'CLUES', 'ATENDIO', 'ATEN_OTRO', 'TIPOVIAL_NAC', 'TIPOASEN_NAC',
'lugar_de_nacimiento', 'MPO_NAC', 'LOC_NAC', 'CERT_POR', 'OTROMEDICO',
'UNIMED_33_1', 'CLUES_33_2', 'TIPOVIAL_CERT', 'TIPOASEN_CERT',
'ENT_CERT', 'MPO_CERT', 'LOC_CERT', 'FECH_CERT', 'FECH_ALTA',
'FECH_CAMB', 'IDCAPTURA', 'TIPO_FORMATO', 'edo_nac_madre',
'edo_captura', 'el_hijo_anterior_nacio', 'entidad_certifico',
'entidad_residencia_madre', 'escolaridad_madre', 'Descrip',
'lugar_nacimiento', 'madre_sobrevivio_parto', 'producto_de_un_embarazo',
'recibio_atencion_prenatal', 'sexo_nacimiento_vivo',
'trabaja_actualmente', 'trimestre_recibio_primera_consulta',
'vive_aun_hijo_anterior'],
dtype='object')
mapper = {
"numeros_embarazos": "numero_embarazos",
"madre_sobrevivio_parto": "madre_sobrevivio_al_parto",
"fecha_nacimiento_vivo": "fecha_nacimiento_nac_vivo",
"hora_nacimiento_vivo": "hora_nacimiento_nac_vivo",
"sexo_nacimiento_vivo": "sexo_nac_vivo",
"semanas_gestacion_vivo": "semanas_gestacion_nac_vivo",
"talla_nacimiento_vivo": "talla_nac_vivo",
"Descrip": "estado_conyugal",
}
df = df.rename(columns=mapper)# df_original.sample(n=10)[["estado_conyugal"]]df[columns_selected + ["CVE_CIE", "CVE_CIE2"]]| 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 | entidad_certifico | CVE_CIE | CVE_CIE2 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | CHIAPAS | CHIAPAS | 05/07/1980 | 36 | UNIÓN LIBRE | CHIAPAS | 9 | 1 | 8 | 8 | VIVO | SI | 9 | SI | SEGUNDO | 6 | SI | NINGUNA | HOGAR | NaN | 19/04/2017 | 02:00:00 | MUJER | 40 | 50 | 3100 | 8 | 0 | ÚNICO | CHIAPAS | 0000 | 0000 |
| 1 | CHIAPAS | CHIAPAS | 17/05/1991 | 25 | UNIÓN LIBRE | CHIAPAS | 4 | 99 | 4 | 4 | VIVO | SI | 4 | SI | SEGUNDO | 4 | SI | SECUNDARIA COMPLETA | HOGAR | NaN | 11/01/2017 | 13:00:00 | MUJER | 39 | 50 | 3900 | 0 | 0 | ÚNICO | CHIAPAS | 0000 | 0000 |
| 2 | CHIAPAS | CHIAPAS | 27/01/1982 | 35 | CASADA | CHIAPAS | 6 | 0 | 6 | 6 | VIVO | SI | 6 | SI | PRIMERO | 3 | SI | PRIMARIA INCOMPLETA | AMA DE CASA | NaN | 22/05/2017 | 12:23:00 | MUJER | 38 | 50 | 2960 | 9 | 0 | ÚNICO | CHIAPAS | 0000 | 0000 |
| 3 | CHIAPAS | CHIAPAS | 16/11/1983 | 33 | UNIÓN LIBRE | CHIAPAS | 1 | 0 | 1 | 1 | S.I. | NaN | 1 | SI | TERCERO | 4 | SI | PRIMARIA COMPLETA | AMA DE CASA | NaN | 03/06/2017 | 10:35:00 | MUJER | 99 | 48 | 2900 | 99 | 99 | ÚNICO | CHIAPAS | 0000 | 0000 |
| 4 | CHIAPAS | CHIAPAS | 22/11/1982 | 34 | UNIÓN LIBRE | CHIAPAS | 3 | 99 | 3 | 3 | VIVO | SI | 3 | SI | PRIMERO | 5 | SI | NINGUNA | AMA DE CASA | NaN | 29/04/2017 | 23:12:00 | MUJER | 39 | 51 | 3050 | 9 | 0 | ÚNICO | CHIAPAS | 0000 | 0000 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 5873372 | ZACATECAS | OTROS PAISES DE LATINOAMERICA | 01/07/1987 | 31 | CASADA | ZACATECAS | 3 | 1 | 2 | 2 | VIVO | SI | 3 | SI | PRIMERO | 12 | SI | PROFESIONAL | LIC. EN INFORMATICA | SI | 23/05/2019 | 16:06:00 | MUJER | 39 | 49 | 2990 | 9 | 0 | ÚNICO | ZACATECAS | 0000 | 0000 |
| 5873373 | ZACATECAS | ZACATECAS | 17/07/1986 | 32 | CASADA | ZACATECAS | 3 | 0 | 3 | 3 | VIVO | SI | 3 | SI | PRIMERO | 5 | SI | SECUNDARIA COMPLETA | HOGAR | NaN | 24/05/2019 | 16:55:00 | HOMBRE | 37 | 50 | 3830 | 9 | 0 | ÚNICO | ZACATECAS | 0000 | 0000 |
| 5873374 | ZACATECAS | ZACATECAS | 16/01/2000 | 19 | CASADA | ZACATECAS | 1 | 0 | 1 | 1 | NO HA TENIDO OTROS HIJOS(AS) | NaN | 1 | SI | PRIMERO | 5 | SI | SECUNDARIA COMPLETA | HOGAR | NaN | 24/05/2019 | 23:13:00 | HOMBRE | 42 | 56 | 4460 | 9 | 0 | ÚNICO | ZACATECAS | 0000 | 0000 |
| 5873375 | ZACATECAS | ZACATECAS | 26/06/2000 | 18 | UNIÓN LIBRE | ZACATECAS | 2 | 0 | 2 | 2 | VIVO | SI | 2 | NO | NO RECIBIO | 0 | SI | BACHILLERATO O PREPARATORIA INCOMPLETA | HOGAR | NaN | 25/05/2019 | 01:47:00 | HOMBRE | 39 | 49 | 3090 | 9 | 0 | ÚNICO | ZACATECAS | 0000 | 0000 |
| 5873376 | ZACATECAS | ZACATECAS | 24/09/2002 | 16 | UNIÓN LIBRE | SAN LUIS POTOSI | 1 | 0 | 1 | 1 | NO HA TENIDO OTROS HIJOS(AS) | NaN | 1 | SI | PRIMERO | 9 | SI | SECUNDARIA INCOMPLETA | HOGAR | NaN | 25/05/2019 | 08:53:00 | MUJER | 40 | 54 | 3300 | 9 | 0 | ÚNICO | ZACATECAS | 0000 | 0000 |
5873377 rows × 32 columns
def _codigo_de_anomalia(x):
return ",".join([str(x["CVE_CIE"]), str(x["CVE_CIE2"])])
df["codigo_anomalia"] = df[["CVE_CIE", "CVE_CIE2"]].apply(_codigo_de_anomalia, axis=1)df = df[columns_selected + ["codigo_anomalia"]]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
)columnas_finales = [
"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",
"codigo_anomalia",
"entidad_certifico",
]df[columnas_finales].to_csv("2017-2019.csv")