Untitled
unknown
plain_text
10 months ago
2.2 kB
4
Indexable
def Elabora(T1, T2, T3, COD, Anni):
T1_long = T1.melt(id_vars=['Anno'], var_name='Codice', value_name='Produzione')
T3_long = T3.melt(id_vars=['Country Name', 'Country Code'], var_name='Anno', value_name='Popolazione')
T3_long['Anno'] = T3_long['Anno'].astype(int)
T1_filtrato = T1_long[T1_long['Codice'].isin(COD) & T1_long['Anno'].isin(Anni)]
T3_filtrato = T3_long[T3_long['Country Code'].isin(COD) & T3_long['Anno'].isin(Anni)]
T2.columns = [int(col) if isinstance(col, int) or str(col).isdigit() else col for col in T2.columns]
T2_filtrato = T2[T2['Country Code'].isin(COD)]
anni_disponibili = [anno for anno in Anni if anno in T2.columns]
R1 = pd.merge(T1_filtrato, T3_filtrato, left_on=['Codice', 'Anno'], right_on=['Country Code', 'Anno'], how='inner')
R1['Rapporto'] = R1['Produzione'] / R1['Popolazione']
R1 = R1[['Codice', 'Anno', 'Rapporto']]
indicatori = [
'Indice di Gini',
'Percentuale ricchezza posseduta dal più ricco 10%',
'Percentuale ricchezza posseduta dal più ricco 20%',
'Percentuale ricchezza posseduta dal più povero 10%',
'Percentuale ricchezza posseduta dal più povero 20%'
]
statistiche = []
for indicatore in indicatori:
subset = T2_filtrato[T2_filtrato['Series Name'] == indicatore]
if anni_disponibili:
subset_anni = subset[anni_disponibili]
massimo = subset_anni.max().max()
media = subset_anni.mean().mean()
statistiche.append({
'Indicatore': indicatore,
'Massimo': massimo,
'Media': media
})
R2 = pd.DataFrame(statistiche)
return R1, R2
import pandas as pd
file = 'IF20250115_fittizio_aggiornato.xlsx'
T1 = pd.read_excel(file, sheet_name='Foglio1')
T2 = pd.read_excel(file, sheet_name='Foglio2')
T3 = pd.read_excel(file, sheet_name='Foglio3')
COD = ['FRA', 'DEU', 'ITA']
Anni = [1960, 1961, 1974, 1975]
R1, R2 = Elabora(T1, T2, T3, COD, Anni)
R1.to_excel('R1.xlsx', index=False)
R2.to_excel('R2.xlsx', index=False)
'R1.xlsx', 'R2.xlsx'
Editor is loading...
Leave a Comment