Datathon Mayo 2018 "Haciendo el gasto fiscal visible para el público"

Ingresos y Gastos anuales del Gobierno Central

Lectura de Datos


In [1]:
import os
import pandas as pd
import pandas_profiling as pd_profiling
import altair as alt

In [2]:
def read_field_type(x):
    '''
    Para facilitar la lectura de los dataframes con los tipos de columna correspondientes.
    '''
    if x in ['String']:
        return str
    elif x in ['Integer', 'Long']:
        return int
    else:
        return str

In [3]:
spend_gob_names = pd.read_csv(os.path.join('data', 
                              'dataset_3_Revenue_and_ pending_(Central_Government)_Real_DICTIONARY.csv'), 
                              sep=';', 
                              encoding='iso-8859-1')

In [4]:
spend_gob_names


Out[4]:
Field name Field type Field size Field format Range Description Example
0 Periodo Integer 9 # 1990 to 2017 Year of the revenue or spend 1990
1 NIVEL1 String 63 NaN 2 categories First Level of de State Operations Report of t... TRANSACCIONES QUE AFECTAN EL PATRIMONIO NETO
2 NIVEL2 String 42 NaN 3 categories Second Level of de State Operations Report of ... GASTOS
3 NIVEL3 String 56 NaN 16 categories Third Level of de State Operations Report of t... Personal
4 Real_Amount Integer 10 # (-76356,02) to 30754067,04 Real Amount in millions (chilean pesos). This ... 30754067

In [5]:
spend_gob = pd.read_csv(os.path.join('data', 
                              'dataset_3_Revenue_and_ pending_(Central_Government)_1990-2017 (real).csv'),
                 sep=';', 
                 encoding='iso-8859-1',
                 dtype=dict(zip(spend_gob_names['Field name'], spend_gob_names['Field type'].apply(read_field_type))))

In [6]:
spend_gob.columns = spend_gob.columns.str.lower()

In [7]:
spend_gob['real_amount'] = spend_gob['real_amount'].str.replace(',', '.').astype(float)

In [8]:
spend_gob.head(5)


Out[8]:
periodo nivel1 nivel2 nivel3 real_amount
0 1990 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Inversión 786184.56
1 1991 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Inversión 970813.77
2 1992 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Inversión 1165103.28
3 1993 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Inversión 1432888.73
4 1994 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Inversión 1568702.18

Estadística Descriptiva


In [14]:
spend_gob[spend_gob['real_amount'] < 0]


Out[14]:
periodo nivel1 nivel2 nivel3 real_amount
56 1990 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -55042.96
57 1991 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -76356.02
58 1992 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -56027.22
59 1993 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -43191.08
60 1994 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -44478.33
61 1995 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -31664.74
62 1996 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -18877.27
63 1997 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -47438.86
64 1998 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -35591.36
65 1999 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -12776.47
66 2000 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -15483.03
67 2001 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -19958.69
68 2002 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -31254.84
69 2003 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -17894.35
70 2004 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -32679.07
71 2005 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -40323.80
72 2006 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -27297.56
73 2007 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -18291.74
74 2008 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -31240.67
75 2009 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -66713.53
76 2010 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -34915.65
77 2011 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -26020.42
78 2012 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -40273.02
79 2013 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -52804.96
80 2014 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -36645.30
81 2015 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -44837.30
82 2016 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -37554.63
83 2017 TRANSACCIONES EN ACTIVOS NO FINANCIEROS ADQUISICION NETA DE ACTIVOS NO FINANCIEROS Venta de activos físicos -16224.99

In [13]:
spend_gob['nivel2']


Out[13]:
<matplotlib.axes._subplots.AxesSubplot at 0x7fdfdb65fcf8>

In [ ]:
for col in s

Ejemplito


In [ ]:


In [9]:
cobre = spend_gob.query("nivel3 == 'Cobre bruto'")

In [28]:
alt.Chart(cobre).mark_bar().encode(
    x='periodo:O',
    y='sum(real_amount):Q',
    color='nivel3'
)


Out[28]:

In [23]:
alt.Chart(spend_gob).mark_area().encode(
    x='periodo:O',
    y='sum(real_amount):Q',
    color='nivel3',
    column='nivel2'
)


Out[23]: