Untitled

 avatar
unknown
plain_text
a month ago
2.1 kB
9
Indexable
import pandas as pd

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



file = 'IF20250115.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)
Leave a Comment