In [ ]:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import pylab as pl
import random
import time
import urllib.request

from urllib.request import Request
from pandas.tools.plotting import scatter_matrix
from __future__ import division
from scipy import optimize


%matplotlib inline
matplotlib.style.use('ggplot')

Descargar bases de datos de compranet


In [2]:
csv_links = ['https://siac.funcionpublica.gob.mx/DatosAbiertos/sanc/ProveedoresyContratistasSancionados.csv',
            'http://catalogo.datos.gob.mx/dataset/procedimientos-de-contratacion-2016/resource/1108367a-9e0e-4719-95aa-29e214006380',
            'http://catalogo.datos.gob.mx/dataset/procedimientos-de-contratacion-2015/resource/20b85cbd-4a8a-4c99-b14c-44f9963ea0bd',
            'http://catalogo.datos.gob.mx/dataset/procedimientos-de-contratacion-2014/resource/8bf3dd44-aa2c-4307-9e4e-7063bf1ffd5a',
            'http://catalogo.datos.gob.mx/dataset/procedimientos-de-contratacion-2013/resource/edf9d32e-79f1-4fc3-afc8-fedd693a91e6']

no_jalan = ['http://www.datos.economia.gob.mx/TablacomprasgobiernoMIPYMES2011.csv'] # de 2011 a 2015 no jalan

def get_db(url):
    open_ = urllib.request.urlopen(Request(url))
    download = s.get(CSV_URL)
    decoded_content = download.content.decode('utf-8')
    
def get():
    for i in csv_links:
        get_db(i)

In [3]:
files_contratos = ['Contratos2013.csv', 'Contratos2014.csv', 'Contratos2015.csv', 'Contratos2016.csv']
files_otros = ['ProveedoresyContratistasSancionados.csv']

In [4]:
def read_csv(file_name):
    df = pd.read_csv(file_name, index_col=0, header = 0, encoding = 'utf-8')
    return df

In [ ]:
df = read_csv('final_project/Contratos2014.csv')

In [36]:
# Get top contratista
df.groupby('PROVEEDOR_CONTRATISTA').size().sort_values()


Out[36]:
PROVEEDOR_CONTRATISTA
\tJUANA LEONARDA MARTINEZ PECH                                                   1
JUAN MANUEL HERNANDEZ MARTINEZ                                                   1
JUAN MANUEL HERNANDEZ RODRIGUEZ                                                  1
JUAN MANUEL HUESCA RAMIREZ                                                       1
JUAN MANUEL JIMENEZ CAMARENA                                                     1
JUAN MANUEL LUZURIAGA HURTADO                                                    1
JUAN MANUEL MARTINEZ                                                             1
JUAN MANUEL MARTINEZ ACUÑA                                                       1
JUAN MANUEL MARTINEZ PADILLA                                                     1
JUAN MANUEL HERNANDEZ GARCIA                                                     1
JUAN MANUEL MARTINEZ TINAJERO                                                    1
JUAN MANUEL MENCHACA VARGAS                                                      1
JUAN MANUEL MENESES CASTREJON                                                    1
JUAN MANUEL MORA MENDEZ                                                          1
JUAN MANUEL MORENO CURIEL                                                        1
JUAN MANUEL MORENO LOPEZ                                                         1
JUAN MANUEL MURO                                                                 1
JUAN MANUEL OLEA CONTRERAS                                                       1
JUAN MANUEL OSUNA MAYORAL                                                        1
JUAN MANUEL MEDINA SILIS                                                         1
JUAN MANUEL PEREZ AYON                                                           1
JUAN MANUEL GONZALEZ GERVACIO                                                    1
JUAN MANUEL GARCIA VASQUEZ                                                       1
JUAN MANUEL ALVAREZ TRISTAN                                                      1
JUAN MANUEL AMADOR ESCAMILLA                                                     1
JUAN MANUEL BARBOSA GOMEZ                                                        1
JUAN MANUEL BONIFAZ MOHEDANO                                                     1
JUAN MANUEL CALLEJA PONCE                                                        1
JUAN MANUEL CARRERAS MARTINEZ                                                    1
JUAN MANUEL CASTILLO RAMIREZ                                                     1
                                                                              ... 
DIMEXPRESS S DE RL DE CV                                                       122
SELECCIONES MEDICAS DEL CENTRO, S.A. DE C.V.                                   122
MEDICAMENTOS Y SERVICIOS INTEGRALES DEL NOROESTE SA DE CV                      125
DISTRIBUIDORA LAB - HOS SA DE CV                                               127
EL CRISOL SA DE CV                                                             130
AURORA ESCAMILLA ZENTENO                                                       140
MEDIEMEX PHARMA SA DE CV                                                       144
HOLIDAY DE MEXICO SA DE CV                                                     144
PROVEEDORA NACIONAL DE MATERIAL DE CURACION, S.A. DE C.V.                      147
VIMA SUMINISTROS INDUSTRIALES                                                  149
PRAXAIR MEXICO S DE RL DE CV                                                   152
FARMACEUTICA AGO DEL PACIFICO SA DE CV                                         152
EFECTIVALE S DE RL DE CV                                                       158
SAVI DISTRIBUCIONES, S.A. DE C.V.                                              160
ACCESORIOS PARA LABORATORIOS SA DE CV                                          160
BAXTER SA DE CV                                                                165
COMERCIALIZADORA ARCA 23 SA DE CV                                              169
EQUIPOS ELECTRICOS PARA ALTA TENSION SA DE CV                                  176
COMERCIAL HOSPITALARIA SA DE CV                                                179
PAROLI SOLUTIONS SA DE CV                                                      185
IUSA Medicion                                                                  188
BIOMA FARMACEUTICA SA DE CV                                                    192
INFRA, S.A. DE C.V.                                                            194
PROVEEDORES INDUSTRIALES DE EQUIPOS Y REFACCIONES UNIVERSALES, S.A. DE C.V.    196
DEGASA                                                                         198
LABORATORIOS PISA S.A. DE C.V.                                                 246
DISTRIBUIDORA INTERNACIONAL DE MEDICAMENTOS Y EQUIPO MEDICO SA DE CV           254
FARMACEUTICOS MAYPO, S.A. DE C.V.                                              320
GRUPO FARMACOS ESPECIALIZADOS SA DE CV                                         380
MEDICA AVANZADA SA DE CV                                                       583
dtype: int64

In [37]:
# Get top contratista
df.groupby('PROVEEDOR_CONTRATISTA').sum().sort_values('IMPORTE_CONTRATO')


Out[37]:
CODIGO_EXPEDIENTE CODIGO_CONTRATO IMPORTE_CONTRATO RAMO APORTACION_FEDERAL CONTRATO_MARCO COMPRA_CONSOLIDADA PLURIANUAL FOLIO_RUPC
PROVEEDOR_CONTRATISTA
ASCENCIO MARTINEZ EMMANUEL ROBERTO 635595 561648 0.00E+00 NaN NaN 0 0 0 NaN
LLANTAS Y ADITAMENTOS DE LOS ALTOS SA DE CV 575243 564570 0.00E+00 NaN NaN 0 0 0 NaN
MEDICION E INGENIERIA SA DE CV 630367 582922 0.00E+00 NaN NaN 0 0 0 NaN
GARCIA CORDOVA MANUEL JOSE FRANCISCO 589693 515121 0.00E+00 NaN NaN 0 0 0 NaN
VICTOR DAVID RIVERA MENDOZA 598452 575328 0.00E+00 NaN NaN 0 0 0 NaN
GARCIA CORDOVA MONICA DEL CARMEN 589652 515074 0.00E+00 NaN NaN 0 0 0 NaN
CANTU QUIROGA FIDENCIO HORACIO 590256 515617 0.00E+00 NaN NaN 0 0 0 NaN
DISEÑO ASESORIA Y CONSTRUCCIONES DE TEHUACAN, S.A. DE C.V. 717596 651799 0.00E+00 15.00E+00 104.27E+03 0 0 0 NaN
LEAL GARCIA NICOLAAS 590363 515706 0.00E+00 NaN NaN 0 0 0 NaN
ALEJANDRO BARCENAS OLVERA 643674 590305 0.00E+00 NaN NaN 0 0 0 NaN
EDITORAS LOS MIERCOLES, S.A DE C.V. 677690 866024 0.00E+00 NaN NaN 0 0 0 NaN
CHAVEZ CARRETERO ISIDRO ROBERTO 600084 524513 0.00E+00 NaN NaN 0 0 0 NaN
MEJIA GALICIA EDUARDO 590233 515596 0.00E+00 NaN NaN 0 0 0 NaN
C+ARK, S.A. DE C.V. 673333 762655 0.00E+00 NaN NaN 0 0 0 NaN
DISTRIBUIDORA DEISE SA DE CV 694696 902685 0.00E+00 NaN NaN 0 0 0 NaN
NORIS PEREZ DE ALVA RAUL 590217 515586 0.00E+00 NaN NaN 0 0 0 NaN
GIORGANA DE LA CONCHA ALFREDO DE JESUS 590384 515728 0.00E+00 NaN NaN 0 0 0 NaN
OPTISOLUCIONES INTEGRALES SA DE CV 591799 537588 0.00E+00 NaN NaN 0 0 0 NaN
ECONARC, S.A. DE C.V. 657708 659430 0.00E+00 NaN NaN 0 0 0 NaN
ROSAS TORRES FEDERICO 592915 518171 0.00E+00 NaN NaN 0 0 0 NaN
MONTES GOMEZ DAZA ALVARO ALEJANDRO 588805 514409 0.00E+00 NaN NaN 0 0 0 NaN
JORGE CONSTANTINO KATSICAS RAMOS 567714 502867 0.00E+00 NaN NaN 0 0 0 57.74E+03
LUZ MARIA BORBOLLA FRANCO 452162 508217 0.00E+00 NaN NaN 0 0 0 NaN
SAUL GONZALEZ RODRIGUEZ 554928 619397 0.00E+00 NaN NaN 0 0 0 NaN
GOMEZ VELAZQUEZ JUAN ANTONIO 600024 524480 0.00E+00 NaN NaN 0 0 0 NaN
GOMEZ MORIN RIVERA JUAN PABLO 590239 515602 0.00E+00 NaN NaN 0 0 0 NaN
RAMIREZ CASTRO HECTOR MANUEL 590266 515627 0.00E+00 NaN NaN 0 0 0 NaN
MARTINELLI PINCIONE GRACIA MARIA 589752 515164 0.00E+00 NaN NaN 0 0 0 NaN
VALENZUELA BERNAL MAURO 590389 515741 0.00E+00 NaN NaN 0 0 0 NaN
TIENDA DE COMPUTADORAS PSCM, S. A. DE C. V. 559225 500034 0.00E+00 NaN NaN 0 0 0 NaN
... ... ... ... ... ... ... ... ... ...
GONZALO NUÑO DIAZ 645798 583335 2.50E+09 NaN NaN 0 0 0 NaN
CONSTRUCTORA DALARO SA DE CV 1426799 1322210 2.69E+09 NaN NaN 0 0 1 NaN
GRUPO HTCJ & ASOCIADOS SA DE CV 1204856 1140757 2.76E+09 NaN NaN 0 0 0 NaN
TRADECO INFRAESTRUCTURA, S.A. DE C.V. 1697965 1663799 2.78E+09 NaN NaN 0 1 2 19.30E+03
CONCORDIA GUANAJUATO SA DE CV 677985 672388 2.89E+09 NaN NaN 0 0 0 NaN
TONELAVA SA DE CV 1025596 1229764 2.96E+09 NaN NaN 0 0 0 NaN
SIXSIGMA NETWORKS MEXICO 6532730 6144419 4.00E+09 NaN NaN 0 0 3 NaN
IMPULSORA DE SERVICIOS TERRESTRES SA DE CV 1617927 1587683 4.04E+09 NaN NaN 0 0 3 NaN
SAVI DISTRIBUCIONES, S.A. DE C.V. 97853606 102120452 4.06E+09 NaN NaN 0 10 0 38.69E+03
DISTRIBUIDORA INTERNACIONAL DE MEDICAMENTOS Y EQUIPO MEDICO SA DE CV 159083654 162762321 4.19E+09 36.00E+00 NaN 1 49 9 164.81E+03
CASANOVA VALLEJO SA DE CV 40398319 38395890 4.36E+09 20.00E+00 NaN 46 9 48 716.83E+03
FARMACEUTICOS MAYPO, S.A. DE C.V. 199518445 204246158 4.64E+09 156.00E+00 NaN 1 22 1 171.38E+03
IMPULSOR ELECTRICO SA DE CV 1247386 1435282 4.70E+09 NaN NaN 0 0 0 NaN
GERARDO NAVA SAN MARTIN 668579 623099 4.82E+09 NaN NaN 0 0 0 NaN
CONSTRUCCIONES Y TRITURACIONES SA DE CV 1193415 1191654 5.03E+09 NaN NaN 0 0 1 7.96E+03
INGENIEROS CIVILES ASOCIADOS SA DE CV 2415612 2395514 5.34E+09 NaN NaN 0 0 1 16.28E+03
IGNACIO JIMENEZ ARMAS 612133 577110 5.49E+09 NaN NaN 0 0 0 NaN
SEGURITECH PRIVADA SA DE CV 1269022 1427839 5.80E+09 NaN NaN 0 0 1 NaN
MANEJO INTEGRAL EN CONSULTA EMPRESARIAL SA DE CV 1253273 1134256 6.31E+09 NaN NaN 0 0 2 NaN
ALSTOM TRANSPORT MEXICO SA DE CV 634158 639415 6.39E+09 NaN NaN 0 0 1 NaN
METLIFE MEXICO, S.A. 19392440 18504539 6.51E+09 NaN NaN 0 2 3 111.78E+03
MOTA-ENGIL MEXICO SA DE CV 2751166 2764283 8.10E+09 NaN NaN 0 0 2 NaN
LA PENINSULAR COMPAÑIA CONSTRUCTORA S.A. DE C.V 559520 549640 8.75E+09 NaN NaN 0 0 1 7.55E+03
CONSTRUCTORA ZIHUASOL SA DE CV 6010623 6335565 9.17E+09 NaN NaN 0 0 0 NaN
ANA MARIA RENGIFO CHARRIA 561748 821693 11.35E+09 NaN NaN 0 0 0 NaN
CAF MEXICO SA DE CV 636012 657621 11.70E+09 NaN NaN 0 0 1 NaN
Impromed 8672764 7740132 12.33E+09 NaN NaN 0 0 0 NaN
GRUPO FARMACOS ESPECIALIZADOS SA DE CV 237031761 245841628 12.47E+09 24.00E+00 NaN 0 45 1 164.92E+03
CBG CONSTRUCCIONES SA DE CV 1490703 1420595 16.23E+09 NaN 25.37E+06 0 1 0 NaN
AGUSTIN PEREZ LLAMAS 5011348 5104487 50.26E+09 NaN NaN 2 2 0 NaN

59621 rows × 9 columns

2. Data exploration


In [38]:
def null_count(data_frame):
    data_frame_long = pd.melt(data_frame)
    null_count = data_frame_long.value.isnull()
    return pd.crosstab(data_frame_long.variable, null_count)

def outliers(df, var_name):
    return df[np.abs(df[var_name]-np.abs(df[var_name].mean())) >= 3*df[var_name].std()]

def outliers_remove(df, var_name):
    return df[~(np.abs(df[var_name]-np.abs(df[var_name].mean())) >= 3*df[var_name].std())]

def df_stats(data_frame):
    return data_frame.describe()
        
def run():
    df = read_csv('final_project/Contratos2014.csv')
    print('\n Null Values Count (True)', null_count(df))
    return df_stats(df)

In [ ]:


In [39]:
df = run()


/usr/local/lib/python3.5/site-packages/IPython/core/interactiveshell.py:2881: DtypeWarning: Columns (32) have mixed types. Specify dtype option on import or set low_memory=False.
  exec(code_obj, self.user_global_ns, self.user_ns)
 Null Values Count (True) value                          False   True 
variable                                    
APORTACION_FEDERAL              8053  147976
ARCHIVADO                     156029       0
CARACTER                      154015    2014
CLAVEUC                       156029       0
CLAVE_CARTERA_SHCP               301  155728
CLAVE_PROGRAMA                  5849  150180
CODIGO_CONTRATO               156029       0
CODIGO_EXPEDIENTE             156029       0
COMPRA_CONSOLIDADA            156029       0
CONTRATO_MARCO                156029       0
CUENTA_ADMINISTRADA_POR       156029       0
DEPENDENCIA                   156029       0
ESTATUS_CONTRATO              156029       0
ESTATUS_EMPRESA               156029       0
ESTRATIFICACION_MPC           120316   35713
ESTRATIFICACION_MUC           156029       0
EXP_F_FALLO                    56614   99415
FECHA_APERTURA_PROPOSICIONES  110742   45287
FECHA_CELEBRACION              80488   75541
FECHA_FIN                     156029       0
FECHA_INICIO                  156029       0
FOLIO_RUPC                     33003  123026
FORMA_PROCEDIMIENTO            97390   58639
IMPORTE_CONTRATO              156029       0
MONEDA                        156029       0
NOMBRE_DE_LA_UC               156029       0
NUMERO_PROCEDIMIENTO          156029       0
PLANTILLA_EXPEDIENTE          156029       0
PLURIANUAL                    156029       0
PROC_F_PUBLICACION             93541   62488
PROVEEDOR_CONTRATISTA         156029       0
RAMO                           10664  145365
RESPONSABLE                   156029       0
SIGLAS                        156029       0
TIPO_CONTRATACION             156029       0
TIPO_PROCEDIMIENTO            156029       0
TITULO_CONTRATO               156029       0
TITULO_EXPEDIENTE             156029       0

df.col


In [26]:
df.columns


Out[26]:
Index(['SIGLAS', 'DEPENDENCIA', 'CLAVEUC', 'NOMBRE_DE_LA_UC', 'RESPONSABLE',
       'CODIGO_EXPEDIENTE', 'TITULO_EXPEDIENTE', 'PLANTILLA_EXPEDIENTE',
       'NUMERO_PROCEDIMIENTO', 'EXP_F_FALLO', 'PROC_F_PUBLICACION',
       'FECHA_APERTURA_PROPOSICIONES', 'CARACTER', 'TIPO_CONTRATACION',
       'TIPO_PROCEDIMIENTO', 'FORMA_PROCEDIMIENTO', 'CODIGO_CONTRATO',
       'TITULO_CONTRATO', 'FECHA_INICIO', 'FECHA_FIN', 'IMPORTE_CONTRATO',
       'MONEDA', 'ESTATUS_CONTRATO', 'ARCHIVADO', 'CONVENIO_MODIFICATORIO',
       'RAMO', 'CLAVE_PROGRAMA', 'APORTACION_FEDERAL', 'FECHA_CELEBRACION',
       'CONTRATO_MARCO', 'IDENTIFICADOR_CM', 'COMPRA_CONSOLIDADA',
       'PLURIANUAL', 'CLAVE_CARTERA_SHCP', 'ESTRATIFICACION_MUC', 'FOLIO_RUPC',
       'PROVEEDOR_CONTRATISTA', 'ESTRATIFICACION_MPC', 'SIGLAS_PAIS',
       'ESTATUS_EMPRESA', 'CUENTA_ADMINISTRADA_POR', 'C_EXTERNO', 'ORGANISMO',
       'ANUNCIO'],
      dtype='object')

In [ ]: