<jupyter_start><jupyter_text>G5 - PIL pro capite, reddito personale e spesa per consumi<jupyter_code># 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')
#istat.areas()
istat_area_redditi = istat.area(17)
istat_area_redditi.datasets()
#istat_area_redditi.datasets()
ds_redditi_pro_capite = istat_area_redditi.dataset('DCCN_TNA')
#ds_redditi_pro_capite.dimension('Tipo aggregato')
#ds_redditi_pro_capite.dimensions()
ds_redditi_pro_capite
# NORD
# Prodotto Interno Lordo ai prezzi di mercato per abitante -> OK
spec_n_pil = {
"Territorio":3,
"Tipo aggregato":27,
"Valutazione":9,
"Edizione":2223
}

# Reddito Disponibile per abitante -> OK
spec_n_red = {
"Territorio":3,
"Tipo aggregato":46,
"Valutazione":9,
"Edizione":2223
}

# Consumi finali interni per abitante -> OK
spec_n_cons = {
"Territorio":3,
"Tipo aggregato":34,
"Valutazione":9,
"Edizione":2223
}
# SUD
# Prodotto Interno Lordo ai prezzi di mercato per abitante

spec_s_pil = {
"Territorio":89,
"Tipo aggregato":27,
"Valutazione":9,
"Edizione":2223
}

# Reddito Disponibile per abitante -> OK
spec_s_red = {
"Territorio":89,
"Tipo aggregato":46,
"Valutazione":9,
"Edizione":2223
}

# Consumi finali interni per abitante -> OK
spec_s_cons = {
"Territorio":89,
"Tipo aggregato":34,
"Valutazione":9,
"Edizione":2223
}
def crea_df(ds,s,nome):
    c = ds.getvalues(s)
    ds = c.dataset(0)
    df = ds.to_data_frame('Tempo e frequenza')
    df.reset_index(level=0, inplace=True)
    df = df[['Tempo e frequenza', 'Value']]
    df.columns = ['Anno',nome]
    return df
df_pil_nord = crea_df(ds_redditi_pro_capite,spec_n_pil,'PIL pro capite')
df_red_nord = crea_df(ds_redditi_pro_capite,spec_n_red,'Reddito Disponibile pro capite')
df_con_nord = crea_df(ds_redditi_pro_capite,spec_n_cons,'Consumi pro capite')
df_n1 = pd.merge(df_pil_nord,df_red_nord, how='inner', on=['Anno', 'Anno'])
df_nord = pd.merge(df_n1,df_con_nord, how='inner', on=['Anno', 'Anno'])
df_nord
df_pil_sud = crea_df(ds_redditi_pro_capite,spec_s_pil,'PIL pro capite')
df_red_sud = crea_df(ds_redditi_pro_capite,spec_s_red,'Reddito Disponibile pro capite')
df_con_sud = crea_df(ds_redditi_pro_capite,spec_s_cons,'Consumi pro capite')
df_s1 = pd.merge(df_pil_sud,df_red_sud, how='inner', on=['Anno', 'Anno'])
df_sud = pd.merge(df_s1,df_con_sud, how='inner', on=['Anno', 'Anno'])
df_sud
df_filename = r'df_g5_nord.pkl'
df_fullpath = os.path.join(dir_df, df_filename)
df_nord.to_pickle(df_fullpath)

df_filename = r'df_g5_sud.pkl'
df_fullpath = os.path.join(dir_df, df_filename)
df_sud.to_pickle(df_fullpath)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13611491108071136, 'fraction_numerical': 0.021545827633378933, 'mean_word_length': 7.0578512396694215, 'pattern_counts': {'":': 24, '<': 5, '<?xml version=': 0, '>': 10, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '509629', 'license': 'Apache-2.0', 'n_tokens_mistral': 1336, 'n_tokens_neox': 1305, 'n_words': 225, 'path': 'G5_data_analysis.ipynb', 'repo_name': 'Cesaaar/od_la_grande_fuga', 'size': '2924'}