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
# print("cache_dir is '{}'".format(istat.cache_dir()))
Out[1]:
In [2]:
dir_df = os.path.join(os.path.abspath(''),'stg')
In [3]:
istat_area_pop = istat.area('POP')
In [4]:
#istat_area_pop.datasets()
In [5]:
istat_dataset_popolazione = istat_area_pop.dataset('DCIS_DECESSI')
istat_dataset_popolazione
Out[5]:
In [6]:
# istat_dataset_popolazione.dimensions()
In [7]:
# Numero di Morti per Classi di Età nel 2015 Nord
spec_n = {
"Territorio":3,
"Tipo dato":4,
"Sesso":3,
"Paese di nascita":118,
"Titolo di studio":12,
"Stato civile":8,
"Tempo": 2186
}
In [8]:
# Numero di Morti per Classi di Età nel 2015 Sud
spec_s = {
"Territorio":89,
"Tipo dato":4,
"Sesso":3,
"Paese di nascita":118,
"Titolo di studio":12,
"Stato civile":8,
"Tempo": 2186
}
In [9]:
def get_df(spec, value):
c = istat_dataset_popolazione.getvalues(spec)
ds = c.dataset(0)
df = ds.to_data_frame('Paese di cittadinanza')
df.reset_index(level=0, inplace=True)
df = df[df['Paese di cittadinanza']=='Italia']
df.columns = ['Paese di cittadinanza','Eta', value]
df=df[(df['Eta']=='fino a 4 anni') |
(df['Eta']=='5-9 anni') |
(df['Eta']=='10-14 anni') |
(df['Eta']=='15-19 anni') |
(df['Eta']=='20-24 anni') |
(df['Eta']=='25-29 anni') |
(df['Eta']=='30-34 anni') |
(df['Eta']=='35-39 anni') |
(df['Eta']=='40-44 anni') |
(df['Eta']=='45-49 anni') |
(df['Eta']=='50-54 anni') |
(df['Eta']=='55-59 anni') |
(df['Eta']=='60-64 anni') |
(df['Eta']=='65-69 anni') |
(df['Eta']=='70-74 anni') |
(df['Eta']=='75-79 anni') |
(df['Eta']=='80-84 anni') |
(df['Eta']=='85-89 anni')
]
df = df.groupby('Eta',as_index=False)
df = df.agg({value : np.sum})
return df
In [10]:
df_n = get_df(spec_n, 'Nord')
df_s = get_df(spec_s, 'Sud')
In [11]:
df = pd.merge(df_s,df_n, how='inner', on=['Eta', 'Eta'])
In [12]:
df.Eta.replace(['fino a 4 anni','5-9 anni'], ['00-04 anni','05-09 anni'], inplace=True)
In [13]:
df = df.sort_values(by=['Eta'], ascending=[1])
In [14]:
df_filename = r'df_morte.pkl'
df_fullpath = os.path.join(dir_df, df_filename)
df.to_pickle(df_fullpath)
In [15]:
# writer = pd.ExcelWriter('Eta.xlsx')
# df.to_excel(writer,'eta')
# writer.save()