Sebastián Oliva – Escuela De Datos http://es.schoolofdata.org evidencia es poder Sun, 25 Mar 2018 16:44:13 +0000 es hourly 1 https://wordpress.org/?v=5.3.2 114974193 Los dos caras de los datos: la plática y la práctica. Así las vivimos en el Festival Guatemalteco de Gobierno Abierto http://es.schoolofdata.org/2017/11/17/los-dos-caras-de-los-datos-la-platica-y-la-practica-asi-las-vivimos-en-el-festival-guatemalteco-de-gobierno-abierto/ http://es.schoolofdata.org/2017/11/17/los-dos-caras-de-los-datos-la-platica-y-la-practica-asi-las-vivimos-en-el-festival-guatemalteco-de-gobierno-abierto/#respond Fri, 17 Nov 2017 19:55:37 +0000 http://es.schoolofdata.org/?p=2354 Durante dos días, autoridades, miembros de organizaciones sociales, periodistas y académicos se reunieron para hablar sobre un tema: cómo Guatemala puede ser un Estado más abierto. El 7 y 8 de noviembre Escuela De Datos se unió a este esfuerzo para llevar esas ideas a la práctica.

En un espacio dinámico para compartir experiencias, ideas e iniciativas realizamos dos expediciones de datos con toques un poco diferentes. La primera estaba enfocada a la visualización. Llevamos al espacio físico ideas abstractas y tablas de datos que suelen estar poco accesibles cuando no son llevadas a lo visual. La segunda estaba enfocada al análisis a través de programación y código.


Ambos grupos trabajaron con datos del programa Monitoreo Ciudadano que Hivos realiza en la prevención y atención de grupos vulnerables a la epidemia del VIH.

La plática

Para empezar el Visualizatón, hablamos sobre cómo visualizar información implica apuntar con un dardo a un propósito.  “Visualizamos datos porque esto nos permite explicar mejor, reducir el esfuerzo cognitivo y facilitar la generación de conocimiento” fueron los mensajes claves de una primera charla que yo guié.

Luego, Sergio Araiza (México) nos acompañó para hablar sobre las narrativas y cómo la difusión de datos clave se puede nutrir con el uso de símbolos, contrastes e imágenes que nos hagan “ver la historia que los datos cuentan de una manera tan fácil y directa como una fotografía”.

La práctica

Luego de dividirse en los dos grupos, llegó la hora de trabajar.

 

Al primer grupo le esperaba una mesa llena de cartulina, estampas, marcadores y otros materiales que les permitiría llevar a lo físico esas ideas que estuvieron desarrollando a lo individual. Eran aproximadamente 60 personas entre las cuales habían trabajadores municipales invitados al evento por el Instituto Republicano Internacional, estudiantes universitarios y personas poco familiarizadas con el uso de datos.

Al segundo grupo lo esperaban mesas y conexiones para que llegaran con sus computadoras a trabajar y seguir la serie de ejercicios y retos que les tenían preparados. Partiendo de la misma información, esta sesión estaba enfocada en analizar estos datos pero utilizando código y fue liderada por Sebastián Oliva, programador y fellow de Escuela, junto al cientista de datos especializado en salud, Kevin Folgar.

Con un grupo de programadores y cientistas sociales que sabían usar código, Sebastian y Kevin repasaron cómo funcionan los tipos de datos y cómo manipularlos a través de Python.

Para ello utilizaron Pandas —la librería que permite operar y analizar tablas numéricas y series de tiempo— y los Notebooks de Jupyter —que permiten escribir, correr, combinar y republicar código—.

Con estas habilidades lograron hacer ejercicios en los que agruparon y filtraron los datos del programa de monitoreo en salud  para también generar cálculos a través de tablas dinámicas.

Los resultados

Lo que queríamos lograr con el Visualizatón era que los usuarios poco acostumbrados a manejar datos perdieran el miedo, analizaran de qué manera enfocar la información y la pudieran plasmar de una manera creativa para luego explicarle al grupo un detalle o una situación particular de este conjunto de datos.

Al segundo grupo lo esperaban mesas y conexiones para que llegaran con sus computadoras a trabajar y seguir la serie de ejercicios y retos que les tenían preparados. Partiendo de la misma información, esta sesión estaba enfocada en analizar estos datos pero utilizando código y fue liderada por Sebastián Oliva, programador y fellow de Escuela, junto al cientista de datos especializado en salud, Kevin Folgar.

Con un grupo de programadores y cientistas sociales que sabían usar código, Sebastian y Kevin repasaron cómo funcionan los tipos de datos y cómo manipularlos a través de Python.

Para ello utilizaron Pandas —la librería que permite operar y analizar tablas numéricas y series de tiempo— y los Notebooks de Jupyter —que permiten escribir, correr, combinar y republicar código—.

Con estas habilidades lograron hacer ejercicios en los que agruparon y filtraron los datos del programa de monitoreo en salud  para también generar cálculos a través de tablas dinámicas.

Los resultados

Lo que queríamos lograr con el Visualizatón era que los usuarios poco acostumbrados a manejar datos perdieran el miedo, analizaran de qué manera enfocar la información y la pudieran plasmar de una manera creativa para luego explicarle al grupo un detalle o una situación particular de este conjunto de datos.

Aunque el segundo grupo estaba mucho más familiarizado al análisis de datos, no conocían muchas de las funciones que el lenguaje Python nos permite construir. Entre todos fueron siguiendo los ejercicios, conociendo las librerías y evaluando en qué ocasiones cierto código soluciona los problemas que encontramos en cualquiera de los pasos del Data Pipeline.

Sobre el festival de Gobierno Abierto

Esta fue la primera edición del Festival de Gobierno Abierto en Guatemala. Escuela de Datos se unió a este esfuerzo en otras actividades también y a lo largo del Festival participamos en distintas mesas y charlas.

Sergio Araiza moderó un conversatorio sobre cómo el periodismo se ha vuelto más colaborativo e involucra a otros actores para compartir métodos, datos y verificaciones. A él se le unieron dos de los cuatro proyectos que la fellowship de Escuela de Datos en este año ha asesorado para aplicar el Open Contracting Standard. “La colaboración, los datos abiertos y la tecnología permiten intercambiar conocimiento que mejore los procesos y niveles de investigación desde los medios de comunicación en el mundo digital” fue una de las conclusiones”.

Por la noche, los becados al festival de otros municipios y algunos de El Salvador y Honduras pudieron tener una plática más abierta sobre tecnología cívica y de qué manera su uso puede ayudarles a solventar los problemas que afligen a sus ciudadanos.
Aprovechamos la oportunidad para recordarles a todos que existen los “10 mandamientos del Open Data” y hubo siempre una oportunidad para aprender en medio de las bromas del #OpenDataJesus. Y para cerrar, aprovechamos que en el festival también estaba otro personaje, el #OpenGovJedi para predicar a todas las galaxias que los datos tienen un rol importante para transparentar la gestión pública y fortalecer la participación de los ciudadanos en sus instituciones.

Este evento fue organizado por los proyectos Munis Abiertas y Congreso Transparente, con el apoyo de la DW Akademie, quienes nos invitaron e incluyeron en la agenda. Para saber más sobre todas las actividades que esta maratón de Gobierno Abierto incluyó puedes seguir el hashtag #FGA en twitter.

 

Flattr this!

]]>
http://es.schoolofdata.org/2017/11/17/los-dos-caras-de-los-datos-la-platica-y-la-practica-asi-las-vivimos-en-el-festival-guatemalteco-de-gobierno-abierto/feed/ 0 2354
Tutorial: Limpieza y visualizaciones para encontrar patrones con Python http://es.schoolofdata.org/2017/08/31/limpieza-y-visualizaciones-python-iii/ http://es.schoolofdata.org/2017/08/31/limpieza-y-visualizaciones-python-iii/#respond Thu, 31 Aug 2017 20:57:01 +0000 http://es.schoolofdata.org/?p=2256
Desde Escuela de Datos, Sebastián Oliva, fellow 2017, enseña cómo usar la librería de Pandas para Python para importar distintas bases de datos. En este ejercicio conocemos qué es una base de datos relacional, de qué trata el lenguaje SQL, y en el terreno práctico, cómo hacer algunas visualizaciones en Python para hallar patrones interesantes.
Puedes seguir paso a paso viendo este video-tutorial, siguiendo el cuaderno que publicamos abajo o consultando el cuaderno de trabajo de Sebastián en este link.

Leer y escribir archivos, bases de datos y más

Al realizar una exploración de datos, estos pueden provenir de muchas fuentes, en algunos casos recursos en linea, bases de datos SQL o de otros tipos; en otros puede ser necesario exportar a algun formato para seguir el análisis en otra herramienta. Con las herramientas que ya conocemos (Python, Pandas, etc), es muy conveniente el poder utilizarlas para exportar e importar datos. Vamos a trabajar un poco con unas bases de datos sencillas que nos permitirán ejemplificar la facilidad y algunos posibles asuntos a la hora de manipular datos en distintas fuentas. Una de estas es una base de datos de estudios ambientales desde los inicios de los 90’s hasta el 2014, mientras otra son los centros educativos en Guatemala hasta el 2013

Bases de datos: un Crash Course

Como hemos visto ya en estos tutoriales, Pandas es una libreria muy poderosa para manipular datos; sin embargo tiene también competencia obvia en sistemas de bases de datos, que dependiendo de su oferta ofrecen alguna de la funcionalidad de Pandas, junto con otra que es incomparable. Entre los conceptos fundamentales de bases de datos es reconocer la diferencia entre un DBMS (Database Management System) y una DB en sí. El DBMS es el software que permite acceder y controlar la base de datos; mientras que la DB son nuestros datos. Es comparable a la relación entre un reproductor multimedios y la música en sí, la diferencia mas notable es que practicamente no existe un estandar de bases de datos, mas allá de lo que provee SQL en si. Existe una variedad de modelos de bases de datos, para esta ocasión nos enfocaremos en el más común: SQL y bases de Datos Relacionales

RDBMS (Relational Database Management Systems)

SQL es un lenguaje que permite interactuar con bases de datos relacionales. El «Standard Query Language» es en la realidad, no tan estandar, sin embargo, hay un subconjunto que es compatible conocido como ANSI SQL y sus posteriores revisiones. Los ejemplos de este tutorial estarán en SQLite, una base de datos libre que ofrece alto rendimiento y poco uso de recursos, a contraparte de sus limitaciones como concurrencia limitada y el estar basada en archivos. La estaremos usando por su simplicidad, pero téoricamente podriamos usar casi cualquier otro DBMS. Algo muy notable y de tener en cuenta es que las Bases de datos Relacionales, como su nombre lo dice, están basadas en relaciones. Mucha gente confunde este concepto con el de llaves y uniones entre ellas, sin embargo es mucho mas profundo. En las bases de datos relacionales (y lo siento por si puede parecer un poco confuso): Las relaciones son agrupaciones de datos en las cuales se preserva su identidad, es decir representan algo, del cual queramos llevar registro; De estas agrupaciones, cada entidad o sea filas ó tuplas (que lleva su propia carga matemática), del mismo tipo se materializan en tablas, es decir las relaciones de bases de datos relacionales no se refieren a las relaciones que se pueden crear entre los datos, sinó a la estructura tabular en sí. Podemos tomar una pausa aquí y comenzar con el código. Es conveniente porque podremos ver varias de estas analogías en vivo.
import pandas as pd
import numpy as np
import seaborn
import joypy

import matplotlib
matplotlib.rc("savefig", dpi=300)
%matplotlib notebook
import sqlite3
conexion_estudios_ambientales = sqlite3.connect("estudios_amb.sqlite3")
estudios = pd.read_sql("SELECT * FROM estudios_ambientales", 
                       conexion_estudios_ambientales, 
                       parse_dates=["Fecha_Captura","Fecha_Resolucion","Fecha_Notificacion","Fecha_Dictamen"])
estudios.head()
Periodo Numero_Estudio Nombre_Proyecto Representante_Legal Direccion_Proyecto Fecha_Captura Fecha_Resolucion Fecha_Notificacion Fecha_Dictamen
0 2014 DABI-0682 PATSY ZONA 1 HENRY ALONSO MENESES MORAN 6TA. CALLE 5-13 ZONA 1, GUATEMALA, GUATEMALA 2017-07-18 NaT NaT NaT
1 2014 EAI-5140 VIVIENDA UNIFAMILIAR EL ENCINAL, MUNICIPIO DE … CRISTIAN RICARDO BONILLA ALVARADO FINCA URBANA UBICADA EN LOTE NO. 10 SECTRO E L… 2014-10-30 NaT NaT NaT
2 2014 EAI-5079 «AMPLIACIÓN SISTEMA DE AGUAS PLUVIALES CANTÓN … MANUEL AGUSTO NAVAS Y NAVAS CANTON AMERICA ZONA 3, SANTIAGO SACATEPEQUEZ, … 2014-10-29 NaT NaT NaT
3 2014 EAI-5080 «AMPLIACION SISTEMA DE ALCANTARILLADO SANITARI… MANUEL AGUSTO NAVAS Y NAVAS SECTOR CHICRUZ ZONA 3 ALDEA SANTA MARIA CAUQUE… 2014-10-29 NaT NaT NaT
4 2014 EAI-5081 «MEJORAMIENTO INSTALACIONES DEPORTIVAS Y RECRE… MANUEL AGUSTO NAVAS Y NAVAS SECTOR LA CIENAGA KILOMETRO 32 CARRETERA A SAN… 2014-10-29 NaT NaT NaT
tiempos_espera=pd.concat(
    {
        "Periodo": estudios["Periodo"].map(int).astype(int),
        "TiempoEspera": (estudios["Fecha_Captura"]-estudios["Fecha_Resolucion"]).map(lambda x: x.days)
    },
    axis=1
).dropna()

tiempos_espera
Periodo TiempoEspera
312 2014 -153.0
313 2014 -153.0
369 2014 -181.0
371 2014 -181.0
372 2014 -181.0
373 2014 -172.0
375 2014 -181.0
378 2014 -181.0
379 2014 -181.0
496 2014 231.0
503 2014 203.0
556 2014 228.0
559 2014 228.0
652 2014 257.0
750 2014 -7.0
774 2014 -4.0
825 2014 -3.0
876 2014 -5.0
903 2014 -8.0
917 2014 -6.0
935 2014 -1.0
940 2014 -6.0
941 2014 -6.0
942 2014 -6.0
943 2014 -6.0
944 2014 -6.0
946 2014 -7.0
948 2014 -7.0
950 2014 -6.0
953 2014 -6.0
44420 2000 -236.0
44421 2000 -201.0
44422 2000 -142.0
44424 2000 -344.0
44425 2000 -142.0
44426 2000 -142.0
44427 2000 -35.0
44428 2000 -143.0
44429 2000 -177.0
44430 2000 -173.0
44432 2000 -173.0
44434 2000 -1010.0
44435 2000 -2671.0
44438 2000 -341.0
44440 2000 -1048.0
44442 2000 -173.0
44443 2000 -233.0
44448 2000 -235.0
44451 2000 -2847.0
44456 2000 -327.0
44619 1999 -4442.0
44641 1999 -47.0
44649 1999 207.0
44916 1998 -5189.0
45133 1998 -95.0
45252 1997 -4259.0
45533 1996 -6765.0
45820 1994 -4839.0
45973 1994 -4290.0
45976 1995 -5807.0
34035 rows × 2 columns
tiempos_espera.describe()
Periodo TiempoEspera
count 34035.000000 34035.000000
mean 2009.556750 -96.639929
std 11.527618 391.044888
min 0.000000 -32871.000000
25% 2007.000000 -158.000000
50% 2010.000000 -47.000000
75% 2013.000000 0.000000
max 2206.000000 6926.000000
Ahora ya tenemos los elementos, cada uno de los registros y las fechas en las cuales fueron procesados. Podemos ver que el 50% esperó hasta 47 dias y el promedio es esperar 96 dias.
tiempos_espera.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f09f76c7470>
tiempos_espera[tiempos_espera["TiempoEspera"] > 0]
Periodo TiempoEspera
496 2014 231.0
503 2014 203.0
556 2014 228.0
559 2014 228.0
652 2014 257.0
1000 2014 302.0
1012 2014 75.0
1013 2014 75.0
1040 2014 54.0
1041 2014 54.0
1057 2014 48.0
1058 2014 48.0
1107 2014 23.0
1481 2014 232.0
1482 2014 232.0
1483 2014 232.0
1527 2014 232.0
1528 2014 73.0
1575 2014 200.0
1585 2014 141.0
1619 2014 18.0
1621 2014 18.0
1622 2014 140.0
1626 2014 1.0
1733 2014 166.0
1734 2014 135.0
1735 2014 135.0
1737 2014 194.0
1756 2014 135.0
1796 2014 12.0
41194 2004 143.0
41195 2004 214.0
41196 2004 42.0
41233 2004 75.0
41268 2004 157.0
41270 2004 120.0
41273 2004 73.0
41276 2004 179.0
41277 2004 20.0
41279 2004 14.0
41314 2004 47.0
41318 2004 43.0
41319 2004 284.0
41327 2004 42.0
41331 2004 192.0
41332 2004 172.0
41333 2004 66.0
41334 2004 95.0
41335 2004 201.0
41338 2004 115.0
41339 2004 98.0
41340 2004 28.0
41342 2004 49.0
41381 2004 231.0
41387 2004 47.0
41388 2004 47.0
41389 2004 48.0
41390 2003 74.0
43978 1999 337.0
44649 1999 207.0
6849 rows × 2 columns

¿Con que esperaste cuánto?

+6926.000000 !!! Esto es un poco ridiculo. Pero este error está atado a la calidad del dato. Lo que podemos hacer es limpiarlo.
tiempos_espera = tiempos_espera[tiempos_espera["Periodo"] < 2015] 
tiempos_espera = tiempos_espera[tiempos_espera["TiempoEspera"] < 0] # Errores, probablemente año 1900? (IDK)
tiempos_espera = tiempos_espera[tiempos_espera["TiempoEspera"] > -10000] # Errores, probablemente año 1900? (IDK)
# print(tiempos_espera.Periodo.unique()) # Ver que años
tiempos_espera = tiempos_espera.set_index("Periodo")
tiempos_espera.describe()
# tiempos_espera.plot()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-20-06b73fa6e678> in <module>()
      1 tiempos_espera.describe()
----> 2 tiempos_espera.plot(type="bar")

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/pandas/plotting/_core.py in __call__(self, x, y, kind, ax, subplots, sharex, sharey, layout, figsize, use_index, title, grid, legend, style, logx, logy, loglog, xticks, yticks, xlim, ylim, rot, fontsize, colormap, table, yerr, xerr, secondary_y, sort_columns, **kwds)
   2615                           fontsize=fontsize, colormap=colormap, table=table,
   2616                           yerr=yerr, xerr=xerr, secondary_y=secondary_y,
-> 2617                           sort_columns=sort_columns, **kwds)
   2618     __call__.__doc__ = plot_frame.__doc__
   2619 

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/pandas/plotting/_core.py in plot_frame(data, x, y, kind, ax, subplots, sharex, sharey, layout, figsize, use_index, title, grid, legend, style, logx, logy, loglog, xticks, yticks, xlim, ylim, rot, fontsize, colormap, table, yerr, xerr, secondary_y, sort_columns, **kwds)
   1857                  yerr=yerr, xerr=xerr,
   1858                  secondary_y=secondary_y, sort_columns=sort_columns,
-> 1859                  **kwds)
   1860 
   1861 

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/pandas/plotting/_core.py in _plot(data, x, y, subplots, ax, kind, **kwds)
   1682         plot_obj = klass(data, subplots=subplots, ax=ax, kind=kind, **kwds)
   1683 
-> 1684     plot_obj.generate()
   1685     plot_obj.draw()
   1686     return plot_obj.result

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/pandas/plotting/_core.py in generate(self)
    238         self._compute_plot_data()
    239         self._setup_subplots()
--> 240         self._make_plot()
    241         self._add_table()
    242         self._make_legend()

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/pandas/plotting/_core.py in _make_plot(self)
    938                              stacking_id=stacking_id,
    939                              is_errorbar=is_errorbar,
--> 940                              **kwds)
    941             self._add_legend_handle(newlines[0], label, index=i)
    942 

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/pandas/plotting/_core.py in _plot(cls, ax, x, y, style, column_num, stacking_id, **kwds)
    953             cls._initialize_stacker(ax, stacking_id, len(y))
    954         y_values = cls._get_stacked_values(ax, stacking_id, y, kwds['label'])
--> 955         lines = MPLPlot._plot(ax, x, y_values, style=style, **kwds)
    956         cls._update_stacker(ax, stacking_id, y)
    957         return lines

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/pandas/plotting/_core.py in _plot(cls, ax, x, y, style, is_errorbar, **kwds)
    573             else:
    574                 args = (x, y)
--> 575             return ax.plot(*args, **kwds)
    576 
    577     def _get_index_name(self):

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/matplotlib/__init__.py in inner(ax, *args, **kwargs)
   1896                     warnings.warn(msg % (label_namer, func.__name__),
   1897                                   RuntimeWarning, stacklevel=2)
-> 1898             return func(ax, *args, **kwargs)
   1899         pre_doc = inner.__doc__
   1900         if pre_doc is None:

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/matplotlib/axes/_axes.py in plot(self, *args, **kwargs)
   1404         kwargs = cbook.normalize_kwargs(kwargs, _alias_map)
   1405 
-> 1406         for line in self._get_lines(*args, **kwargs):
   1407             self.add_line(line)
   1408             lines.append(line)

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/matplotlib/axes/_base.py in _grab_next_args(self, *args, **kwargs)
    405                 return
    406             if len(remaining) <= 3:
--> 407                 for seg in self._plot_args(remaining, kwargs):
    408                     yield seg
    409                 return

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/matplotlib/axes/_base.py in _plot_args(self, tup, kwargs)
    393         ncx, ncy = x.shape[1], y.shape[1]
    394         for j in xrange(max(ncx, ncy)):
--> 395             seg = func(x[:, j % ncx], y[:, j % ncy], kw, kwargs)
    396             ret.append(seg)
    397         return ret

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/matplotlib/axes/_base.py in _makeline(self, x, y, kw, kwargs)
    300         default_dict = self._getdefaults(None, kw)
    301         self._setdefaults(default_dict, kw)
--> 302         seg = mlines.Line2D(x, y, **kw)
    303         return seg
    304 

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/matplotlib/lines.py in __init__(self, xdata, ydata, linewidth, linestyle, color, marker, markersize, markeredgewidth, markeredgecolor, markerfacecolor, markerfacecoloralt, fillstyle, antialiased, dash_capstyle, solid_capstyle, dash_joinstyle, solid_joinstyle, pickradius, drawstyle, markevery, **kwargs)
    429         # update kwargs before updating data to give the caller a
    430         # chance to init axes (and hence unit support)
--> 431         self.update(kwargs)
    432         self.pickradius = pickradius
    433         self.ind_offset = 0

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/matplotlib/artist.py in update(self, props)
    883         try:
    884             ret = [_update_property(self, k, v)
--> 885                    for k, v in props.items()]
    886         finally:
    887             self.eventson = store

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/matplotlib/artist.py in <listcomp>(.0)
    883         try:
    884             ret = [_update_property(self, k, v)
--> 885                    for k, v in props.items()]
    886         finally:
    887             self.eventson = store

~/utz/notebooks_dateros/venv/lib/python3.6/site-packages/matplotlib/artist.py in _update_property(self, k, v)
    876                 func = getattr(self, 'set_' + k, None)
    877                 if func is None or not six.callable(func):
--> 878                     raise AttributeError('Unknown property %s' % k)
    879                 return func(v)
    880 

AttributeError: Unknown property type
# verde_obscuro = seaborn.palplot(seaborn.cubehelix_palette(8, start=2, rot=0, dark=0, light=.95, reverse=True))
# %matplotlib inline
fig, axes = joypy.joyplot(tiempos_espera, 
                          by="Periodo", 
                          column="TiempoEspera", 
                          fade=True,
                          #kind="normalized_counts",
                          hist=True, 
                          bins=250,
                          grid=True,
                          range_style="own", 
                          x_range=[-1255,100], 
                          figsize=(4,8),
                          colormap=seaborn.cubehelix_palette(8, start=2, rot=0, dark=0, light=.95, reverse=True, as_cmap=True))
Algunos de los usos mas avanzados de esto te permiten hacer análisis de datos estructurados, como justamente un sistema informatico ya existente usualmente se compone de muchas tablas y relaciones, además de vinculos y estructuras entre ellas. Veamos un ejemplo con otra base de datos. Usaremos una llamada Chinook, una base de datos de ejemplo que contiene datos de una tienda de discos, es un ejemplo un poco «empresarial» pero puede servirnos. Podemos ver el esquema de la base de datos aqui: db chinook
chinook_connection = sqlite3.connect("Chinook_Sqlite.sqlite")
chinook_dataframe = pd.read_sql("""Select *
FROM Track
LEFT OUTER JOIN MediaType ON MediaType.MediaTypeId = Track.MediaTypeId
LEFT OUTER JOIN Genre ON Genre.GenreId =Track.GenreId
LEFT OUTER JOIN Album ON Album.AlbumId = Track.AlbumId
LEFT OUTER JOIN Artist ON Artist.ArtistId = Album.ArtistId""", chinook_connection)
chinook_dataframe
TrackId Name AlbumId MediaTypeId GenreId Composer Milliseconds Bytes UnitPrice MediaTypeId Name GenreId Name AlbumId Title ArtistId ArtistId Name
0 1 For Those About To Rock (We Salute You) 1 1 1 Angus Young, Malcolm Young, Brian Johnson 343719 11170334 0.99 1 MPEG audio file 1 Rock 1 For Those About To Rock We Salute You 1 1 AC/DC
1 2 Balls to the Wall 2 2 1 None 342562 5510424 0.99 2 Protected AAC audio file 1 Rock 2 Balls to the Wall 2 2 Accept
2 3 Fast As a Shark 3 2 1 F. Baltes, S. Kaufman, U. Dirkscneider & W. Ho… 230619 3990994 0.99 2 Protected AAC audio file 1 Rock 3 Restless and Wild 2 2 Accept
3 4 Restless and Wild 3 2 1 F. Baltes, R.A. Smith-Diesel, S. Kaufman, U. D… 252051 4331779 0.99 2 Protected AAC audio file 1 Rock 3 Restless and Wild 2 2 Accept
4 5 Princess of the Dawn 3 2 1 Deaffy & R.A. Smith-Diesel 375418 6290521 0.99 2 Protected AAC audio file 1 Rock 3 Restless and Wild 2 2 Accept
5 6 Put The Finger On You 1 1 1 Angus Young, Malcolm Young, Brian Johnson 205662 6713451 0.99 1 MPEG audio file 1 Rock 1 For Those About To Rock We Salute You 1 1 AC/DC
6 7 Let’s Get It Up 1 1 1 Angus Young, Malcolm Young, Brian Johnson 233926 7636561 0.99 1 MPEG audio file 1 Rock 1 For Those About To Rock We Salute You 1 1 AC/DC
7 8 Inject The Venom 1 1 1 Angus Young, Malcolm Young, Brian Johnson 210834 6852860 0.99 1 MPEG audio file 1 Rock 1 For Those About To Rock We Salute You 1 1 AC/DC
8 9 Snowballed 1 1 1 Angus Young, Malcolm Young, Brian Johnson 203102 6599424 0.99 1 MPEG audio file 1 Rock 1 For Those About To Rock We Salute You 1 1 AC/DC
9 10 Evil Walks 1 1 1 Angus Young, Malcolm Young, Brian Johnson 263497 8611245 0.99 1 MPEG audio file 1 Rock 1 For Those About To Rock We Salute You 1 1 AC/DC
10 11 C.O.D. 1 1 1 Angus Young, Malcolm Young, Brian Johnson 199836 6566314 0.99 1 MPEG audio file 1 Rock 1 For Those About To Rock We Salute You 1 1 AC/DC
11 12 Breaking The Rules 1 1 1 Angus Young, Malcolm Young, Brian Johnson 263288 8596840 0.99 1 MPEG audio file 1 Rock 1 For Those About To Rock We Salute You 1 1 AC/DC
12 13 Night Of The Long Knives 1 1 1 Angus Young, Malcolm Young, Brian Johnson 205688 6706347 0.99 1 MPEG audio file 1 Rock 1 For Those About To Rock We Salute You 1 1 AC/DC
13 14 Spellbound 1 1 1 Angus Young, Malcolm Young, Brian Johnson 270863 8817038 0.99 1 MPEG audio file 1 Rock 1 For Those About To Rock We Salute You 1 1 AC/DC
14 15 Go Down 4 1 1 AC/DC 331180 10847611 0.99 1 MPEG audio file 1 Rock 4 Let There Be Rock 1 1 AC/DC
15 16 Dog Eat Dog 4 1 1 AC/DC 215196 7032162 0.99 1 MPEG audio file 1 Rock 4 Let There Be Rock 1 1 AC/DC
16 17 Let There Be Rock 4 1 1 AC/DC 366654 12021261 0.99 1 MPEG audio file 1 Rock 4 Let There Be Rock 1 1 AC/DC
17 18 Bad Boy Boogie 4 1 1 AC/DC 267728 8776140 0.99 1 MPEG audio file 1 Rock 4 Let There Be Rock 1 1 AC/DC
18 19 Problem Child 4 1 1 AC/DC 325041 10617116 0.99 1 MPEG audio file 1 Rock 4 Let There Be Rock 1 1 AC/DC
19 20 Overdose 4 1 1 AC/DC 369319 12066294 0.99 1 MPEG audio file 1 Rock 4 Let There Be Rock 1 1 AC/DC
20 21 Hell Ain’t A Bad Place To Be 4 1 1 AC/DC 254380 8331286 0.99 1 MPEG audio file 1 Rock 4 Let There Be Rock 1 1 AC/DC
21 22 Whole Lotta Rosie 4 1 1 AC/DC 323761 10547154 0.99 1 MPEG audio file 1 Rock 4 Let There Be Rock 1 1 AC/DC
22 23 Walk On Water 5 1 1 Steven Tyler, Joe Perry, Jack Blades, Tommy Shaw 295680 9719579 0.99 1 MPEG audio file 1 Rock 5 Big Ones 3 3 Aerosmith
23 24 Love In An Elevator 5 1 1 Steven Tyler, Joe Perry 321828 10552051 0.99 1 MPEG audio file 1 Rock 5 Big Ones 3 3 Aerosmith
24 25 Rag Doll 5 1 1 Steven Tyler, Joe Perry, Jim Vallance, Holly K… 264698 8675345 0.99 1 MPEG audio file 1 Rock 5 Big Ones 3 3 Aerosmith
25 26 What It Takes 5 1 1 Steven Tyler, Joe Perry, Desmond Child 310622 10144730 0.99 1 MPEG audio file 1 Rock 5 Big Ones 3 3 Aerosmith
26 27 Dude (Looks Like A Lady) 5 1 1 Steven Tyler, Joe Perry, Desmond Child 264855 8679940 0.99 1 MPEG audio file 1 Rock 5 Big Ones 3 3 Aerosmith
27 28 Janie’s Got A Gun 5 1 1 Steven Tyler, Tom Hamilton 330736 10869391 0.99 1 MPEG audio file 1 Rock 5 Big Ones 3 3 Aerosmith
28 29 Cryin’ 5 1 1 Steven Tyler, Joe Perry, Taylor Rhodes 309263 10056995 0.99 1 MPEG audio file 1 Rock 5 Big Ones 3 3 Aerosmith
29 30 Amazing 5 1 1 Steven Tyler, Richie Supa 356519 11616195 0.99 1 MPEG audio file 1 Rock 5 Big Ones 3 3 Aerosmith
3473 3474 October Song 322 2 9 Matt Rowe & Stefan Skarbek 204846 3358125 0.99 2 Protected AAC audio file 9 Pop 322 Frank 252 252 Amy Winehouse
3474 3475 What Is It About Men 322 2 9 Delroy «Chris» Cooper, Donovan Jackson, Earl C… 209573 3426106 0.99 2 Protected AAC audio file 9 Pop 322 Frank 252 252 Amy Winehouse
3475 3476 Help Yourself 322 2 9 Freddy James, Jimmy hogarth & Larry Stock 300884 5029266 0.99 2 Protected AAC audio file 9 Pop 322 Frank 252 252 Amy Winehouse
3476 3477 Amy Amy Amy (Outro) 322 2 9 Astor Campbell, Delroy «Chris» Cooper, Donovan… 663426 10564704 0.99 2 Protected AAC audio file 9 Pop 322 Frank 252 252 Amy Winehouse
3477 3478 Slowness 323 2 23 None 215386 3644793 0.99 2 Protected AAC audio file 23 Alternative 323 Carried to Dust (Bonus Track Version) 253 253 Calexico
3478 3479 Prometheus Overture, Op. 43 324 4 24 Ludwig van Beethoven 339567 10887931 0.99 4 Purchased AAC audio file 24 Classical 324 Beethoven: Symphony No. 6 ‘Pastoral’ Etc. 254 254 Otto Klemperer & Philharmonia Orchestra
3479 3480 Sonata for Solo Violin: IV: Presto 325 4 24 Béla Bartók 299350 9785346 0.99 4 Purchased AAC audio file 24 Classical 325 Bartok: Violin & Viola Concertos 255 255 Yehudi Menuhin
3480 3481 A Midsummer Night’s Dream, Op.61 Incidental Mu… 326 2 24 None 387826 6497867 0.99 2 Protected AAC audio file 24 Classical 326 Mendelssohn: A Midsummer Night’s Dream 256 256 Philharmonia Orchestra & Sir Neville Marriner
3481 3482 Suite No. 3 in D, BWV 1068: III. Gavotte I & II 327 2 24 Johann Sebastian Bach 225933 3847164 0.99 2 Protected AAC audio file 24 Classical 327 Bach: Orchestral Suites Nos. 1 – 4 257 257 Academy of St. Martin in the Fields, Sir Nevil…
3482 3483 Concert pour 4 Parties de V**les, H. 545: I. P… 328 2 24 Marc-Antoine Charpentier 110266 1973559 0.99 2 Protected AAC audio file 24 Classical 328 Charpentier: Divertissements, Airs & Concerts 258 258 Les Arts Florissants & William Christie
3483 3484 Adios nonino 329 2 24 Astor Piazzolla 289388 4781384 0.99 2 Protected AAC audio file 24 Classical 329 South American Getaway 259 259 The 12 Cellists of The Berlin Philharmonic
3484 3485 Symphony No. 3 Op. 36 for Orchestra and Sopran… 330 2 24 Henryk Górecki 567494 9273123 0.99 2 Protected AAC audio file 24 Classical 330 Górecki: Symphony No. 3 260 260 Adrian Leaper & Doreen de Feis
3485 3486 Act IV, Symphony 331 2 24 Henry Purcell 364296 5987695 0.99 2 Protected AAC audio file 24 Classical 331 Purcell: The Fairy Queen 261 261 Roger Norrington, London Classical Players
3486 3487 3 Gymnopédies: No.1 – Lent Et Grave, No.3 – Le… 332 2 24 Erik Satie 385506 6458501 0.99 2 Protected AAC audio file 24 Classical 332 The Ultimate Relexation Album 262 262 Charles Dutoit & L’Orchestre Symphonique de Mo…
3487 3488 Music for the Funeral of Queen Mary: VI. «Thou… 333 2 24 Henry Purcell 142081 2365930 0.99 2 Protected AAC audio file 24 Classical 333 Purcell: Music for the Queen Mary 263 263 Equale Brass Ensemble, John Eliot Gardiner & M…
3488 3489 Symphony No. 2: III. Allegro vivace 334 2 24 Kurt Weill 376510 6129146 0.99 2 Protected AAC audio file 24 Classical 334 Weill: The Seven Deadly Sins 264 264 Kent Nagano and Orchestre de l’Opéra de Lyon
3489 3490 Partita in E Major, BWV 1006A: I. Prelude 335 2 24 Johann Sebastian Bach 285673 4744929 0.99 2 Protected AAC audio file 24 Classical 335 J.S. Bach: Chaconne, Suite in E Minor, Partita… 265 265 Julian Bream
3490 3491 Le Sacre Du Printemps: I.iv. Spring Rounds 336 2 24 Igor Stravinsky 234746 4072205 0.99 2 Protected AAC audio file 24 Classical 336 Prokofiev: Symphony No.5 & Stravinksy: Le Sacr… 248 248 Berliner Philharmoniker & Herbert Von Karajan
3491 3492 Sing Joyfully 314 2 24 William Byrd 133768 2256484 0.99 2 Protected AAC audio file 24 Classical 314 English Renaissance 247 247 The King’s Singers
3492 3493 Metopes, Op. 29: Calypso 337 2 24 Karol Szymanowski 333669 5548755 0.99 2 Protected AAC audio file 24 Classical 337 Szymanowski: Piano Works, Vol. 1 266 266 Martin Roscoe
3493 3494 Symphony No. 2, Op. 16 – «The Four Temperamen… 338 2 24 Carl Nielsen 286998 4834785 0.99 2 Protected AAC audio file 24 Classical 338 Nielsen: The Six Symphonies 267 267 Göteborgs Symfoniker & Neeme Järvi
3494 3495 24 Caprices, Op. 1, No. 24, for Solo Violin, i… 339 2 24 Niccolò Paganini 265541 4371533 0.99 2 Protected AAC audio file 24 Classical 339 Great Recordings of the Century: Paganini’s 24… 268 268 Itzhak Perlman
3495 3496 Étude 1, In C Major – Preludio (Presto) – Liszt 340 4 24 None 51780 2229617 0.99 4 Purchased AAC audio file 24 Classical 340 Liszt – 12 Études D’Execution Transcendante 269 269 Michele Campanella
3496 3497 Erlkonig, D.328 341 2 24 None 261849 4307907 0.99 2 Protected AAC audio file 24 Classical 341 Great Recordings of the Century – Shubert: Sch… 270 270 Gerald Moore
3497 3498 Concerto for Violin, Strings and Continuo in G… 342 4 24 Pietro Antonio Locatelli 493573 16454937 0.99 4 Purchased AAC audio file 24 Classical 342 Locatelli: Concertos for Violin, Strings and C… 271 271 Mela Tenenbaum, Pro Musica Prague & Richard Kapp
3498 3499 Pini Di Roma (Pinien Von Rom) \ I Pini Della V… 343 2 24 None 286741 4718950 0.99 2 Protected AAC audio file 24 Classical 343 Respighi:Pines of Rome 226 226 Eugene Ormandy
3499 3500 String Quartet No. 12 in C Minor, D. 703 «Quar… 344 2 24 Franz Schubert 139200 2283131 0.99 2 Protected AAC audio file 24 Classical 344 Schubert: The Late String Quartets & String Qu… 272 272 Emerson String Quartet
3500 3501 L’orfeo, Act 3, Sinfonia (Orchestra) 345 2 24 Claudio Monteverdi 66639 1189062 0.99 2 Protected AAC audio file 24 Classical 345 Monteverdi: L’Orfeo 273 273 C. Monteverdi, Nigel Rogers – Chiaroscuro; Lon…
3501 3502 Quintet for Horn, Violin, 2 Violas, and Cello … 346 2 24 Wolfgang Amadeus Mozart 221331 3665114 0.99 2 Protected AAC audio file 24 Classical 346 Mozart: Chamber Music 274 274 Nash Ensemble
3502 3503 Koyaanisqatsi 347 2 10 Philip Glass 206005 3305164 0.99 2 Protected AAC audio file 10 Soundtrack 347 Koyaanisqatsi (Soundtrack from the Motion Pict… 275 275 Philip Glass Ensemble
3503 rows × 18 columns
chinook_connection = sqlite3.connect("Chinook_Sqlite.sqlite")
#artista_genero = pd.read_sql("""Select Genre.Name, Artist.Name
#FROM Track
#LEFT OUTER JOIN Genre ON Genre.GenreId = Track.GenreId
#LEFT OUTER JOIN Track ON Track.AlbumId = Album.AlbumId
#LEFT OUTER JOIN Artist ON Artist.ArtistId = Album.ArtistId """, chinook_connection)
#artista_genero
chinook_dataframe.to_csv()
Fwomp! necesitamos guardar esto en un archivo.
tiempos_espera.to_excel("miarchivo.xls")
Podemos ver mas de la interoperabilidad de estas plataformas en la documentación de Pandas y SQL y en general aprender más de SQL en una variedad de recursos en linea.
Ahora probemos a extraer información.
%time centros_educativos = pd.read_excel("14102014 - MINEDUC - CENTROS EDUCATIVOS REPUBLICA DE GUATEMALA.xlsx")
CPU times: user 12.3 s, sys: 25.3 ms, total: 12.3 s
Wall time: 12.4 s
centros_educativos
CODIGO DISTRITO DEPARTAMENTO MUNICIPIO ESTABLECIMIENTO DIRECCION TELEFONO SUPERVISOR DIRECTOR NIVEL SECTOR AREA STATUS MODALIDAD JORNADA PLAN
0 16-14-1255-41 16-001 ALTA VERAPAZ CHAHAL COPB ANEXA A EORM CASERIO EL DESCONSUELO NaN WALTER GEOVANY MACZ CESAREO XOL ICAL PREPRIMARIA BILINGUE OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
1 16-14-1386-45 16-004 ALTA VERAPAZ CHAHAL NUCLEO FAMILIAR EDUCATIVO PARA EL DESARROLLO N… CASERIO SETAL NaN JUAN ANTONIO FIGUEROA CAAL SANTIAGO CHOC CHO BASICO OFICIAL RURAL ABIERTA MONOLINGUE DOBLE DIARIO(REGULAR)
2 16-14-2143-43 16-014 ALTA VERAPAZ CHAHAL EORM CASERIO XALAJA NaN GERMAN PABLO XONA NaN PRIMARIA OFICIAL RURAL CERRADA TEMPORALMENTE BILINGUE MATUTINA DIARIO(REGULAR)
3 16-14-9028-43 16-023 ALTA VERAPAZ CHAHAL EORM ALDEA SEMOX SEMAU NaN ROLANDO OLIVERIO PINTO CABRERA NaN PRIMARIA OFICIAL RURAL CERRADA TEMPORALMENTE MONOLINGUE MATUTINA DIARIO(REGULAR)
4 16-14-9030-43 16-023 ALTA VERAPAZ CHAHAL EORM CASERIO EL ESFUERZO NaN ROLANDO OLIVERIO PINTO CABRERA NaN PRIMARIA OFICIAL RURAL CERRADA TEMPORALMENTE MONOLINGUE MATUTINA DIARIO(REGULAR)
5 16-14-0053-45 16-026 ALTA VERAPAZ CHAHAL INEB DE TELESECUNDARIA ALDEA LAS CONCHAS NaN ROBERTO CHUN TIUL ABELARDO CHOC COC BASICO OFICIAL RURAL ABIERTA MONOLINGUE VESPERTINA DIARIO(REGULAR)
6 16-14-0001-45 16-027 ALTA VERAPAZ CHAHAL INSTITUTO NACIONAL DE EDUCACION BASICA DE TELE… CASERIO SAN JOSE 40483348 EDGAR MANFREDO SANDOVAL ALBERTO YAT MEZ BASICO OFICIAL RURAL ABIERTA MONOLINGUE VESPERTINA DIARIO(REGULAR)
7 16-14-0002-42 16-027 ALTA VERAPAZ CHAHAL EODP COMUNIDAD SEPAC COMUNIDAD SEPAC NaN EDGAR MANFREDO SANDOVAL GUILLERMO CAC AYÚ PARVULOS OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
8 16-14-0003-42 16-027 ALTA VERAPAZ CHAHAL EODP CASERIO SETUTZ CASERIO SETUTZ NaN EDGAR MANFREDO SANDOVAL ENRIQUE ROLANDO COC POP PARVULOS OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
9 16-14-0004-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SANTO DOMINGO COMUNIDAD SANTO DOMINGO NaN EDGAR MANFREDO SANDOVAL MANUÉL ENRIQUE CANTI CHOC PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
10 16-14-0005-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SEPUR SEBAC COMUNIDAD SEPUR SEBAC NaN EDGAR MANFREDO SANDOVAL ELENA ISABEL BO TEC PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
11 16-14-0006-43 16-027 ALTA VERAPAZ CHAHAL EORM CASERÍO EL GUAYABO CASERIO EL GUAYABO NaN EDGAR MANFREDO SANDOVAL MEDARDO CHÉ CHOCOJ PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
12 16-14-0007-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SAN MARCOS RUBEL INUP CASERIO SAN MARCOS RUBEL-INUP NaN EDGAR MANFREDO SANDOVAL AVELINO ASIG TZALAM PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
13 16-14-0008-43 16-027 ALTA VERAPAZ CHAHAL EORM CASERÍO SEJALAUTE CASERIO SEJALAUTE NaN EDGAR MANFREDO SANDOVAL AVELARDO MIZ CHOC PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
14 16-14-0009-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD DE VALLE VERDE COMUNIDAD DE VALLE VERDE NaN EDGAR MANFREDO SANDOVAL JENRRI GREGORIO MOLINA LÓPEZ PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
15 16-14-0011-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SAN JACINTO CHINAYÚ CASERIO SAN JACINTO CHINAYU NaN EDGAR MANFREDO SANDOVAL MARIO ANTONIO CHOCOJ CACAO PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
16 16-14-0012-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SANTA MARÍA CHICOC COMUNIDAD SANTA MARIA CHICOC NaN EDGAR MANFREDO SANDOVAL NORMA LETICIA MOLINA PRADO PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
17 16-14-0013-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD GUADALUPE RUBEL INUP COMUNIDAD GUADALUPE RUBEL INUP NaN EDGAR MANFREDO SANDOVAL BAUDILIO RANDOLFO ASH POP PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
18 16-14-0014-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SEPAC COMUNIDAD SEPAC NaN EDGAR MANFREDO SANDOVAL GUILLERMO CAC AYÚ PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
19 16-14-0015-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SAN LUCAS SECANTÉ COMUNIDAD SAN LUCAS SECANTE NaN EDGAR MANFREDO SANDOVAL ALIDA IRENE CANTORAL PRADO PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
20 16-14-0016-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SANTA MARÍA SELAMUNX COMUNIDAD SANTA MARIA SELAMUNX NaN EDGAR MANFREDO SANDOVAL JULIO CANTI CAC PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
21 16-14-0017-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SANTIAGO SOSELHA COMUNIDAD SANTIAGO SOSELHA NaN EDGAR MANFREDO SANDOVAL EDUARDO IXIM CHOC PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
22 16-14-0018-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SAN MARCOS CHINAYÚ COMUNIDAD SAN MARCOS CHINAYU NaN EDGAR MANFREDO SANDOVAL JOSE SANTOS COY TZALAM PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
23 16-14-0019-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SAILA COMUNIDAD SAILA NaN EDGAR MANFREDO SANDOVAL MANUEL CHÉN BOL PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
24 16-14-0020-43 16-027 ALTA VERAPAZ CHAHAL EORM CASERIO SETAL CASERIO SETAL NaN EDGAR MANFREDO SANDOVAL JUAN MACZ COY PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
25 16-14-0021-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SAN JUAN EL PARAISO COMUNIDAD SAN JUAN EL PARAISO NaN EDGAR MANFREDO SANDOVAL SEBASTIAN POP BOTZOC PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
26 16-14-0022-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD CANTUTU COMUNIDAD CANTUTU NaN EDGAR MANFREDO SANDOVAL RUBÉN ADAN LÓPEZ IXIM PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
27 16-14-0023-43 16-027 ALTA VERAPAZ CHAHAL EORM CASERÍO GASPAR CHINAYÚ CASERIO GASPAR CHINAYU NaN EDGAR MANFREDO SANDOVAL EDUARDO BUTZ CATÚN PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
28 16-14-0024-43 16-027 ALTA VERAPAZ CHAHAL EORM CASERIO SETUTZ CASERIO SETUTZ NaN EDGAR MANFREDO SANDOVAL ENRIQUE ROLANDO COC POP PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
29 16-14-0025-43 16-027 ALTA VERAPAZ CHAHAL EORM COMUNIDAD SAGRADO CHABILCHOCH I COMUNIDAD SAGRADO CAHABILCHOC I NaN EDGAR MANFREDO SANDOVAL SANTIAGO PAQUIUL CHOC PRIMARIA OFICIAL RURAL ABIERTA BILINGUE MATUTINA DIARIO(REGULAR)
54350 19-01-1206-45 19-019 ZACAPA ZACAPA INSTITUTO DE TURISMO Y AVIACION DE ORIENTE 8A. CALLE 9-06 ZONA 2 BARRIO LA REFORMA NaN HUGO WILFREDO VARGAS CHACON NaN BASICO PRIVADO URBANA CERRADA TEMPORALMENTE MONOLINGUE DOBLE FIN DE SEMANA
54351 19-01-1207-46 19-019 ZACAPA ZACAPA INSTITUTO DE TURISMO Y AVIACION DE ORIENTE 8A. CALLE 9-06 ZONA 2 BARRIO LA REFORMA NaN HUGO WILFREDO VARGAS CHACON NaN DIVERSIFICADO PRIVADO URBANA CERRADA TEMPORALMENTE MONOLINGUE DOBLE FIN DE SEMANA
54352 19-01-1208-46 19-019 ZACAPA ZACAPA INSTITUTO DE TURISMO Y AVIACION DE ORIENTE 8A. CALLE 9-06 ZONA 2 BARRIO LA REFORMA NaN HUGO WILFREDO VARGAS CHACON NaN DIVERSIFICADO PRIVADO URBANA CERRADA TEMPORALMENTE MONOLINGUE VESPERTINA DIARIO(REGULAR)
54353 19-01-0418-44 25-000 ZACAPA ZACAPA INSTITUTO GUATEMALTECO DE EDUCACION RADIOFONIC… CASA PARROQUIAL NaN SONIA HAYDEE REYES MONTERROSO NaN PRIMARIA DE ADULTOS PRIVADO URBANA ABIERTA MONOLINGUE MATUTINA A DISTANCIA
54354 19-01-0894-46 25-000 ZACAPA ZACAPA INSTITUTO GUATEMALTECO DE EDUCACION RADIOFONIC… NaN NaN SONIA HAYDEE REYES MONTERROSO NaN DIVERSIFICADO PRIVADO URBANA ABIERTA MONOLINGUE MATUTINA A DISTANCIA
54355 19-01-1107-42 25-001 ZACAPA ZACAPA CENTRO DE ATENCION INFANTIL COLONIA EL MITCH ALDEA LA FRAGUA NaN BRENDA DEL ROSARIO PERMILLA LOPEZ NaN PARVULOS OFICIAL URBANA CERRADA TEMPORALMENTE MONOLINGUE DOBLE DIARIO(REGULAR)
54356 19-01-0094-42 26-018 ZACAPA ZACAPA EODP ALDEA PLAN DEL MORRO ALDEA PLAN DEL MORRO NaN ADICOGUA VIVIANA MARISELA ALFARO ROSSELL DE CABRERA PARVULOS OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54357 19-01-0095-42 26-018 ZACAPA ZACAPA EODP ALDEA BARRIO NUEVO ALDEA BARRIO NUEVO NaN ADICOGUA NaN PARVULOS OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54358 19-01-0097-42 26-018 ZACAPA ZACAPA EODP ALDEA SINANECA ALDEA SINANECA NaN ADICOGUA MARINA ELIZABETH VENTURA CHACÓN PARVULOS OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54359 19-01-0098-42 26-018 ZACAPA ZACAPA EODP CASERÍO EL CANAL CASERIO EL CANAL NaN ADICOGUA ASTRID MAYBELI TOBAR RUÍZ PARVULOS OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54360 19-01-0099-42 26-018 ZACAPA ZACAPA EODP CASERÍO LA CHISPÍA CASERIO LA CHISPIA NaN ADICOGUA NURY AMADILIA FRANCO GÓMEZ PARVULOS OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54361 19-01-0100-42 26-018 ZACAPA ZACAPA EODP CASERÍO CERRO MIRAMUNDO CASERIO CERRO MIRAMUNDO NaN ADICOGUA VERONICA ISABEL TEJEDA CHACÓN PARVULOS OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54362 19-01-0101-42 26-018 ZACAPA ZACAPA EODP CASERIO LA PLANCHA, ALDEA LA FRAGUA NaN ADICOGUA BERLY TRINIDAD GUEVARA RUÍZ PARVULOS OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54363 19-01-0102-42 26-018 ZACAPA ZACAPA EODP ALDEA LOS JOCOTES ALDEA LOS JOCOTES NaN ADICOGUA LOURDES GABRIELA MEJÍA GÓMEZ PARVULOS OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54364 19-01-0104-43 26-018 ZACAPA ZACAPA EORM ALDEA PLAN DEL MORRO ALDEA PLAN DEL MORRO NaN ADICOGUA HENRY MISAEL PÉREZ GARCÍA PRIMARIA OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54365 19-01-0105-43 26-018 ZACAPA ZACAPA EORM ALDEA CIMARRÓN ALDEA CIMARRON NaN ADICOGUA MANUEL DE JESÚS GONZÁLEZ Y GONZÁLEZ PRIMARIA OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54366 19-01-0107-43 26-018 ZACAPA ZACAPA EORM ALDEA SINANECA ALDEA SINANECA NaN ADICOGUA JACKELINE JULISSA RAMIREZ MEJÍA PRIMARIA OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54367 19-01-0108-43 26-018 ZACAPA ZACAPA EORM CASERÍO LA CHISPÍA CASERIO LA CHISPIA NaN ADICOGUA INGRID MAYLÍ RUÍZ PEÑA PRIMARIA OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54368 19-01-0109-43 26-018 ZACAPA ZACAPA EORM CASERÍO EL CANAL CASERIO EL CANAL NaN ADICOGUA DELMY MAYBELI VILLELA OSORIO PRIMARIA OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54369 19-01-0111-43 26-018 ZACAPA ZACAPA EORM ALDEA LOS JOCOTES ALDEA LOS JOCOTES NaN ADICOGUA EVA EVANGELINA LÓPEZ VÁSQUEZ PRIMARIA OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54370 19-01-0112-43 26-018 ZACAPA ZACAPA EORM CASERÍO CERRO MIRAMUNDO CASERIO CERRO MIRAMUNDO NaN ADICOGUA AURA EDIDBETH ZECEÑA URRUTIA PRIMARIA OFICIAL RURAL ABIERTA MONOLINGUE MATUTINA DIARIO(REGULAR)
54371 19-01-1017-42 27-017 ZACAPA ZACAPA EODP COLONIA JUAN PABLO II 941-5519 719-0762 ELDA LUCRECIA LANDAVERDE LEON EVELYN RAQUEL PAIZ PARVULOS OFICIAL URBANA ABIERTA MONOLINGUE DOBLE DIARIO(REGULAR)
54372 19-01-0082-46 99-001 ZACAPA ZACAPA INSTITUTO PRIVADO MIXTO DE EDUCACION DIVERSIFI… BARRIO LAS FLORES NaN SILVIA EUGENIA VALDEZ MONTERROSO DE CARBALLO NaN DIVERSIFICADO PRIVADO URBANA TEMPORAL TITULOS MONOLINGUE NOCTURNA DIARIO(REGULAR)
54373 19-01-0036-43 NaN ZACAPA ZACAPA EORM ALDEA SINANECA NaN NaN NaN PRIMARIA OFICIAL RURAL CERRADA TEMPORALMENTE MONOLINGUE MATUTINA DIARIO(REGULAR)
54374 19-01-0083-46 NaN ZACAPA ZACAPA INSTITUTO PRIVADO MIXTO DE EDUCACION DIVERSIFI… BARRIO LAS FLORES NaN NaN NaN DIVERSIFICADO PRIVADO URBANA CERRADA TEMPORALMENTE MONOLINGUE VESPERTINA DIARIO(REGULAR)
54375 19-01-0632-42 NaN ZACAPA ZACAPA COLEGIO CRISTIANO MIXTO ‘BETHEL’ 8A. CALLE 02-02 ZONA 2, BARRIO LA ESTACION NaN NaN NaN PARVULOS PRIVADO URBANA CERRADA TEMPORALMENTE MONOLINGUE MATUTINA DIARIO(REGULAR)
54376 19-01-0633-43 NaN ZACAPA ZACAPA COLEGIO CRISTIANO MIXTO ‘BETHEL’ 8A. CALLE 02-02 ZONA 2, BARRIO LA ESTACION 79412091 NaN NaN PRIMARIA PRIVADO URBANA CERRADA TEMPORALMENTE MONOLINGUE MATUTINA DIARIO(REGULAR)
54377 19-01-0700-45 NaN ZACAPA ZACAPA LICEO ZACAPA 4A. CALLE 16-30 ZONA 1 79410233 NaN NaN BASICO PRIVADO URBANA CERRADA TEMPORALMENTE MONOLINGUE MATUTINA DIARIO(REGULAR)
54378 19-01-0814-45 NaN ZACAPA ZACAPA INEB DE TELESECUNDARIA ALDEA MANZANOTES NaN NaN NaN BASICO OFICIAL RURAL CERRADA TEMPORALMENTE MONOLINGUE VESPERTINA DIARIO(REGULAR)
54379 19-01-0815-45 NaN ZACAPA ZACAPA INEB DE TELESECUNDARIA ALDEA LA MAJADA NaN NaN NaN BASICO OFICIAL RURAL CERRADA TEMPORALMENTE MONOLINGUE VESPERTINA SABATINO
54380 rows × 16 columns
# print(centros_educativos["AREA"].value_counts())
centros_educativos = centros_educativos[centros_educativos.AREA != "SIN ESPECIFICAR"]
print(centros_educativos["AREA"].value_counts())
RURAL     36747
URBANA    17632
Name: AREA, dtype: int64
for col in ["DISTRITO", "DEPARTAMENTO", "MUNICIPIO", "NIVEL","SECTOR","AREA","STATUS","MODALIDAD","JORNADA","PLAN"]:
            centros_educativos[col] = centros_educativos[col].astype('category')
#centros_educativos.groupby(["JORNADA","PLAN","AREA"],).count()
centros_educativos.groupby(["JORNADA","PLAN","AREA"]).count()["CODIGO"]
JORNADA     PLAN             AREA  
DOBLE       A DISTANCIA      RURAL        1.0
                             URBANA      45.0
            DIARIO(REGULAR)  RURAL      703.0
                             URBANA     563.0
            DOMINICAL        RURAL       23.0
                             URBANA      31.0
            FIN DE SEMANA    RURAL      325.0
                             URBANA    2242.0
            IRREGULAR        RURAL        1.0
                             URBANA       6.0
            MIXTO            RURAL        NaN
                             URBANA       NaN
            SABATINO         RURAL        6.0
                             URBANA      85.0
INTERMEDIA  A DISTANCIA      RURAL        NaN
                             URBANA       3.0
            DIARIO(REGULAR)  RURAL       21.0
                             URBANA     108.0
            DOMINICAL        RURAL        1.0
                             URBANA       NaN
            FIN DE SEMANA    RURAL        1.0
                             URBANA      13.0
            IRREGULAR        RURAL        NaN
                             URBANA       NaN
            MIXTO            RURAL        NaN
                             URBANA       NaN
            SABATINO         RURAL        NaN
                             URBANA       1.0
MATUTINA    A DISTANCIA      RURAL        1.0
                             URBANA     263.0
                                        ...  
            SABATINO         RURAL        1.0
                             URBANA      51.0
NOCTURNA    A DISTANCIA      RURAL        NaN
                             URBANA       8.0
            DIARIO(REGULAR)  RURAL       88.0
                             URBANA     709.0
            DOMINICAL        RURAL        NaN
                             URBANA       1.0
            FIN DE SEMANA    RURAL        NaN
                             URBANA       3.0
            IRREGULAR        RURAL        NaN
                             URBANA       NaN
            MIXTO            RURAL        NaN
                             URBANA       NaN
            SABATINO         RURAL        NaN
                             URBANA       NaN
VESPERTINA  A DISTANCIA      RURAL        1.0
                             URBANA      26.0
            DIARIO(REGULAR)  RURAL     4884.0
                             URBANA    3887.0
            DOMINICAL        RURAL        NaN
                             URBANA       5.0
            FIN DE SEMANA    RURAL       17.0
                             URBANA      74.0
            IRREGULAR        RURAL        NaN
                             URBANA       NaN
            MIXTO            RURAL        NaN
                             URBANA       1.0
            SABATINO         RURAL        4.0
                             URBANA      34.0
Name: CODIGO, Length: 70, dtype: float64
seaborn.factorplot(
    y="PLAN", 
    col="AREA", 
    hue="JORNADA", 
    row="NIVEL", 
    data=centros_educativos, 
    kind="count", size=4);

#seaborn.tsplot(centros_educativos.groupby(["JORNADA","PLAN","AREA"]).count()["CODIGO"])
# escuelas_heatmap_pivot = centros_educativos.pivot("PLAN", "AREA", "JORNADA")
escuelas_heatmap = centros_educativos.pivot("PLAN", "AREA", "JORNADA")

# Draw a heatmap with the numeric values in each cell
f, ax = plt.subplots(figsize=(9, 6))
sns.heatmap(escuelas_heatmap, annot=True, fmt="d", linewidths=.5, ax=ax,
y="PLAN", col="AREA", hue="JORNADA", row="NIVEL", data=centros_educativos)

Flattr this!

]]>
http://es.schoolofdata.org/2017/08/31/limpieza-y-visualizaciones-python-iii/feed/ 0 2256
Introducción a Pandas y Jupyter Notebook de Python http://es.schoolofdata.org/2017/06/28/introduccion-a-pandas-y-jupyter-notebook-de-python/ http://es.schoolofdata.org/2017/06/28/introduccion-a-pandas-y-jupyter-notebook-de-python/#respond Wed, 28 Jun 2017 22:52:19 +0000 http://es.schoolofdata.org/?p=2129

Ese tutorial y documentación detallados en Jupyter Notebook fueron escritos por Sebastián Oliva, fellow 2017 de Escuela de Datos por Guatemala. En el webinar lanzado el 28 de junio puedes seguir paso a paso este ejercicio de limpieza y análisis de datos.

Introducción

Este es el primero de varios tutoriales introductorios al procesamiento y limpieza de datos. En este estaremos usando como ambiente de trabajo a Jupyter, que permite crear documentos con código y prosa, además de almacenar resultados de las operaciones ejecutadas (cálculos, graficas, etc). Jupyter permite interactuar con varios lenguajes de programación, en este, usaremos Python, un lenguaje de programación bastante simple y poderoso, con acceso a una gran variedad de librerias para procesamiento de datos. Entre estas, está Pandas, una biblioteca que nos da acceso a estructuras de datos muy poderosas para manipular datos.

¡Comenzemos entonces!

Instalación

Para poder ejecutar este Notebook, necesitas tener instalado Python 3, el cual corre en todos los sistemas operativos actuales, sin embargo, para instalar las dependencias: Pandas y Jupyter.

Modo Sencillo

Recomiendo utilizar la distribución Anaconda https://www.continuum.io/downloads en su versión para Python 3, esta incluye instalado Jupyter, Pandas, Numpy y Scipy, y mucho otro software útil. Sigue las instrucciones en la documentación de Anaconda para configurar un ambiente de desarollo con Jupyter.
https://docs.continuum.io/anaconda/navigator/getting-started.html

