In [1]:
descripciones = {
'P0813' : 'Homicidios Intencionales',
}
In [3]:
# Librerías utilizadas
import pandas as pd
import sys
import urllib
import os
import csv
import zipfile
from simpledbf import Dbf5
In [5]:
# Configuracion del sistema
print('Python {} on {}'.format(sys.version, sys.platform))
print('Pandas version: {}'.format(pd.__version__))
import platform; print('Running on {} {}'.format(platform.system(), platform.release()))
In [13]:
# URL Fuente
remote_path = r'http://www.beta.inegi.org.mx/contenidos/proyectos/registros/vitales/mortalidad/microdatos/defunciones/2016/defunciones_base_datos_2016_dbf.zip'
# Carpeta destino Local
local_path = r'D:\PCCS\00_RawData\01_CSV\INEGI\Defunciones\defunciones_base_datos_2016_dbf.zip'
In [14]:
# Descarga de archivo
if os.path.isfile(local_path):
print('Ya existe el archivo: {}'.format(local_path))
else:
print('Descargando {} ... ... ... ... ... '.format(local_path))
urllib.request.urlretrieve(remote_path, local_path) #
print('se descargó {}'.format(local_path))
In [16]:
# Descompresión de archivo
target = r'D:\PCCS\00_RawData\01_CSV\INEGI\Defunciones'
descomprimir = zipfile.ZipFile(local_path, 'r')
print('Iniciando descompresión')
descomprimir.extractall(target)
descomprimir.close
print('Descompresión terminada en {}'.format(target))
In [21]:
# Listado de archivos
files = os.listdir(target)
x = 0
for file in files:
print('{} - {}'.format(x, file))
x += 1
In [24]:
path_to_dbf = r'{}\{}'.format(target,files[4])
dataset = Dbf5(path_to_dbf, codec='mbcs').to_dataframe()
dataset.head()
Out[24]:
In [26]:
# Seleccion de variables
x = 0
for i in dataset:
print('{} - {}'.format(x, i))
x += 1
In [31]:
# lista de variables seleccionadas
Variables = [0, 1, 6, 7, 10, 12, 16, 24, 26, 30, 43, 54, 55]
Variables = list(list(dataset)[i] for i in Variables)
Variables
Out[31]:
In [37]:
dataset = dataset[Variables]
dataset.head()
Out[37]:
In [45]:
# Tipos de datos en variables
dataset.dtypes
Out[45]:
In [43]:
#Subconjunto de años para el estudio
dataset = dataset.loc[dataset['ANIO_OCUR'].isin(range(2010, 2017))]
In [46]:
# Subconjunto de homicidios (El identificador 2 corresponde a homicidios)
dataset = dataset.loc[dataset['PRESUNTO'] == 2]
In [47]:
dataset.head()
Out[47]:
In [48]:
dataset['CVE_MUN'] = dataset.ENT_REGIS.map(str)+dataset.MUN_REGIS
dataset.head()
Out[48]:
In [50]:
# Eliminar columnas redundantes
del(dataset['ENT_REGIS'])
del(dataset['MUN_REGIS'])
In [49]:
# Metadatos estándar
metadatos = {
'Nombre del Dataset': 'INEGI - Registros administrativos de mortalidad al año 2016',
'Descripcion del dataset': 'Originalmente, el formato de captación para las defunciones generales era una boleta colectiva, en la cual las fuentes informantes reportaban las defunciones que registraban durante el mes. A partir del año 1987, el formato principal es el certificado o acta de defunción y el cuaderno para defunciones accidentales y violentas del Ministerio Público.',
'Disponibilidad Temporal': '1923 a 2016',
'Periodo de actualizacion': 'Anual',
'Nivel de Desagregacion': 'Caso',
'Notas': None,
'Fuente': 'INEGI',
'URL_Fuente': 'http://www.beta.inegi.org.mx/proyectos/registros/vitales/mortalidad/',
'Dataset base': None,
}
In [1]:
variables = {
ENT_REGIS
MUN_REGIS
ENT_OCURR
MUN_OCURR
CAUSA_DEF
SEXO
ANIO_OCUR
ESCOLARIDA
PRESUNTO
ASIST_MEDI
VIO_FAMI
ENT_OCULES
MUN_OCULES
}
In [54]:
dataset['CAUSA_DEF'].unique()
Out[54]:
In [53]:
for i in dataset['CAUSA_DEF'].unique():
print(i)
In [56]:
dataset[dataset['CAUSA_DEF'] == 'Y069']
Out[56]:
In [57]:
len(dataset[dataset['CAUSA_DEF'] == 'Y069'])
Out[57]:
In [58]:
dataset['ANIO_OCUR'].unique()
Out[58]: