#!/usr/bin/env python # coding: utf-8 # # Proyección de votos en las mesas no escrutadas durante el escrutinio provisorio # # En el escrutinio provisorio realizado en la provincia de Santa Fe quedaron sin escrutar 347 mesas. # # * 304 telegramas fueron desestimados. # * 33 mesas no fueron cargadas. # # Desde Opendata Córdoba intentamos proyectar los resultados de las mesas ya escrutadas, sobre estas mesas sin escrutar para tratar de predecir que puede pasar en el recuento definitivo. # ### Obtención de datos # # El gobierno de la provincia de Santa Fe provee los datos actualizados del escrutinio provisorio en csv. # # Los descargamos desde http://elecciones.santafe.gov.ar/descargas # In[1]: get_ipython().system('wget http://elecciones.santafe.gov.ar/bundles/escrutinio/descargas/csv.zip') # In[2]: get_ipython().system('unzip csv.zip') # ### Preparación del dataset # # Usando pandas preparamos los datos. # In[3]: import pandas as pd # In[4]: computados = pd.read_csv('computados.csv') # ### Votos promedio por seccion y partido # # Calculamos los votos de una mesa "Promedio" por cada seccion, solo los partidos con mas de 5 votos. # In[9]: pd.set_option('display.max_rows', 2000) promedio_gob_seccion = pd.pivot_table(computados, index=['nroSeccion', 'nroPartido'], values=['votosGob']) votos_promedio_seccion = promedio_gob_seccion[promedio_gob_seccion.votosGob > 5] votos_promedio_seccion # ### Mesas desestimadas y pendientes por seccion # # Contamos cuantas mesas sin escrutar quedaron por sección # In[10]: desestimados= pd.read_csv('desestimados.csv') mesas_desestimadas_por_seccion = desestimados["nroSeccion"].value_counts() # In[12]: pendientes = pd.read_csv('pendientes.csv') mesas_pendientes_por_seccion = pendientes["nroseccion"].value_counts() # ### Performance Partidos en Secciones con mesas Desestimadas # # Filtramos por los partidos políticos más importantes: # In[21]: computados = computados[computados.nroPartido.isin(['0004','0005','0006','ANUL','BLAN'])] secciones_con_mesas_desestimadas = desestimados["nroSeccion"].unique() computados_en_secciones_con_mesas_desestimadas = computados[computados.nroSeccion.isin(secciones_con_mesas_desestimadas)] computados_en_secciones_con_mesas_desestimadas.groupby('nombrePartido').votosGob.mean().order(ascending=False) # En promedio, en las secciones con **mesas desestimadas**, el FRENTE PROGRESISTA CIVICO Y SOCIAL tiene **1.15 votos** más que UNION PRO FEDERAL. Lo Cual, si se mantuviera la tendencia, el FRENTE PROGRESISTA CIVICO Y SOCIAL mantendría la ventaja. # ### Performance Partidos en Secciones con mesas Pendientes # In[23]: computados = computados[computados.nroPartido.isin(['0004','0005','0006','ANUL','BLAN'])] secciones_con_mesas_pendientes = pendientes["nroseccion"].unique() computados_en_secciones_con_mesas_pendientes = computados[computados.nroSeccion.isin(secciones_con_mesas_pendientes)] computados_en_secciones_con_mesas_pendientes.groupby('nombrePartido').votosGob.mean().order(ascending=False) # En promedio, en las secciones con mesas **pendientes**, el FRENTE PROGRESISTA CIVICO Y SOCIAL tiene **2.18 votos** más que UNION PRO FEDERAL. Lo Cual, si se mantuviera la tendencia, el FRENTE PROGRESISTA CIVICO Y SOCIAL mantendría la ventaja. # ### Proyección # # Multiplicamos la cantidad de mesas no escrutadas por los votos promedios por mesa de cada partido en cada seccion # In[16]: def por_seccion(prom, sec): mesas = 0 if sec in mesas_pendientes_por_seccion: mesas += mesas_pendientes_por_seccion[sec] if sec in mesas_desestimadas_por_seccion: mesas += mesas_desestimadas_por_seccion[sec] return int(prom)*mesas # In[18]: fpcys = 558352 pro = 556224 fpv = 532156 for row in votos_promedio_seccion.iterrows(): if row[0][1] == "0004": fpv += por_seccion(row[1], row[0][0]) elif row[0][1] == "0005": pro += por_seccion(row[1], row[0][0]) elif row[0][1] == "0006": fpcys += por_seccion(row[1], row[0][0]) print "FPV: %d Votos" % fpv print "PRO: %d Votos" % pro print "FPCYS: %d Votos" % fpcys print "Diferencia a favor del Socialismo: %d" % (fpcys - pro) # ####Segun esta proyección gana el socialismo por más de 2600 votos. # ### Colaboradores # # [@tin\_nqn\_](https://twitter.com/tin_nqn_) Martín Gaitan # # [@pdelboca](https://twitter.com/pdelboca) Patricio del Boca # # [@jairotrad](https://twitter.com/jairotrad) Jairo Trad # # [@frod_f](https://twitter.com/frod_f) Franco Rodriguez # #