Una vez instalado, prueba a seguir los paso de https://www.tutorialpython.com/modulos-python/ o tu tutorial de Python Favorito.

«It’s a Unix System, I know This!» – Modo Avanzado

Te recomiendo utilizar Python 3.6 o superior, instalar la version mas reciente posible de virtualenv y pip. Usa Git para obtener el codigo, crea un nuevo entorno de desarollo y ahi instala las dependencias necesarias.

~/$ cd notebooks
~/notebooks/$ git clone https://github.com/tian2992/notebooks_dateros.git
~/notebooks/$ cd notebooks_dateros/
~/notebooks/notebooks_dateros/$ 
~/notebooks/notebooks_dateros/$ virtualenv venv/
~/notebooks/notebooks_dateros/$ source venv/bin/activate
~/notebooks/notebooks_dateros/$ pip install -r requirements.txt
~/notebooks/notebooks_dateros/$ cd 01-Intro
~/notebooks/notebooks_dateros/$ 7z e municipal_guatemala_2008-2011.7z
~/notebooks/notebooks_dateros/$ jupyter-notebook

Primeros pasos

In [5]:
## En Jupyter Notebooks existen varios tipos de celdas, las celdas de código, como esta:
print(1+1)
print(5+4)
6+4
2
9
Out[5]:
10

Y las celdas de texto, que se escriben en Markdown y son hechas para humanos. Pueden incluir negritas, itálicas Entre otros tipos de estilos. Tambien pueden incluirse imagenes o incluso interactivos.

In [6]:
%pylab inline
import seaborn as sns
import pandas as pd
pd.set_option('precision', 5)
Populating the interactive namespace from numpy and matplotlib

Con estos comandos, cargamos a nuestro entorno de trabajo las librerias necesarias.

Usemos la funcion de pandas read_csv para cargar los datos. Esto crea un DataFrame, una unidad de datos en Pandas, que nos da mucha funcionalidad y tiene bastantes propiedades convenientes para el análisis. Probablemente esta operación tome un tiempo asi que sigamos avanzando, cuando esté lista, verás que el numero de la celda habrá sido actualizado.

In [7]:
muni_data = pd.read_csv("GUATEMALA MUNICIPAL 2008-2011.csv", 
                        sep=";")
/home/tian/OPENDATA/MUNICIPALIDADES/venv/lib/python3.6/site-packages/IPython/core/interactiveshell.py:2698: DtypeWarning: Columns (19) have mixed types. Specify dtype option on import or set low_memory=False.
  interactivity=interactivity, compiler=compiler, result=result)
In [11]:
muni_data.head()
Out[11]:
ANNO ADMINISTRACIÓN MUNICIPIO DEPTO MUN FUNC1 FUNC2 FUNC3 ECON1 ECON2 ORIGEN2 ORIGEN3 PROGRAMA1 PROGRAMA2 PROYECTO1 PROYECTO2 APROBADO RETRASADO EJECUTADO PAGADO
0 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.137,400.00 Q.137,400.00 Q.137,400.00
1 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-
2 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 22 Ingresos Ordinarios De Aporte Constitucional No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-
3 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.240,000.00 Q.49,588.00 Q.49,588.00 Q.49,588.00
4 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 42 Préstamos Internos No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-

5 rows × 21 columns

DataFrames y más

Aqui podemos ver el dataframe que creamos.
En Pandas, los DataFrames son unidades básicas, junto con las Series.

Veamos una serie muy sencilla antes de pasar a evaluar muni_data, el DataFrame que acabamos de crear. Crearemos una serie de numeros aleatorios, y usaremos funciones estadisticas para analizarlo.

In [10]:
serie_prueba_s = pd.Series(np.random.randn(5), name='prueba')

print(serie_prueba_s)

print(serie_prueba_s.describe())

serie_prueba_s.plot()
0   -0.50246
1    0.90772
2    1.37897
3    2.56289
4    0.07101
Name: prueba, dtype: float64
count    5.00000
mean     0.88363
std      1.18822
min     -0.50246
25%      0.07101
50%      0.90772
75%      1.37897
max      2.56289
Name: prueba, dtype: float64
Out[10]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f0764326780>

Con esto podemos ver ya unas propiedades muy interesantes. Las series están basadas en el concepto estadistico, pero incluyen un título (del eje), un índice (el cual identifica a los elementos) y el dato en sí, que puede ser numerico (float), string unicode (texto) u otro tipo de dato.

Las series estan basadas tambien en conceptos de vectores, asi que se pueden realizar operaciones vectoriales en las cuales implicitamente se alinean los indíces, esto es muy util por ejemplo para restar dos columnas, sin importar el tamaño de ambas, automaticamente Pandas unirá inteligentemente ambas series. Puedes tambien obtener elementos de las series por su valor de índice, o por un rango, usando la notación usual en Python. Como nota final, las Series comparten mucho del comportamiento de los NumPy Arrays, haciendolos instantaneamente compatibles con muchas librerias y recursos. https://pandas.pydata.org/pandas-docs/stable/dsintro.html#series

In [13]:
serie_prueba_d = pd.Series(np.random.randn(5), name='prueba 2')

print(serie_prueba_d)

print(serie_prueba_d[0:3]) # Solo los elementos del 0 al 3

# Esto funciona porque ambas series tienen indices en común.
# Si sumamos dos con tamaños distintos, los espacios vacios son marcados como NaN
serie_prueba_y = serie_prueba_d + (serie_prueba_s * 2)
print(serie_prueba_y)
print("La suma de la serie y es: {suma}".format(suma=serie_prueba_y.sum()))
0   -0.88087
1    0.78036
2    1.91407
3   -0.28563
4    0.13854
Name: prueba 2, dtype: float64
0   -0.88087
1    0.78036
2    1.91407
Name: prueba 2, dtype: float64
0   -1.88578
1    2.59579
2    4.67201
3    4.84014
4    0.28056
dtype: float64
La suma de la serie y es: 10.502719345870334

Pasemos ahora a DataFrames, como nuestro muni_data DataFrame. Los DataFrames son estructuras bi-dimensionales de datos. Son muy usadas porque proveen una abstracción similar a una hoja de calculo o a una tabla de SQL. Los DataFrame tienen índices (etiquetas de fila) y columnas, ambos ejes deben encajar, y el resto será llenado de datos no validos.

Por ejemplo podemos unir ambas series y crear un DataFrame nuevo, usando un diccionario de Python, por ejemplo. Tambien podemos graficar los resultados.

In [14]:
prueba_dict = {
                        "col1": serie_prueba_s,
                        "col2": serie_prueba_d,
                        "col3": [1, 2, 3, 4, 0]
             }
prueba_data_frame = pd.DataFrame(prueba_dict)
print(prueba_data_frame)
# La operacion .sum() ahora retorna un DataFrame, pero Pandas sabe no combinar peras con manzanas.
print("La suma de cada columna es: \n{suma}".format(suma=prueba_data_frame.sum())) 
prueba_data_frame.plot()
      col1     col2  col3
0 -0.50246 -0.88087     1
1  0.90772  0.78036     2
2  1.37897  1.91407     3
3  2.56289 -0.28563     4
4  0.07101  0.13854     0
La suma de cada columna es: 
col1     4.41813
col2     1.66646
col3    10.00000
dtype: float64
Out[14]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f076e7ec518>

Veamos ahora ya, nuestro DataFrame creado con los datos, muni_data.

In [61]:
#muni_data
Out[61]:
ANNO ADMINISTRACIÓN MUNICIPIO DEPTO MUN FUNC1 FUNC2 FUNC3 ECON1 ECON2 ORIGEN2 ORIGEN3 PROGRAMA1 PROGRAMA2 PROYECTO1 PROYECTO2 APROBADO RETRASADO EJECUTADO PAGADO
0 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.137,400.00 Q.137,400.00 Q.137,400.00
1 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-
2 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 22 Ingresos Ordinarios De Aporte Constitucional No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-
3 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.240,000.00 Q.49,588.00 Q.49,588.00 Q.49,588.00
4 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 42 Préstamos Internos No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-
5 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 42 Préstamos Internos No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.16,000.00 Q.16,000.00 Q.16,000.00
6 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 015 – Complementos Específicos Al Personal Per… 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.1,750.00 Q.1,500.00 Q.1,500.00
7 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 015 – Complementos Específicos Al Personal Per… 22 Ingresos Ordinarios De Aporte Constitucional No Aplica No Aplica No Aplica No Aplica No Aplica Q.26,000.00 Q.2,750.00 Q.2,750.00 Q.2,750.00
8 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 015 – Complementos Específicos Al Personal Per… 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.250.00 Q.250.00 Q.250.00
9 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 015 – Complementos Específicos Al Personal Per… 42 Préstamos Internos No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-
10 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 015 – Complementos Específicos Al Personal Per… 42 Préstamos Internos No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.250.00 Q.250.00 Q.250.00
11 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 029 – Otras Remuneraciones De Personal Temporal 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.44,740.00 Q.44,740.00 Q.44,740.00
12 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 029 – Otras Remuneraciones De Personal Temporal 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.58,250.00 Q.58,250.00 Q.58,250.00
13 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 029 – Otras Remuneraciones De Personal Temporal 42 Préstamos Internos No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-
14 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 029 – Otras Remuneraciones De Personal Temporal 42 Préstamos Internos No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.12,650.00 Q.12,650.00 Q.12,650.00
15 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 031 – Jornales 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-
16 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 015 – Complementos Específicos Al Personal Per… 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.15,700.00 Q.17,900.00 Q.15,900.00
17 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 015 – Complementos Específicos Al Personal Per… 22 Ingresos Ordinarios De Aporte Constitucional No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.11,750.00 Q.10,995.53 Q.10,995.53
18 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 015 – Complementos Específicos Al Personal Per… 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.21,000.00 Q.5,500.00 Q.5,500.00 Q.5,500.00
19 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 015 – Complementos Específicos Al Personal Per… 42 Préstamos Internos No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-
20 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 015 – Complementos Específicos Al Personal Per… 42 Préstamos Internos No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.2,000.00 Q.2,250.00 Q.2,250.00
21 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 196 – Servicios De Atención Y Protocolo 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.15,000.00 Q.14,908.12 Q.14,908.12
22 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 199 – Otros Servicios No Personales 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.6,000.00 Q.11,969.50 Q.11,958.50 Q.11,958.50
23 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 211 – Alimentos Para Personas 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica Q.3,000.00 Q.- Q.- Q.-
24 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 211 – Alimentos Para Personas 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.28,000.00 Q.27,992.74 Q.27,992.74
25 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 211 – Alimentos Para Personas 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.5,000.00 Q.4,994.45 Q.4,994.45
26 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 3 – SERVICIOS SOCIALES 306-AGUA Y SANEAMIENTO Sin Division 21 Gastos Corrientes 415 – Vacaciones Pagadas Por Retiro 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.1,500.00 Q.1,500.00 Q.- Q.-
27 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.24,000.00 Q.24,000.00 Q.1,000.00 Q.1,000.00
28 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 015 – Complementos Específicos Al Personal Per… 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica Q.3,713.37 Q.3,713.37 Q.125.00 Q.125.00
29 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 051 – Aporte Patronal Al Igss 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.3,000.00 Q.3,000.00 Q.- Q.-
674105 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 286 – Herramientas Menores No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 4 – MEJORAMIENTO MATERIALES DE CONSTRUCCION ME… 1 – MEJORAMIENTO MATERIALES DE CONSTRUCCION ME… Q.2,500.00 Q.649.00 NaN Q.649.00
674106 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 154 – Arrendamiento De Maquinaria Y Equipo De … No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 5 – AMPLIACION MURO PERIMETRAL CEMENTERIO MUNI… 1 – AMPLIACION MURO PERIMETRAL CEMENTERIO MUNI… Q.150,000.00 Q.- NaN Q.-
674107 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 154 – Arrendamiento De Maquinaria Y Equipo De … No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 5 – AMPLIACION MURO PERIMETRAL CEMENTERIO MUNI… 1 – AMPLIACION MURO PERIMETRAL CEMENTERIO MUNI… Q.150,000.00 Q.- NaN Q.-
674108 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 189 – Otros Estudios Y/O Servicios No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.60,000.00 Q.- NaN Q.-
674109 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 189 – Otros Estudios Y/O Servicios No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.60,000.00 Q.- NaN Q.-
674110 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 214 – Productos Agroforestales, Madera, Corcho… No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.10,000.00 Q.- NaN Q.-
674111 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 214 – Productos Agroforestales, Madera, Corcho… No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.10,000.00 Q.- NaN Q.-
674112 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 223 – Piedra, Arcilla Y Arena No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.5,000.00 Q.- NaN Q.-
674113 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 224 – Pómez, Cal Y Yeso No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.3,000.00 Q.- NaN Q.-
674114 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 267 – Tintes, Pinturas Y Colorantes No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.4,000.00 Q.- NaN Q.-
674115 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 268 – Productos Plásticos, Nylon, Vinil Y P.V.C. No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.20,000.00 Q.- NaN Q.-
674116 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 268 – Productos Plásticos, Nylon, Vinil Y P.V.C. No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.20,000.00 Q.- NaN Q.-
674117 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 272 – Productos De Vidrio No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.5,000.00 Q.- NaN Q.-
674118 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 273 – Productos De Loza Y Porcelana No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.15,000.00 Q.- NaN Q.-
674119 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 274 – Cemento No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.5,500.00 Q.- NaN Q.-
674120 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 275 – Productos De Cemento, Pómez, Asbesto Y Yeso No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.33,500.00 Q.- NaN Q.-
674121 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 275 – Productos De Cemento, Pómez, Asbesto Y Yeso No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.34,000.00 Q.- NaN Q.-
674122 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 281 – Productos Siderúrgicos No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.5,000.00 Q.- NaN Q.-
674123 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 284 – Estructuras Metálicas Acabadas No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.25,000.00 Q.- NaN Q.-
674124 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 297 – Útiles, Accesorios Y Materiales Eléctricos No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.15,000.00 Q.- NaN Q.-
674125 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 297 – Útiles, Accesorios Y Materiales Eléctricos No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.15,000.00 Q.- NaN Q.-
674126 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 329 – Otras Maquinarias Y Equipos No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.21,000.00 Q.- NaN Q.-
674127 2011 Municipal ZACAPA ZACAPA ZACAPA 07 – URBANIZACION Y SERVICIOS COMUNITARIOS 0706 – Urbanización y servicios comunitarios n… 070601-Urbanización y servicios comunitarios n… 22 Gastos de Capital 329 – Otras Maquinarias Y Equipos No Aplica No Aplica 19 – MEJORAMIENTO DE INFRAESTRUCTURA 0 – SIN SUB PROGRAMA 6 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA 1 – MEJORAMIENTO EDIFICIO(S) MUNICIPAL, ZACAPA Q.34,000.00 Q.- NaN Q.-
674128 2011 Municipal ZACAPA ZACAPA ZACAPA 12 – TRANSACCIONES DE LA DEUDA PUBLICA 1201 – Intereses y comisiones de la deuda pública 120101-Intereses y comisiones de la deuda pública 23 Aplicaciones Financieras 731 – Intereses Por Préstamos Del Sector Privado No Aplica No Aplica 99 – DEUDA MUNICICPAL 0 – SIN SUB PROGRAMA 0 – SIN PPROYECTO 1 – AMORTIZACION PRESTAMO VIVIBANCO Q.- Q.204,049.00 NaN Q.204,049.00
674129 2011 Municipal ZACAPA ZACAPA ZACAPA 12 – TRANSACCIONES DE LA DEUDA PUBLICA 1201 – Intereses y comisiones de la deuda pública 120101-Intereses y comisiones de la deuda pública 23 Aplicaciones Financieras 731 – Intereses Por Préstamos Del Sector Privado No Aplica No Aplica 99 – DEUDA MUNICICPAL 0 – SIN SUB PROGRAMA 0 – SIN PPROYECTO 1 – AMORTIZACION PRESTAMO VIVIBANCO Q.3,695,000.00 Q.3,743,544.00 NaN Q.3,717,234.12
674130 2011 Municipal ZACAPA ZACAPA ZACAPA 12 – TRANSACCIONES DE LA DEUDA PUBLICA 1201 – Intereses y comisiones de la deuda pública 120101-Intereses y comisiones de la deuda pública 23 Aplicaciones Financieras 751 – Amortización De Préstamos a Largo Plazo … No Aplica No Aplica 99 – DEUDA MUNICICPAL 0 – SIN SUB PROGRAMA 0 – SIN PPROYECTO 1 – AMORTIZACION PRESTAMO VIVIBANCO Q.812,000.00 Q.812,100.00 NaN Q.812,037.53
674131 2011 Municipal ZACAPA ZACAPA ZACAPA 12 – TRANSACCIONES DE LA DEUDA PUBLICA 1202 – Amortizaciones de deuda pública 120201-Amortizaciones de deuda pública 23 Aplicaciones Financieras 769 – Disminución De Otras Cuentas A Pagar A L… No Aplica No Aplica 99 – DEUDA MUNICICPAL 0 – SIN SUB PROGRAMA 0 – SIN PPROYECTO 2 – PAGO CONVENIO PLAN DE PRESTACIONES Q.165,000.00 Q.357,352.00 NaN Q.357,351.15
674132 2011 Municipal ZACAPA ZACAPA ZACAPA 12 – TRANSACCIONES DE LA DEUDA PUBLICA 1202 – Amortizaciones de deuda pública 120201-Amortizaciones de deuda pública 23 Aplicaciones Financieras 769 – Disminución De Otras Cuentas A Pagar A L… No Aplica No Aplica 99 – DEUDA MUNICICPAL 0 – SIN SUB PROGRAMA 0 – SIN PPROYECTO 2 – PAGO CONVENIO PLAN DE PRESTACIONES Q.- Q.114,305.00 NaN Q.114,304.65
674133 2011 Municipal ZACAPA ZACAPA ZACAPA 12 – TRANSACCIONES DE LA DEUDA PUBLICA 1202 – Amortizaciones de deuda pública 120201-Amortizaciones de deuda pública 23 Aplicaciones Financieras 769 – Disminución De Otras Cuentas A Pagar A L… No Aplica No Aplica 99 – DEUDA MUNICICPAL 0 – SIN SUB PROGRAMA 0 – SIN PPROYECTO 3 – INTRODUCCION ENERGIA ELECTRICA ALDEA GUACA… Q.15,000.00 Q.15,000.00 NaN Q.15,000.00
674134 2011 Municipal ZACAPA ZACAPA ZACAPA 12 – TRANSACCIONES DE LA DEUDA PUBLICA 1202 – Amortizaciones de deuda pública 120201-Amortizaciones de deuda pública 23 Aplicaciones Financieras 769 – Disminución De Otras Cuentas A Pagar A L… No Aplica No Aplica 99 – DEUDA MUNICICPAL 0 – SIN SUB PROGRAMA 0 – SIN PPROYECTO 4 – AMORTIZACION DEUDA DEL PROYECTO AMPLIACION… Q.- Q.18,534.00 NaN Q.18,533.57

674135 rows × 21 columns

In [15]:
# Una grafica bastante inutil, ¿porque?

muni_data.plot()
Out[15]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f076e6ab7f0>
In [16]:
# Veamos los datos, limitamos a solo los primeros 5 filas.

muni_data.head(5)
Out[16]:
ANNO ADMINISTRACIÓN MUNICIPIO DEPTO MUN FUNC1 FUNC2 FUNC3 ECON1 ECON2 ORIGEN2 ORIGEN3 PROGRAMA1 PROGRAMA2 PROYECTO1 PROYECTO2 APROBADO RETRASADO EJECUTADO PAGADO
0 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.137,400.00 Q.137,400.00 Q.137,400.00
1 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-
2 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 22 Ingresos Ordinarios De Aporte Constitucional No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-
3 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica Q.240,000.00 Q.49,588.00 Q.49,588.00 Q.49,588.00
4 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 42 Préstamos Internos No Aplica No Aplica No Aplica No Aplica No Aplica Q.- Q.- Q.- Q.-

5 rows × 21 columns

In [17]:
## La columna 'APROBADO' se ve un poco sospechosa.
## Python toma a los numeros como números, no con una Q ni un punto (si no lo tiene) ni comas innecesarias. 
## Veamos mas a detalle.

muni_data['APROBADO'].head()
Out[17]:
0            Q.-   
1            Q.-   
2            Q.-   
3     Q.240,000.00 
4            Q.-   
Name: APROBADO, dtype: object
In [110]:
# Vamos a ignorar esto por un momento, pero los números de verdad son de tipo float

Veamos cuantas columnas son, podemos explorar un poco mas asi.

In [65]:
muni_data.columns
Out[65]:
Index(['ANNO', 'ADMINISTRACIÓN', 'MUNICIPIO', 'DEPTO', 'MUN', 'FUNC1', 'FUNC2',
       'FUNC3', 'ECON1', 'ECON2', 'ORIGEN1', 'ORIGEN2', 'ORIGEN3', 'PROGRAMA1',
       'PROGRAMA2', 'PROYECTO1', 'PROYECTO2', 'APROBADO', 'RETRASADO',
       'EJECUTADO', 'PAGADO'],
      dtype='object')
In [19]:
muni_data['MUNICIPIO'].unique()[:5] # Listame 5 municipios
Out[19]:
array(['SACATEPEQUEZ', 'GUATEMALA', 'JUTIAPA', 'SAN MARCOS', 'ZACAPA'], dtype=object)
In [67]:
print("Funcion 1: \n {func1} \n Funcion 2: \n {func2} \n Funcion 3: \n{func3}".format(
        func1=muni_data["FUNC1"].unique(), 
        func2=muni_data["FUNC2"].unique(),
        func3=muni_data["FUNC3"].unique()
        )
     )
Funcion 1: 
 ['1 - ADMINISTRACION GENERAL' '3 - SERVICIOS SOCIALES'
 '2 - DEFENSA Y SEGURIDAD INTERNA' 'Sin Finalidad'
 '4 - SERVICIOS ECONOMICOS' '5 - DEUDA PUBLICA'
 '6 - OTROS NO CLASIFICABLES' '01 - SERVICIOS PUBLICOS GENERALES'
 '08 - SALUD' '07 - URBANIZACION Y SERVICIOS COMUNITARIOS'
 '05 - ASUNTOS ECONOMICOS' '06 - PROTECCION AMBIENTAL' '10 - EDUCACION'
 '12 - TRANSACCIONES DE LA DEUDA PUBLICA'
 '03 - ORDEN PUBLICO Y SEGURIDAD CIUDADANA'
 '09 - ACTIVIDADES DEPORTIVAS, RECREATIVAS, CULTURA Y RELIGION'
 '11 - PROTECCION SOCIAL' '04 - ATENCION A DESASTRES Y GESTION DE RIESGOS'
 '02 - DEFENSA'] 
 Funcion 2: 
 ['109 - OTRAS ACTIVIDADES DE ADMINISTRACION' '306-AGUA Y SANEAMIENTO'
 '309-MEDIO AMBIENTE' '303-EDUCACION' '202-SEGURIDAD INTERNA'
 '304-CULTURA Y DEPORTES' '301-SALUD Y ASISTENCIA SOCIAL' 'Sin Funcion'
 '404-TRANSPORTE' '405-INDUSTRIA  Y  COMERCIO'
 '409-OTRAS ACTIVIDADES DE SERVICIOS ECONOMICOS'
 '106-ADMINISTRACION FISCAL' '406-TURISMO'
 '310-OTRAS ACTIVIDADES DE SERVICIOS SOCIALES' '402-ENERGIA'
 '403-COMUNICACIONES' '302-TRABAJO Y PREVISION SOCIAL'
 '107-AUDITORIA Y CONTROL' '501-INTERESES, COMISIONES Y OTROS GASTOS'
 '201-DEFENSA' '601-AMORTIZACION DE DEUDA' '407-AGROPECUARIO'
 '101-LEGISLATIVA' '307-VIVIENDA' '308-DESARROLLO URBANO Y RURAL'
 '401-MINERIA E HIDROCARBUROS' '408-FINANCIERAS Y SEGUROS'
 '602-DISMINUCION DE OTROS PASIVOS' '603-OTROS GASTOS'
 '103-DIRECCION GUBERNAMENTAL' '108-SERVICIOS GENERALES'
 '104-RELACIONES INTERIORES' '102-JUDICIAL' '305-CIENCIA Y TECNOLOGIA'
 '105-RELACIONES EXTERIORES'
 '0101 - Administracion legislative, ejecutiva y asuntos exteriores'
 '0803 - Servicios hospitalarios' '0703 - Abastecimiento de agua'
 '0502 - Agricultura, produccion pecuaria, silvicultura, caza y pesca'
 '0505 - Transporte' '0602 - Ordenación de aguas residuales'
 '0702 - Desarrollo comunitario' '1002 - Educación media'
 '1001 - Educación preprimaria y primaria'
 '0805 - Investigación y desarrollo relacionados con la Salud'
 '0503 - Combustibles y energia'
 '1201 - Intereses y comisiones de la deuda pública'
 '1202 - Amortizaciones de deuda pública'
 '0102 - Administracion fiscal, monetaria y servicios de fiscalizacion'
 '0501 - Asuntos económicos y comerciales en general'
 '0104 - Servicios generales' '0107 - Servicios públicos generales n.c.d'
 '0302 - Administración de justicia'
 '0301 - Servicios de policía y seguridad ciudadana'
 '0901 - Servicios deportivos y de recreación '
 '0906 - Actividades deportivas, recreativas, cultura y religión n.c.d. (SC)'
 '0705 - Investigación y desarrollo relacionados con urbanización y servicios comunitarios'
 '0106 - Investigación y desarrollo relacionados con los servicios públicos generales'
 '0606 - Protección ambiental n.c.d' '0601 - Ordenación de desechos'
 '1104 - Familia e hijos' '0704 - Alumbrado público' '1102 - Edad avanzada'
 '0902 - Servicios culturales (SI)' '0806 - Salud n.c.d'
 '0804 - Servicios de salud pública' '0701 - Urbanizacion'
 '0507 - Otras actividades economicas y financieras'
 '0303 - Defensoría pública penal y de los derechos humanos'
 '1005 - Educación no atribuible a ningún nivel escolarizado'
 '0105 - Investigación básica'
 '0604 - Protección de la diversidad biológica y del paisaje'
 '0404 - Atención a Desastres  y Gestión de Riesgos n.c.d'
 '0401 - Servicios de prevención y control de incendios, y servicios de rescate y auxilio'
 '1007 - Investigación y desarrollo relacionados con la educación'
 '1008 - Educación n.c.d' '0603 - Reducción de la contaminación'
 '0402 - Gestión prospectiva de riesgos a desastres'
 '0706 - Urbanización y servicios comunitarios n.c.d' '1106 - Vivienda'
 '0504 - Mineria, manufacturas y construccion' '0201 - Defensa militar'
 '0802 - Servicios para paciente externos'
 '1003 - Educación postmedia básica y diversificada no universitaria o superior'
 '0903 - Servicios de radio y televisión y servicios editoriales (SC)'
 '0605 - Investigación y desarrollo relacionados con la protección ambiental'
 '1004 - Educación universitaria o superior'
 '0103 - Ayuda economica exterior' '1109 - Protección social n.c.d'
 '0506 - Comunicaciones' '0801 - Productos, utiles y equipos medicos'
 '0509 - Asuntos económicos n.c.d'
 '0307 - Orden público y seguridad ciudadana  n.c.d' '0202 - Defensa civil'
 '0904 - Servicios religiosos y otros servicios comunitarios (SC)'
 '1006 - Servicios auxiliares de la educación '
 '0905 - Investigación y desarrollo relacionados con el esparcimiento, cultura y  religión'
 '1107 - Otros riesgos de exclusión social'
 '1101 - Enfermedad, funcionamiento corporal y discapacidad'
 '0403 - Investigación y desarrollo relacionados con la  Atención a Desastres  y Gestión de Riesgos'
 '1103 - Sobrevivientes (pensionados)' '0205 - Defensa n.c.d.'
 '0508 - Investigación y desarrollo relacionados con asuntos económicos'
 '1105 - Desempleo'
 '0306 - Investigación y desarrollo relacionados con el orden público y seguridad ciudadana'
 '0304 - Administración de asuntos penitenciarios'] 
 Funcion 3: 
['Sin Division' '010102-Ejecutiva'
 '080303-Servicios médicos y de centros de maternidad'
 '070301-Abastecimiento de agua' '050204-Producción pecuaria (SC)'
 '050501-Transporte por carretera' '060201-Ordenación de aguas residuales'
 '070201-Desarrollo comunitario' '100201-Educación básica'
 '100102-Educación primaria' '100103-Alfabetización'
 '080501-Investigación y desarrollo relacionados con la Salud'
 '050306-Electricidad' '120101-Intereses y comisiones de la deuda pública'
 '120201-Amortizaciones de deuda pública' '010101-Legislativa'
 '010201-Asuntos fiscales' '050103-Asuntos laborales generales'
 '010402-Servicios generales de planificación'
 '010203-Servicios de fiscalización' '010404-Otros servicios generales'
 '010701-Servicios públicos generales n.c.d' '050202-Silvicultura'
 '050101-Asuntos económicos y comerciales en general'
 '030201-Administración de justicia'
 '030101-Servicios de policía y seguridad ciudadana'
 '100101-Educación preprimaria' '100202-Educación diversificada'
 '090101-Servicios deportivos (SI)'
 '090601-Actividades deportivas, recreativas, cultura y religión n.c.d. (SC)'
 '070501-Investigación y desarrollo relacionados con urbanización y servicios comunitarios'
 '010601-Investigación y desarrollo relacionados con los servicios públicos generales'
 '060601-Protección ambiental n.c.d' '060101-Ordenación de desechos'
 '110401-Familia e hijos' '070401-Alumbrado público' '110201-Edad avanzada'
 '090201-Servicios culturales (SI)' '050302-Petróleo y gas natural'
 '080601-Salud n.c.d' '080401-Servicios de salud pública'
 '090102-Servicios de recreación (SI)' '070101-Urbanizacion'
 '010401-Administración general del recurso humano'
 '050701-Comercio, distribución, almacenamiento y depósito'
 '030301-Defensoría pública penal'
 '100501-Educación no atribuible a ningún nivel escolarizado'
 '010501-Investigación básica'
 '050505-Transporte por oleoductos y gasoductos' '050201-Agricultura'
 '060401-Protección de la diversidad biológica y del paisaje'
 '080301-Servicios hospitalarios generales'
 '040401-Atención a Desastres  y Gestión de Riesgos n.c.d'
 '040101-Servicios de prevención y control de incendios, y servicios de rescate y auxilio'
 '100701-Investigación y desarrollo relacionados con la educación'
 '100801-Educación n.c.d' '010202-Asuntos monetarios'
 '060301-Reducción de la contaminación'
 '040201-Gestión prospectiva de riesgos a desastres'
 '070601-Urbanización y servicios comunitarios n.c.d' '110601-Vivienda'
 '050402-Manufacturas' '020101-Defensa militar'
 '010403-Servicios generales de estadística'
 '080201-Servicios médicos generales'
 '100301-Educación postmedia básica y diversificada no universitaria o superior'
 '090301-Servicios de radio y televisión y servicios editoriales (SC)'
 '060501-Investigación y desarrollo relacionados con la protección ambiental'
 '100401-Primera etapa de la educación universitaria o superior'
 '010301-Ayuda económica a los países en desarrollo y en transición'
 '050506-Otros sistemas de transporte'
 '040202-Gestión correctiva o compensatoria de desastres'
 '110901-Protección social n.c.d' '050601-Comunicaciones'
 '080101-Productos farmacéuticos' '010103-Asuntos exteriores'
 '080302- Servicios hospitalarios especializados' '050403-Construcción'
 '050102-Supervisión financiera' '050901-Asuntos económicos n.c.d'
 '030701-Orden público y seguridad ciudadana  n.c.d' '020201-Defensa civil'
 '050707-Proyectos de desarrollo polivalentes'
 '090401-Servicios religiosos y otros servicios comunitarios (SC)'
 '080202-Servicios médicos especializados' '080204-Servicios paramédicos'
 '100601-Servicios auxiliares de la educación preprimaria y primaria'
 '080103-Aparatos y equipos terapéuticos'
 '090501-Investigación y desarrollo relacionados con el esparcimiento, cultura y  religión'
 '080102-Otros productos médicos'
 '050401-Extracción de recursos minerales excepto los combustibles minerales'
 '110701-Otros riesgos de exclusión social'
 '100603-Servicios auxiliares de la educación postmedia básica y diversificada no universitaria o superior'
 '050502-Transporte por agua'
 '050301-Carbón y otros combustibles minerales sólidos' '110101-Enfermedad'
 '080203-Servicios odontológicos'
 '040301-Investigación y desarrollo relacionados con la  Atención a Desastres  y Gestión de Riesgos'
 '110901-Investigación y desarrollo relacionados con la Protección Social'
 '100402-Segunda etapa de la educación universitaria o superior'
 '050203-Caza y pesca' '050303-Combustibles nucleares'
 '050307-Energía no eléctrica' '050704-Intermediación financiera'
 '110301-Sobrevivientes (pensionados)' '050305-Otros combustibles'
 '020501-Defensa n.c.d.'
 '080304-Servicios de salud y residencias a personas de la tercera edad y residencias de convalecencia'
 '050702-Hoteles y restaurantes' '050703-Turismo'
 '050801-Investigación y desarrollo relacionados con asuntos económicos, comerciales y laborales en general'
 '030302-Defensoría de los derechos humanos' '110501-Desempleo'
 '050805-Investigación y desarrollo relacionados con el transporte'
 '050803-Investigación y desarrollo relacionados con combustibles y energía'
 '110102-Funcionamiento corporal y discapacidad' '050706-Seguros y fianzas'
 '050504-Transporte aéreo'
 '030601-Investigación y desarrollo relacionados con el orden público y seguridad ciudadana'
 '050503-Transporte por ferrocarril'
 '030401-Administración de asuntos penitenciarios'
 '100602-Servicios auxiliares de la educación media'
 '100604-Servicios auxiliares de la educación universitaria o superior'
 '010302-Ayuda económica prestada a través de organismos internacionales'
 '050802-Investigación y desarrollo relacionados con agricultura, producción pecuaria, silvicultura, caza y p']

Vamos a explorar un poco con indices y etiquetas:

In [27]:
index_geo_data = muni_data.set_index("DEPTO","MUNICIPIO").sort_index()
In [30]:
index_geo_data.loc[
                    ["GUATEMALA","ESCUINTLA","SACATEPEQUEZ"],
                    ['FUNC1','FUNC2','FUNC3','APROBADO','EJECUTADO']
                  ].head()
Out[30]:
FUNC1 FUNC2 FUNC3 APROBADO EJECUTADO
DEPTO
GUATEMALA 01 – SERVICIOS PUBLICOS GENERALES 0101 – Administracion legislative, ejecutiva y… 010102-Ejecutiva Q.34,180.00 NaN
GUATEMALA 01 – SERVICIOS PUBLICOS GENERALES 0101 – Administracion legislative, ejecutiva y… 010102-Ejecutiva Q.42,000.00 NaN
GUATEMALA 01 – SERVICIOS PUBLICOS GENERALES 0101 – Administracion legislative, ejecutiva y… 010102-Ejecutiva Q.42,000.00 NaN
GUATEMALA 01 – SERVICIOS PUBLICOS GENERALES 0101 – Administracion legislative, ejecutiva y… 010102-Ejecutiva Q.320,000.00 NaN
GUATEMALA 01 – SERVICIOS PUBLICOS GENERALES 0101 – Administracion legislative, ejecutiva y… 010102-Ejecutiva Q.1,000.00 NaN

Ahora que podemos realizar selección basica, pensamos, que podemos hacer con estos datos, y nos enfrentamos a un problema…

In [31]:
muni_data['APROBADO'][3] * 2
Out[31]:
' Q.240,000.00  Q.240,000.00 '

¡Rayos! porque no puedo manipular estos datos así como los otros, y es porque son de tipo texto y no números.

In [71]:
# muni_data['APROBADO'].sum() ## No correr, falla...

Necesitamos crear una funcion para limpiar estos tipos de dato que son texto, para poderlos convertir a numeros de tipo punto flotante (decimales).

In [33]:
## Esto es una funcion en Python, con def definimos el nombre de esta funcion, 'clean_q'
## esta recibe un objeto de entrada.

def clean_q(input_object):
    from re import sub  ## importamos la función sub, que substituye utilizando patrones
    ## https://es.wikipedia.org/wiki/Expresión_regular
    
    ## NaN es un objeto especial que representa un valor numérico invalido, Not A Number.
    if input_object == NaN:
        return 0
    inp = unicode(input_object) # De objeto a un texto
    cleansed_q = sub(r'Q\.','', inp) # Remueve Q., el slash evita que . sea interpretado como un caracter especial
    cleansed_00 = sub(r'\.00', '', cleansed_q) # Igual aqui
    cleansed_comma = sub(',', '', cleansed_00)
    cleansed_dash = sub('-', '', cleansed_comma)
    cleansed_nonchar = sub(r'[^0-9]+', '', cleansed_dash)
    if cleansed_nonchar == '':
        return 0
    return cleansed_nonchar
In [34]:
presupuesto_aprobado = muni_data['APROBADO'].map(clean_q).astype(float)
In [35]:
presupuesto_aprobado.describe()
Out[35]:
count    6.74135e+05
mean     3.64625e+05
std      8.43016e+06
min      0.00000e+00
25%      0.00000e+00
50%      1.00000e+03
75%      1.50000e+04
max      1.43719e+09
Name: APROBADO, dtype: float64
In [36]:
muni_data['EJECUTADO'].head()
Out[36]:
0     Q.137,400.00 
1            Q.-   
2            Q.-   
3      Q.49,588.00 
4            Q.-   
Name: EJECUTADO, dtype: object
In [37]:
muni_data['FUNC1'].str.upper().value_counts()
Out[37]:
1 - ADMINISTRACION GENERAL                                      150541
01 - SERVICIOS PUBLICOS GENERALES                               107911
SIN FINALIDAD                                                   100862
3 - SERVICIOS SOCIALES                                           96451
4 - SERVICIOS ECONOMICOS                                         65763
07 - URBANIZACION Y SERVICIOS COMUNITARIOS                       40349
05 - ASUNTOS ECONOMICOS                                          38126
10 - EDUCACION                                                   18584
06 - PROTECCION AMBIENTAL                                        17359
09 - ACTIVIDADES DEPORTIVAS, RECREATIVAS, CULTURA Y RELIGION     11929
03 - ORDEN PUBLICO Y SEGURIDAD CIUDADANA                          7137
08 - SALUD                                                        5707
12 - TRANSACCIONES DE LA DEUDA PUBLICA                            3470
11 - PROTECCION SOCIAL                                            3338
6 - OTROS NO CLASIFICABLES                                        2565
2 - DEFENSA Y SEGURIDAD INTERNA                                   1662
04 - ATENCION A DESASTRES Y GESTION DE RIESGOS                    1179
5 - DEUDA PUBLICA                                                 1073
02 - DEFENSA                                                       129
Name: FUNC1, dtype: int64
In [77]:
presupuesto_aprobado.plot()
Out[77]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f7e5ff55860>

Bueno, ahora ya tenemos estas series de datos convertidas. ¿como las volvemos a agregar al dataset? ¡Facil! lo volvemos a insertar al DataFrame original, sobreescribiendo esa columna.

In [38]:
for col in ('APROBADO', 'RETRASADO', 'EJECUTADO', 'PAGADO'):
    muni_data[col] = muni_data[col].map(clean_q).astype(float)
In [39]:
muni_data['APROBADO'].sum()
Out[39]:
245806713741.0
In [40]:
muni_data.head()
Out[40]:
ANNO ADMINISTRACIÓN MUNICIPIO DEPTO MUN FUNC1 FUNC2 FUNC3 ECON1 ECON2 ORIGEN2 ORIGEN3 PROGRAMA1 PROGRAMA2 PROYECTO1 PROYECTO2 APROBADO RETRASADO EJECUTADO PAGADO
0 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 137400.0 137400.0 137400.0
1 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 0.0 0.0 0.0
2 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 22 Ingresos Ordinarios De Aporte Constitucional No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 0.0 0.0 0.0
3 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 240000.0 49588.0 49588.0 49588.0
4 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 42 Préstamos Internos No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 0.0 0.0 0.0

5 rows × 21 columns

In [81]:
muni_data['ECON1'].unique()
Out[81]:
array(['21 Gastos Corrientes', '22 Gastos de Capital',
       '23 Aplicaciones Financieras'], dtype=object)

Ahora si, ¡ya podemos agrupar y hacer indices bien!

In [41]:
index_geo_data = muni_data.set_index("DEPTO","MUNICIPIO").sort_index()
In [42]:
index_geo_data.head(40)
Out[42]:
ANNO ADMINISTRACIÓN MUNICIPIO MUN FUNC1 FUNC2 FUNC3 ECON1 ECON2 ORIGEN1 ORIGEN2 ORIGEN3 PROGRAMA1 PROGRAMA2 PROYECTO1 PROYECTO2 APROBADO RETRASADO EJECUTADO PAGADO
DEPTO
ALTA VERAPAZ 2011 Municipal CAHABON CAHABON 01 – SERVICIOS PUBLICOS GENERALES 0101 – Administracion legislative, ejecutiva y… 010101-Legislativa 21 Gastos Corrientes 062 – Dietas Para Cargos Representativos No Aplica No Aplica No Aplica 1 – ACTIVIDADES CENTRALES 0 – SIN SUB PROGRAMA 0 – SIN PPROYECTO 1 – CONCEJO MUNICIPAL 169600.0 169600.0 0.0 16798750.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 306-AGUA Y SANEAMIENTO Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 10450.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 301-SALUD Y ASISTENCIA SOCIAL Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 4520.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 301-SALUD Y ASISTENCIA SOCIAL Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 1020.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 301-SALUD Y ASISTENCIA SOCIAL Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 5792.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 301-SALUD Y ASISTENCIA SOCIAL Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 1002062.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 301-SALUD Y ASISTENCIA SOCIAL Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 17122.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 306-AGUA Y SANEAMIENTO Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 20215.0 20215.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 306-AGUA Y SANEAMIENTO Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 74690.0 14965.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 306-AGUA Y SANEAMIENTO Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 18000.0 18000.0 1254260.0 1254260.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 306-AGUA Y SANEAMIENTO Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 86006.0 86006.0 86006.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 4 – SERVICIOS ECONOMICOS 402-ENERGIA Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 6790.0 6790.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 306-AGUA Y SANEAMIENTO Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 90000.0 3344064.0 31119.0 31119.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 306-AGUA Y SANEAMIENTO Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 34225.0 34225.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 306-AGUA Y SANEAMIENTO Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 225716.0 225716.0 225716.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 306-AGUA Y SANEAMIENTO Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 22 Ingresos Ordinarios De Aporte Constitucional No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 30000.0 30000.0 30000.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 306-AGUA Y SANEAMIENTO Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 142960.0 14689711.0 14689711.0 14689711.0
ALTA VERAPAZ 2009 Municipal CHISEC CHISEC 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 22 Gastos de Capital 274 – Cemento 30 Recursos Propios De Las Instituciones 32 Dismin Caja Y Bancos Entidades Descentraliz… No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 6930.0 6930.0 6930.0
ALTA VERAPAZ 2009 Municipal CHISEC CHISEC 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 22 Gastos de Capital 274 – Cemento 30 Recursos Propios De Las Instituciones 32 Dismin Caja Y Bancos Entidades Descentraliz… No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 6930.0 6930.0 6930.0
ALTA VERAPAZ 2009 Municipal CHISEC CHISEC 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 22 Gastos de Capital 274 – Cemento 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 17360.0 17360.0 17360.0
ALTA VERAPAZ 2009 Municipal CHISEC CHISEC 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 22 Gastos de Capital 274 – Cemento 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 1830.0 1830.0 1830.0
ALTA VERAPAZ 2009 Municipal CHISEC CHISEC 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 22 Gastos de Capital 274 – Cemento 20 Recursos Del Tesoro Con Afectación Especifica 22 Ingresos Ordinarios De Aporte Constitucional No Aplica No Aplica No Aplica No Aplica No Aplica 50000.0 114525.0 114525.0 114525.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 303-EDUCACION Sin Division 22 Gastos de Capital 332 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 107250.0 110061.0 110061.0 110061.0
ALTA VERAPAZ 2009 Municipal CHISEC CHISEC 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 22 Gastos de Capital 274 – Cemento 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 40978.0 40978.0 40978.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 303-EDUCACION Sin Division 22 Gastos de Capital 332 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 15128612.0 137539.0 137539.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 303-EDUCACION Sin Division 22 Gastos de Capital 332 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 94374.0 94374.0 94374.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 4 – SERVICIOS ECONOMICOS 409-OTRAS ACTIVIDADES DE SERVICIOS ECONOMICOS Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 22 Ingresos Ordinarios De Aporte Constitucional No Aplica No Aplica No Aplica No Aplica No Aplica 1000000.0 4997703.0 49029.0 49029.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 4 – SERVICIOS ECONOMICOS 409-OTRAS ACTIVIDADES DE SERVICIOS ECONOMICOS Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 22 Ingresos Ordinarios De Aporte Constitucional No Aplica No Aplica No Aplica No Aplica No Aplica 98130.0 98130.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 4 – SERVICIOS ECONOMICOS 409-OTRAS ACTIVIDADES DE SERVICIOS ECONOMICOS Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 197305.0 5874280.0 5874280.0 5874280.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 4 – SERVICIOS ECONOMICOS 409-OTRAS ACTIVIDADES DE SERVICIOS ECONOMICOS Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 264085.0 82105.0 5933880.0 5933880.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 4 – SERVICIOS ECONOMICOS 409-OTRAS ACTIVIDADES DE SERVICIOS ECONOMICOS Sin Division 22 Gastos de Capital 171 – Mantenimiento Y Reparación De Edificios 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 0.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 4 – SERVICIOS ECONOMICOS 409-OTRAS ACTIVIDADES DE SERVICIOS ECONOMICOS Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 51060.0 51810.0 51809.0 51809.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 4 – SERVICIOS ECONOMICOS 409-OTRAS ACTIVIDADES DE SERVICIOS ECONOMICOS Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 622320.0 622320.0 41598604.0 41598604.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 4 – SERVICIOS ECONOMICOS 409-OTRAS ACTIVIDADES DE SERVICIOS ECONOMICOS Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 84729875.0 581251.0 581251.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 4 – SERVICIOS ECONOMICOS 409-OTRAS ACTIVIDADES DE SERVICIOS ECONOMICOS Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 803365.0 803365.0 723122.0 723122.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 4 – SERVICIOS ECONOMICOS 409-OTRAS ACTIVIDADES DE SERVICIOS ECONOMICOS Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 42256696.0 42256696.0 42256696.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 4 – SERVICIOS ECONOMICOS 409-OTRAS ACTIVIDADES DE SERVICIOS ECONOMICOS Sin Division 22 Gastos de Capital 331 – Construcciones De Bienes Nacionales De U… 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 229250.0 229250.0 2664521.0 2664521.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 303-EDUCACION Sin Division 22 Gastos de Capital 022 – Personal Por Contrato 20 Recursos Del Tesoro Con Afectación Especifica 22 Ingresos Ordinarios De Aporte Constitucional No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 15000.0 14181.0 14181.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 303-EDUCACION Sin Division 22 Gastos de Capital 332 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 20.0 0.0 0.0
ALTA VERAPAZ 2009 Municipal CHAHAL CHAHAL 3 – SERVICIOS SOCIALES 303-EDUCACION Sin Division 22 Gastos de Capital 332 – Construcciones De Bienes Nacionales De U… 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 8219.0 0.0 0.0
In [44]:
mi_muni_d = muni_data.set_index(["ANNO"],["DEPTO","MUNICIPIO"],["FUNC1","ECON1","ORIGEN1"]).sort_index()
In [45]:
mi_muni_d.head()
Out[45]:
ADMINISTRACIÓN MUNICIPIO DEPTO MUN FUNC1 FUNC2 FUNC3 ECON1 ECON2 ORIGEN1 ORIGEN2 ORIGEN3 PROGRAMA1 PROGRAMA2 PROYECTO1 PROYECTO2 APROBADO RETRASADO EJECUTADO PAGADO
ANNO
0 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 137400.0 137400.0 137400.0
1 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 20 Recursos Del Tesoro Con Afectación Especifica 21 Ingresos Tributarios Iva Paz No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 0.0 0.0 0.0
2 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 20 Recursos Del Tesoro Con Afectación Especifica 22 Ingresos Ordinarios De Aporte Constitucional No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 0.0 0.0 0.0
3 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 30 Recursos Propios De Las Instituciones 31 Ingresos Propios No Aplica No Aplica No Aplica No Aplica No Aplica 240000.0 49588.0 49588.0 49588.0
4 2008 Municipal ALOTENANGO SACATEPEQUEZ ALOTENANGO 1 – ADMINISTRACION GENERAL 109 – OTRAS ACTIVIDADES DE ADMINISTRACION Sin Division 21 Gastos Corrientes 011 – Personal Permanente 40 Credito Interno 42 Préstamos Internos No Aplica No Aplica No Aplica No Aplica No Aplica 0.0 0.0 0.0 0.0
In [85]:
## Para obtener mas ayuda, ejecuta:
# help(mi_muni_d)
In [46]:
mi_muni_d.columns
Out[46]:
Index(['ADMINISTRACIÓN', 'MUNICIPIO', 'DEPTO', 'MUN', 'FUNC1', 'FUNC2',
       'FUNC3', 'ECON1', 'ECON2', 'ORIGEN1', 'ORIGEN2', 'ORIGEN3', 'PROGRAMA1',
       'PROGRAMA2', 'PROYECTO1', 'PROYECTO2', 'APROBADO', 'RETRASADO',
       'EJECUTADO', 'PAGADO'],
      dtype='object')
In [47]:
mi_muni_d["DEPTO"].describe()
Out[47]:
count        674135
unique           22
top       GUATEMALA
freq          55520
Name: DEPTO, dtype: object
In [48]:
year_grouped = mi_muni_d.groupby("ANNO").sum()
In [49]:
year_grouped
Out[49]:
APROBADO RETRASADO EJECUTADO PAGADO
ANNO
2008 2.68353e+10 2.45634e+11 4.14921e+11 4.12270e+11
2009 5.31561e+10 2.99390e+11 4.81259e+11 4.77409e+11
2010 7.32193e+10 3.28068e+11 0.00000e+00 5.26614e+11
2011 9.25959e+10 3.39514e+11 0.00000e+00 5.42302e+11
In [50]:
year_dep_grouped = mi_muni_d.groupby(["ANNO","DEPTO"]).sum()
year_dep_grouped.head()

sns.set(style="whitegrid")

# Draw a nested barplot to show survival for class and sex
g = sns.factorplot( data=year_dep_grouped,
                   size=6, kind="bar", palette="muted")
# g.despine(left=True)
g.set_ylabels("cantidad")
Out[50]:
<seaborn.axisgrid.FacetGrid at 0x7f076e5f5fd0>
In [91]:
year_dep_grouped.head()
Out[91]:
APROBADO RETRASADO EJECUTADO PAGADO
ANNO DEPTO
2008 ALTA VERAPAZ 2.78291e+09 1.46371e+10 1.63018e+10 1.61846e+10
BAJA VERAPAZ 6.13609e+08 6.77458e+09 6.57817e+09 6.56299e+09
CHIMALTENANGO 9.42927e+08 8.63124e+09 1.30331e+10 1.30252e+10
CHIQUIMULA 5.74758e+08 7.30016e+09 7.62139e+09 7.59232e+09
EL PROGRESO 3.53643e+08 5.29144e+09 7.06977e+09 7.03881e+09

Contestando preguntas

Ahora ya podemos contestar algunas clases de preguntas agrupando estas entradas individuales de de datos.
¿Que tal el departamento que tiene mas gasto en Seguridad? ¿Los tipos de gasto mas elevados como suelen ser pagados?

In [92]:
year_grouped.plot()
Out[92]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f7e5fe45a90>
In [51]:
year_dep_group = mi_muni_d.groupby(["DEPTO","ANNO"]).sum()
In [94]:
year_dep_group.unstack().head()
Out[94]:
APROBADO RETRASADO EJECUTADO PAGADO
ANNO 2008 2009 2010 2011 2008 2009 2010 2011 2008 2009 2010 2011 2008 2009 2010 2011
DEPTO
ALTA VERAPAZ 2.78291e+09 5.64744e+09 1.95357e+10 2.12952e+10 1.46371e+10 2.09176e+10 3.22332e+10 3.77961e+10 1.63018e+10 2.18337e+10 0.0 0.0 1.61846e+10 2.15977e+10 2.06492e+10 2.38565e+10
BAJA VERAPAZ 6.13609e+08 1.93412e+09 1.55609e+09 3.10721e+09 6.77458e+09 7.40240e+09 9.37046e+09 1.15378e+10 6.57817e+09 7.00557e+09 0.0 0.0 6.56299e+09 6.97541e+09 8.10811e+09 1.04986e+10
CHIMALTENANGO 9.42927e+08 2.36969e+09 2.95906e+09 2.63505e+09 8.63124e+09 9.65804e+09 9.83285e+09 8.07592e+09 1.30331e+10 1.19265e+10 0.0 0.0 1.30252e+10 1.17757e+10 1.27430e+10 1.25867e+10
CHIQUIMULA 5.74758e+08 7.94670e+08 2.40722e+09 3.12491e+09 7.30016e+09 7.01026e+09 9.74311e+09 8.95407e+09 7.62139e+09 7.77514e+09 0.0 0.0 7.59232e+09 7.68196e+09 9.47250e+09 9.48921e+09
EL PROGRESO 3.53643e+08 9.42015e+08 1.98337e+09 2.09171e+09 5.29144e+09 6.41684e+09 6.02155e+09 6.51524e+09 7.06977e+09 7.01621e+09 0.0 0.0 7.03881e+09 6.94013e+09 8.77785e+09 8.27554e+09
In [52]:
func_p = mi_muni_d.groupby(["FUNC1"]).sum()
func_dep = mi_muni_d.groupby(["FUNC1","DEPTO"]).sum()
func_p
Out[52]:
APROBADO RETRASADO EJECUTADO PAGADO
FUNC1
01 – SERVICIOS PUBLICOS GENERALES 2.12896e+10 9.39864e+10 0.00000e+00 1.46451e+11
02 – DEFENSA 7.65149e+06 4.85768e+07 0.00000e+00 1.15252e+08
03 – ORDEN PUBLICO Y SEGURIDAD CIUDADANA 1.54112e+09 4.62692e+09 0.00000e+00 9.71618e+09
04 – ATENCION A DESASTRES Y GESTION DE RIESGOS 2.02693e+08 1.46343e+09 0.00000e+00 1.90633e+09
05 – ASUNTOS ECONOMICOS 3.53597e+10 1.16573e+11 0.00000e+00 1.08795e+11
06 – PROTECCION AMBIENTAL 6.82913e+09 2.43591e+10 0.00000e+00 3.15289e+10
07 – URBANIZACION Y SERVICIOS COMUNITARIOS 2.35510e+10 9.90229e+10 0.00000e+00 1.12771e+11
08 – SALUD 1.79933e+09 6.12886e+09 0.00000e+00 7.90331e+09
09 – ACTIVIDADES DEPORTIVAS, RECREATIVAS, CULTURA Y RELIGION 2.02757e+09 1.08670e+10 0.00000e+00 1.33765e+10
1 – ADMINISTRACION GENERAL 2.22609e+10 1.53756e+11 2.87329e+11 2.86671e+11
10 – EDUCACION 7.38670e+09 2.92963e+10 0.00000e+00 3.05241e+10
11 – PROTECCION SOCIAL 6.06386e+08 7.10021e+09 0.00000e+00 1.26944e+10
12 – TRANSACCIONES DE LA DEUDA PUBLICA 1.94713e+10 6.97031e+10 0.00000e+00 8.69565e+10
2 – DEFENSA Y SEGURIDAD INTERNA 2.69279e+08 1.41168e+09 1.11557e+10 1.11701e+10
3 – SERVICIOS SOCIALES 2.46567e+10 1.48437e+11 2.16065e+11 2.13887e+11
4 – SERVICIOS ECONOMICOS 2.27707e+10 1.67108e+11 2.47066e+11 2.43517e+11
5 – DEUDA PUBLICA 2.54276e+09 1.80157e+10 2.89121e+10 2.89121e+10
6 – OTROS NO CLASIFICABLES 6.22515e+09 4.34632e+10 9.32827e+10 9.31423e+10
Sin Finalidad 4.70091e+10 2.17238e+11 1.23702e+10 5.18558e+11
In [97]:
func_dep_flat = func_dep.unstack()
In [98]:
func_dep_flat.head()
Out[98]:
APROBADO PAGADO
DEPTO ALTA VERAPAZ BAJA VERAPAZ CHIMALTENANGO CHIQUIMULA EL PROGRESO ESCUINTLA GUATEMALA HUEHUETENANGO IZABAL JALAPA QUETZALTENANGO QUICHE RETALHULEU SACATEPEQUEZ SAN MARCOS SANTA ROSA SOLOLA SUCHITEPEQUEZ TOTONICAPAN ZACAPA
FUNC1
01 – SERVICIOS PUBLICOS GENERALES 2.65028e+09 5.44695e+08 6.02520e+08 1.45687e+09 5.06434e+08 1.82266e+09 4.99280e+09 1.26883e+09 1.95440e+08 4.06992e+08 5.56908e+09 3.55170e+09 3.88756e+09 1.42191e+10 6.86290e+09 5.26960e+09 5.25078e+09 3.65925e+09 1.48548e+09 7.83247e+09
02 – DEFENSA 0.00000e+00 4.18211e+06 NaN 1.25551e+06 NaN 8.25311e+05 0.00000e+00 NaN NaN 5.80000e+05 6.50000e+01 4.45000e+04 NaN NaN NaN 2.81500e+04 NaN NaN NaN 0.00000e+00
03 – ORDEN PUBLICO Y SEGURIDAD CIUDADANA 4.15592e+08 2.73807e+06 1.73070e+07 1.20563e+08 3.46200e+05 8.40011e+06 7.54022e+07 8.85087e+07 1.34582e+06 4.66579e+07 1.11593e+09 9.09038e+07 3.09004e+08 2.05695e+09 2.18261e+07 1.47161e+07 2.27009e+08 8.04501e+08 3.30255e+07 5.84190e+08
04 – ATENCION A DESASTRES Y GESTION DE RIESGOS 1.65910e+06 1.21105e+06 1.55504e+06 1.00000e+05 0.00000e+00 1.09773e+08 1.60380e+07 7.50000e+04 8.19824e+05 1.25000e+05 3.74758e+06 1.42707e+07 2.55000e+04 1.97266e+08 8.83148e+07 1.64157e+05 2.05584e+08 1.63782e+08 2.30420e+07 3.34638e+08
05 – ASUNTOS ECONOMICOS 2.18998e+10 9.96920e+08 8.61639e+08 5.23307e+08 7.35246e+07 1.12597e+09 6.27814e+08 3.92554e+09 4.30563e+08 9.99355e+07 9.02544e+09 5.93387e+09 3.12895e+09 5.35538e+09 5.26815e+09 1.59234e+09 4.55446e+09 2.28815e+09 1.23100e+09 1.34795e+09

5 rows × 88 columns

In [99]:
mi_muni_d.groupby(["DEPTO"]).sum()
Out[99]:
APROBADO RETRASADO EJECUTADO PAGADO
DEPTO
ALTA VERAPAZ 4.92612e+10 1.05584e+11 3.81355e+10 8.22879e+10
BAJA VERAPAZ 7.21103e+09 3.50852e+10 1.35837e+10 3.21451e+10
CHIMALTENANGO 8.90672e+09 3.61980e+10 2.49596e+10 5.01306e+10
CHIQUIMULA 6.90156e+09 3.30076e+10 1.53965e+10 3.42360e+10
EL PROGRESO 5.37074e+09 2.42451e+10 1.40860e+10 3.10323e+10
ESCUINTLA 1.20947e+10 7.26081e+10 5.14456e+10 1.03419e+11
GUATEMALA 5.68443e+10 2.15876e+11 3.21973e+11 7.58397e+11
HUEHUETENANGO 2.47259e+10 1.00322e+11 4.92594e+10 9.70342e+10
IZABAL 5.11757e+09 2.68013e+10 1.79282e+10 4.43529e+10
JALAPA 1.58871e+09 2.33997e+10 1.04539e+10 2.38595e+10
JUTIAPA 4.14766e+09 4.03333e+10 2.00108e+10 5.03091e+10
PETEN 3.45629e+09 4.68713e+10 3.39268e+10 6.44478e+10
QUETZALTENANGO 8.29197e+09 8.49271e+10 5.99876e+10 1.09478e+11
QUICHE 4.84704e+09 4.54015e+10 2.37022e+10 5.21949e+10
RETALHULEU 1.96498e+09 1.84727e+10 1.19464e+10 2.63670e+10
SACATEPEQUEZ 1.23032e+10 6.03496e+10 4.11457e+10 9.07820e+10
SAN MARCOS 1.09746e+10 7.05547e+10 4.79591e+10 9.71124e+10
SANTA ROSA 2.79451e+09 3.75883e+10 2.21405e+10 4.49575e+10
SOLOLA 1.40226e+09 4.53424e+10 2.22294e+10 5.03288e+10
SUCHITEPEQUEZ 1.02333e+10 4.30445e+10 3.06963e+10 5.61131e+10
TOTONICAPAN 2.71191e+09 2.21165e+10 1.12744e+10 2.26652e+10
ZACAPA 4.65654e+09 2.44776e+10 1.39398e+10 3.69447e+10
In [96]:
func_p.plot(kind="barh", figsize=(8,6), linewidth=2.5)
Out[96]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f7e6d19ca20>

 

 

Flattr this!

]]>
http://es.schoolofdata.org/2017/06/28/introduccion-a-pandas-y-jupyter-notebook-de-python/feed/ 0 2129