G7 - Disuguaglianza di Reddito - Quintili


In [1]:
# Import librerie per analisi dati (Pandas) e dati Istat
import os
import pandas as pd
import numpy as np
from IPython.core.display import HTML
import istat
import jsonstat

# cache dir per velocizzare analisi in locale
cache_dir = os.path.abspath(os.path.join("..", "tmp/od_la_grande_fuga", "istat_cached"))
istat.cache_dir(cache_dir)
istat.lang(0)  # lingua italiano

dir_df = os.path.join(os.path.abspath(''),'stg')

In [2]:
istat_area_condizioni = istat.area(9)
istat_area_condizioni.datasets()


Out[2]:
codnamedim
DCCV_ABITAFFOLLAffollamento nell'abitazione14
DCCV_ABITAFFOLL_PROVAAffollamento nell'abitazione PROVA14
DCCV_ABITPROBLProblemi nell'abitazione14
DCCV_ABITSPESASpesa per l'abitazione12
DCCV_ABITSPESA_STRASpesa per l'abitazione delle famiglie con componenti stranieri 14
DCCV_ARRETRATIArretrati per alcune voci di spesa13
DCCV_CARICOPESCarico delle spese pesante13
DCCV_DIFFBENDURDifficoltà acquisto beni durevoli13
DCCV_FAMCOMPORTComportamento di spesa delle famiglia6
DCCV_FAMNOVOCISPESAFamiglie che non possono permettersi alcune voci di spesa13
DCCV_FONTEPREDFonte principale di reddito familiare13
DCCV_GINIREDDIndicatori sulla distribuzione reddito netto familiare5
DCCV_IMPREVCapacità di risparmio e far fronte a spese impreviste12
DCCV_INCPOVAFAMIncidenza di povertà assoluta familiare11
DCCV_INCPOVRFAMIncidenza di povertà relativa familiare11
DCCV_INDCONSUMIIndicatori sulla distribuzione dei consumi6
DCCV_INDPOVASSIndicatori di povertà assoluta3
DCCV_INDPOVRELIndicatori di povertà relativa 3
DCCV_INTPOVAFAMIntensità di povertà assoluta familiare4
DCCV_INTPOVRFAMIntensità di povertà relativa familiare4
DCCV_NOSOLDIFamiglie che dichiarano in alcuni periodi dell anno di non avere soldi per voci di spesa13
DCCV_POVERTAPovertà nuove serie11
DCCV_PROBLZONRES_2Presenza di problemi nella zona di residenza delle famiglie14
DCCV_QUINTOREDDQuinto di reddito equivalente14
DCCV_REDDFINMESGiudizio sul reddito minimo per arrivare a fine mese senza difficoltà13
DCCV_REDNETFAMFONTEREDReddito netto familiare14
DCCV_SOGLIAPOVASoglia di povertà assoluta6
DCCV_SOGLIAPOVRSoglia di povertà relativa5
DCCV_SPEFFCOMPfamiglie che hanno effettuato la spesa per alcune voci di spesa5
DCCV_SPEFFDETTDettaglio della spesa effettiva5
DCCV_SPEMEFAMSpese nuove serie11
DCCV_SPEMMFAMSpesa media mensile familiare8
DCCV_SPQUINTOQuinto di spesa della famiglia8
DCCV_TITGODABITTitolo di godimento dell'abitazione 14
DCSC_FIDCONSFiducia dei consumatori8
PERCEPITGiudizio sulla condizione economica percepita13

In [3]:
# Indicatori di reddito
ds_reddito = istat_area_condizioni.dataset('DCCV_QUINTOREDD')
ds_reddito


Out[3]:
DCCV_QUINTOREDD(14):Quinto di reddito equivalente
nrnamenr. valuesvalues (first 3 values)
0Territorio271:'Italia', 4:'Nord-ovest', 33:'Nord-est' ...
1Tipo dato151:'famiglie per quinto di reddito equivalente (per famiglie con le stesse caratteristiche)'
2Misura110:'valori per cento'
3Quinto di reddito equivalente51:'primo', 2:'secondo', 3:'terzo' ...
4Presenza dei fitti imputati11:'inclusi fitti imputati'
5Numero di componenti61:'uno', 2:'due', 3:'tre' ...
6Tipologia familiare102:'persona sola con meno di 65 anni', 5:'persona sola con 65 anni o più', 7:'coppia senza figli con p.r. con meno di 65 anni' ...
7Numero di minori in famiglia51:'1 figlio minore', 2:'2 figli minori', 3:'3 figli minori o più' ...
8Numero di anziani in famiglia41:'1 anziano', 2:'2 anziani o più', 4:'nessun anziano' ...
9Sesso del principale percettore31:'maschi', 2:'femmine', 3:'totale' ...
10Classe di età del principale percettore61:'fino a 35 anni', 2:'35-44 anni', 3:'45-54 anni' ...
11Titolo di studio del principale percettore53:'licenza di scuola elementare, nessun titolo di studio', 4:'licenza di scuola media', 7:'diploma' ...
12Condizione professionale prevalente nell anno del principale percettore62:'indipendente', 5:'dipendente', 9:'ritirato dal lavoro' ...
13Anno121958:'2003', 1977:'2004', 1996:'2005' ...

In [4]:
ds_reddito.dimension('Territorio')


Out[4]:
'Territorio' (1:'Italia', 4:'Nord-ovest', 33:'Nord-est', 62:'Centro', 89:'Sud', 119:'Isole', 5:'Piemonte', 14:'Valle d'Aosta / Vallée d'Aoste', 16:'Liguria', 21:'Lombardia', 35:'Provincia Autonoma Bolzano / Bozen', 37:'Provincia Autonoma Trento', 39:'Veneto', 47:'Friuli-Venezia Giulia', 52:'Emilia-Romagna', 63:'Toscana', 74:'Umbria', 77:'Marche', 82:'Lazio', 90:'Abruzzo', 95:'Molise', 98:'Campania', 104:'Puglia', 110:'Basilicata', 113:'Calabria', 120:'Sicilia', 130:'Sardegna')

In [5]:
# NORD
spec_ne = {
"Territorio":4
}
spec_no = {
"Territorio":33
}

#SUD
spec_s = {
"Territorio":89
}

In [6]:
def quintili(ds, spec, nome):
    c = ds_reddito.getvalues(spec)
    ds = c.dataset(0)
    df = ds.to_data_frame('Anno')
    df.reset_index(level=0, inplace=True)
    df = df[['Anno','Quinto di reddito equivalente','Value']]
    df.columns = ['Anno','Quintile',nome]
    df=df[(df['Quintile']=='primo') |
           (df['Quintile']=='quinto')
         ]
    return df

In [7]:
df_s = quintili(ds_reddito,spec_s, 'Sud')
df_ne = quintili(ds_reddito,spec_ne, 'NordE')
df_no = quintili(ds_reddito,spec_no, 'NordO')

In [8]:
df_ne.columns = ['AnnoE','QuintileE','NordE']
df_n = pd.concat([df_no,df_ne],axis=1)

In [9]:
def nord(x):
    return round(((x['NordE'] + x['NordO'])/2),1)
df_n['Nord'] = df_n.apply(lambda x: nord(x), axis=1)
df_n = df_n[['Anno','Quintile','Nord']]

In [10]:
# Reshape Nord
df_n1=df_n[(df_n['Quintile']=='primo')]
df_n1=df_n1[['Anno','Nord']]
df_n1.columns = ['Anno','1° Quintile']
df_n5=df_n[(df_n['Quintile']=='quinto')]
df_n5=df_n5[['Anno','Nord']]
df_n5.columns = ['Anno','5° Quintile']

In [11]:
df_n1 = df_n1.set_index(['Anno'])
df_n5 = df_n5.set_index(['Anno'])

In [12]:
df_n = pd.concat([df_n1,df_n5],axis=1)
df_n


Out[12]:
1° Quintile 5° Quintile
Anno
2003 10.8 24.9
2004 10.6 24.3
2005 10.9 24.5
2006 10.7 24.8
2007 11.5 24.7
2008 11.3 25.0
2009 11.6 25.2
2010 11.2 25.4
2011 11.3 25.4
2012 10.9 26.0
2013 11.1 25.9
2014 10.9 26.4

In [13]:
# Reshape Sud
df_s1=df_s[(df_s['Quintile']=='primo')]
df_s1=df_s1[['Anno','Sud']]
df_s1.columns = ['Anno','1° Quintile']
df_s5=df_s[(df_s['Quintile']=='quinto')]
df_s5=df_s5[['Anno','Sud']]
df_s5.columns = ['Anno','5° Quintile']

In [14]:
df_s1 = df_s1.set_index(['Anno'])
df_s5 = df_s5.set_index(['Anno'])

In [15]:
df_s = pd.concat([df_s1,df_s5],axis=1)
df_s


Out[15]:
1° Quintile 5° Quintile
Anno
2003 36.7 9.5
2004 37.0 9.6
2005 36.8 9.4
2006 36.9 9.6
2007 36.1 9.3
2008 35.8 9.8
2009 35.2 9.4
2010 35.3 9.1
2011 35.1 9.1
2012 35.3 7.7
2013 35.4 8.2
2014 36.0 7.4

In [16]:
df_filename = r'df_g7_nord.pkl'
df_fullpath = os.path.join(dir_df, df_filename)
df_n.to_pickle(df_fullpath)

df_filename = r'df_g7_sud.pkl'
df_fullpath = os.path.join(dir_df, df_filename)
df_s.to_pickle(df_fullpath)