Base de datos de códigos postales del Servicio Postal Mexicano

Introduccion

Tuve la fortuna de encontrar la base de datos en un repositorio de Github que alguien ya había minado previamente. la URL al repositorio es https://github.com/redrbrt/sepomex-zip-codes

Revision al dataset


In [4]:
# Librerias utilizadas
import pandas as pd
import sys
import os
import csv
import urllib

In [6]:
# Descarga de archivos a carpeta local
fuente = r'https://github.com/redrbrt/sepomex-zip-codes/raw/master/sepomex_abril-2016.csv'
destino = r'D:\PCCS\01_Dmine\Datasets\SEPOMEX\sepomex_abril-2016.csv'
urllib.request.urlretrieve(fuente, destino)


Out[6]:
('D:\\PCCS\\01_Dmine\\Datasets\\SEPOMEX\\sepomex_abril-2016.csv',
 <http.client.HTTPMessage at 0x41cb0407b8>)

In [13]:
# Importa el dataset a Python
dataset = pd.read_csv(destino)
dataset.head(3)


Out[13]:
idEstado estado idMunicipio municipio ciudad zona cp asentamiento tipo
0 1 Aguascalientes 1 Aguascalientes Aguascalientes Urbano 20000 Zona Centro Colonia
1 1 Aguascalientes 1 Aguascalientes Aguascalientes Urbano 20010 Colinas del Rio Fraccionamiento
2 1 Aguascalientes 1 Aguascalientes Aguascalientes Urbano 20010 Las Brisas Fraccionamiento

In [14]:
# Corregir longitud de claves
dataset['idEstado'] = dataset.idEstado.apply(lambda x: str(int(x)).zfill(2))   # Correccion a 2 digitos (00)
dataset['idMunicipio'] = dataset.idMunicipio.apply(lambda x: str(int(x)).zfill(3))    # Correccion a 3 digitos (000)
dataset['cp'] = dataset.cp.apply(lambda x: str(int(x)).zfill(5))     # Correccion a 5 digitos (00000)
dataset['CVE_MUN'] = dataset[['idEstado', 'idMunicipio']].apply(lambda x: ''.join(x), axis=1)     # Crea CVE_MUN estandar
dataset.head(3)


Out[14]:
idEstado estado idMunicipio municipio ciudad zona cp asentamiento tipo CVE_MUN
0 01 Aguascalientes 001 Aguascalientes Aguascalientes Urbano 20000 Zona Centro Colonia 01001
1 01 Aguascalientes 001 Aguascalientes Aguascalientes Urbano 20010 Colinas del Rio Fraccionamiento 01001
2 01 Aguascalientes 001 Aguascalientes Aguascalientes Urbano 20010 Las Brisas Fraccionamiento 01001

In [15]:
# Guardar dataset como archivo excel
file = r'D:\PCCS\01_Dmine\Datasets\SEPOMEX\sepomex_abril-2016.xlsx'
writer = pd.ExcelWriter(file)
dataset.to_excel(writer, sheet_name = 'DATOS')
writer.save()
print('---------------TERMINADO---------------')


---------------TERMINADO---------------