Reservas de información en el Órgano Ejecutivo

Por Jaime López <jaime.lopez@funde.org>
Junio 8, 2016

En este notebook se ha procesado el dataset de reservas de información en el Órgano Ejecutivo. El lenguaje es Python.

Inicialización

In [1]:
#Carga de librerías
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

Exploración inicial

In [2]:
# Lectura del dataset
data = pd.read_csv('datos.csv')
In [3]:
data.columns
Out[3]:
Index(['Entidad', 'Siglas', 'FechaAct', 'Entradas', 'Sector'], dtype='object')
In [4]:
data.head()
Out[4]:
Entidad Siglas FechaAct Entradas Sector
0 Academia Nacional de Seguridad Pública ANSP NaN 19 Justicia y seguridad ciudadana
1 Administración Nacional de Acueductos y Alcant... ANDA NaN 175 Empresas públicas
2 Autoridad de Aviación Civil AAC NaN 5 Desarrollo económico
3 Autoridad Marítima Portuaria AMP NaN 9 Desarrollo económico
4 Banco Central de Reserva BCR NaN 6 Sector público financiero

Estadísticos básicos

In [5]:
# Número de entidades
len(data)
Out[5]:
81
In [6]:
# Número total de reservas
data['Entradas'].sum()
Out[6]:
5023
In [7]:
# Media aritmética
data['Entradas'].mean()
Out[7]:
62.01234567901235
In [8]:
# Desviación estándar
data['Entradas'].std()
Out[8]:
125.8192646047457

Distribución de frecuencias

In [9]:
labels = ['0', '1-10', '11-100', '>100']
In [10]:
bins = []
bins.append(data[data['Entradas'] == 0]['Entradas'].count())
bins.append(data[(data['Entradas'] >= 1) & (data['Entradas'] <= 10)]['Entradas'].count())
bins.append(data[(data['Entradas'] >= 11) & (data['Entradas'] <= 100)]['Entradas'].count())
bins.append(data[data['Entradas'] > 100]['Entradas'].count())
In [11]:
# Frecuencias absolutas
bins
Out[11]:
[12, 22, 34, 13]
In [12]:
# Frecuencias relativas
[v / len(data) * 100 for v in bins]
Out[12]:
[14.814814814814813,
 27.160493827160494,
 41.975308641975303,
 16.049382716049383]
In [13]:
# Gráfica del histograma
x_pos = range(len(bins))
plt.bar(x_pos, bins, align='center', color='g', alpha=0.5)
plt.xticks(x_pos, labels)
Out[13]:
([<matplotlib.axis.XTick at 0x1f600532f60>,
  <matplotlib.axis.XTick at 0x1f600532978>,
  <matplotlib.axis.XTick at 0x1f6005b4080>,
  <matplotlib.axis.XTick at 0x1f600609cf8>],
 <a list of 4 Text xticklabel objects>)

Entidades con 0 reservas

In [14]:
data[data['Entradas'] == 0]['Entidad']
Out[14]:
8               Centro Farmacéutico de la Fuerza Armada
16                          Consejo Nacional de Calidad
17             Consejo Nacional de Ciencia y Tecnología
18                          Consejo Nacional de Energía
32    Fondo de Inversión Social para el Desarrollo L...
38    Fondo para la Atención de Víctimas de Accident...
43             Inspectoría General de Seguridad Pública
46    Instituto Especializado de Educación Superior ...
47                    Instituto Nacional de la Juventud
48                   Instituto Nacional de los Deportes
50       Instituto Salvadoreño de Bienestar Magisterial
52         Instituto Salvadoreño de Fomento Cooperativo
Name: Entidad, dtype: object

Entidades con mayor número de reservas

In [15]:
data.sort_values(by=['Entradas'], ascending=False)[['Entidad', 'Entradas']].head(10)
Out[15]:
Entidad Entradas
63 Ministerio de Educación 767
40 Fondo Salvadoreño para la Vivienda 571
61 Ministerio de Agricultura y Ganadería 461
35 Fondo de Saneamiento y Fortalecimiento Financiero 395
51 Instituto Salvadoreño de Desarrollo Municipal 230
41 Fondo Solidario para la Familia Microempresaria 193
60 Lotería Nacional de Beneficencia 180
1 Administración Nacional de Acueductos y Alcant... 175
20 Consejo Nacional de Micro y Pequeña Empresa 145
11 Centro Nacional de Tecnología Agropecuaria y F... 132

Reservas por sector

In [16]:
sectors = data.groupby(['Sector'])['Entradas'].sum()
sectors
Out[16]:
Sector
Conducción administrativa          205
Desarrollo económico              2296
Desarrollo social                 1153
Empresas públicas                  482
Justicia y seguridad ciudadana     343
Sector público financiero          544
Name: Entradas, dtype: int64
In [17]:
sectors.plot(kind='bar', color='g', alpha=0.5)
Out[17]:
<matplotlib.axes._subplots.AxesSubplot at 0x1f60093c940>
In [ ]: