In [31]:
# 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
print("cache_dir is '{}'".format(istat.cache_dir()))
In [32]:
# Lista Aree
# istat.areas()
istat_area_pop = istat.area(8)
In [33]:
# Lista Dataset - Popolazione -> KPI: Speranza di vita alla nascita
istat_dataset_popolazione = istat_area_pop.dataset('DCIS_INDDEMOG1')
# istat_dataset_popolazione
In [4]:
# Lista di tutte le Dimensioni
#istat_dataset_popolazione.dimensions()
In [34]:
# Speranza di Vita Maschi
spec1 = {
#"Territorio":1, # 1 -> Italia
#"Anno":2167, # ALL
"Tipo indicatore":75 # 75 -> Speranza di vita alla nascita - maschi
}
collection1 = istat_dataset_popolazione.getvalues(spec1)
ds = collection1.dataset(0)
df_m = ds.to_data_frame('Territorio')
In [35]:
# Speranza di Vita Femmine
spec2 = {
#"Territorio":1, # 1 -> Italia
#"Anno":2167, # ALL
"Tipo indicatore":77 # 77 -> Speranza di vita alla nascita - femmine
}
collection2 = istat_dataset_popolazione.getvalues(spec2)
ds2 = collection2.dataset(0)
df_f = ds2.to_data_frame('Territorio')
In [7]:
df_f.count()
Out[7]:
In [8]:
df_m.count()
Out[8]:
In [36]:
# Calcolo Speranza di Vita alla Nascita (media tra maschi e femmine) - Territorio Italia, Nord e Sud
df_merge = pd.concat([df_m, df_f], axis=1)
df_merge.columns = ['Anno', 'Value_M', 'Anno_F', 'Value_F']
df_merge = df_merge.drop('Anno_F', 1)
df_merge.reset_index(level=0, inplace=True)
def value(x):
return round(((x['Value_F'] + x['Value_M'])/2),1)
df_merge['Value'] = df_merge.apply(lambda x: value(x), axis=1)
df_merge = df_merge.drop('Value_F', 1)
df_merge = df_merge.drop('Value_M', 1)
df_merge=df_merge[(df_merge['Territorio']=='Italia') |
(df_merge['Territorio']=='Nord') |
(df_merge['Territorio']=='Sud')]
In [37]:
df_merge.head(2)
# writer = pd.ExcelWriter('Vita.xlsx')
# df_merge.to_excel(writer,'vita')
# writer.save()
Out[37]:
In [38]:
# Directory dove salvare i file, da utilizzare in data_visualization
dir_df = os.path.join(os.path.abspath(''),'stg')
df_merge_filename = r'df_vita.pkl'
df_merge_fullpath = os.path.join(dir_df, df_merge_filename)
df_merge.to_pickle(df_merge_fullpath)
In [39]:
istat_area_cn = istat.area(17)
istat_dataset_reddito = istat_area_cn.dataset('DCCN_TNA')
# istat_dataset_reddito
In [14]:
#istat_dataset_reddito.dimensions()
In [40]:
# Prodotto Interno Lordo ai prezzi di mercato per abitante
spec2 = {
#"Territorio":1,
"Tipo aggregato":27,
#"Branca di attività (NACE Rev2)":128,
#"Attività non finanziarie":3,
#"Funzione di spesa (coicop/cofog)":3,
"Valutazione":9,
#"Correzione":1,
#"Tipologia di prezzo":1,
"Edizione":2223
#"Tempo e frequenza":1920
}
collection2 = istat_dataset_reddito.getvalues(spec2)
#ds = collection.dataset(0)
In [41]:
ds = collection2.dataset(0)
df_red = ds.to_data_frame('Tempo e frequenza')
df_red.reset_index(level=0, inplace=True)
df_red = df_red[['Tempo e frequenza','Territorio', 'Value']]
In [42]:
df_red=df_red[(df_red['Territorio']=='Italia') |
(df_red['Territorio']=='Nord') |
(df_red['Territorio']=='Sud')]
In [18]:
#writer = pd.ExcelWriter('Reddito.xlsx')
#df_red.to_excel(writer,'reddito')
#writer.save()
In [43]:
df_red_filename = r'df_reddito.pkl'
df_red_fullpath = os.path.join(dir_df, df_red_filename)
df_red.to_pickle(df_red_fullpath)
In [20]:
df_red.head(2)
Out[20]:
In [44]:
# Popolazione Residente
istat_dataset_residenti = istat_area_pop.dataset('DCIS_POPRES1')
istat_dataset_residenti
Out[44]:
In [47]:
#istat_dataset_residenti.dimensions()
In [55]:
# Popolazione Residente
spec_pr = {
#"Territorio":1,
"Sesso":3,
"Stato civile":8,
"Tipo di indicatore demografico":1,
"Età":182,
"Anno":2186,
}
collection_pr = istat_dataset_residenti.getvalues(spec_pr)
ds_pr = collection_pr.dataset(0)
ds_pr
Out[55]:
In [49]:
df_pr = ds_pr.to_data_frame('Territorio')
df_pr.reset_index(level=0, inplace=True)
In [50]:
df_pr_2015=df_pr[(df_pr['Territorio']=='Italia') |
(df_pr['Territorio']=='Nord') |
(df_pr['Territorio']=='Sud')]
In [51]:
# df_red -> reddito
# df_merge -> speranza di vita
# df_pr_2015 -> popolazione
df_pr_2015.rename(columns={'Value': 'Popolazione residente'}, inplace=True)
df_pr_2015
Out[51]:
In [53]:
df_red_2015 = df_red[df_red['Tempo e frequenza']=='2015']
df_red_2015.drop(['Tempo e frequenza'], axis=1, inplace=True)
df_red_2015.rename(columns={'Value': 'Reddito pro capite'}, inplace=True)
df_red_2015
Out[53]:
In [28]:
df_merge_2015 = df_merge[df_merge['Anno']=='2015']
df_merge_2015.drop(['Anno'], axis=1, inplace=True)
df_merge_2015.rename(columns={'Value': 'Speranza di vita alla nascita'}, inplace=True)
df_merge_2015
Out[28]:
In [29]:
# Dataset Finale df_pr_2015, df_merge_2015,df_red_2015
result = pd.merge(df_pr_2015, df_merge_2015, on='Territorio')
df_g1 = pd.merge(result,df_red_2015, on='Territorio')
df_g1
Out[29]:
In [30]:
df_g1_filename = r'df_g1.pkl'
df_g1_fullpath = os.path.join(dir_df, df_g1_filename)
df_g1.to_pickle(df_g1_fullpath)