commune_metropole = pd.read_csv('data/commune_metropole.csv', encoding='utf-8')

commune_metropole.shape

commune_metropole.head()

insee = pd.read_csv('data/insee.csv',
                    sep=";",                       # séparateur du fichier
                    dtype={'COM' : np.dtype(str)}, # On force la colonne COM est être en string
                    encoding='utf-8')              # encoding

insee.shape

insee.info()

insee.head()

pd.set_option('display.max_columns', 30) # Changer le nombre de colonnnes afficher dans le notebook

insee.head()

"""
Explanation: Evolution d'indicateurs dans les communes :
Documentation : https://github.com/anthill/open-moulinette/blob/master/insee/documentation.md
Chargement de nos données :
End of explanation
"""


data = insee.merge(commune_metropole, on='COM', how='left')

data.shape

data.head()

"""
Explanation: Jointure entre 2 fichiers :
End of explanation
"""


# Clefs pour regrouper par ville 
key = ['CODGEO',
        'LIBGEO',
        'COM',
        'LIBCOM',
        'REG',
        'DEP',
        'ARR',
        'CV',
        'ZE2010',
        'UU2010',
        'TRIRIS',
        'REG2016',
        'status_rank']
#        'is_metropole']

# Autres valeurs 
features = [col for col in data.columns if col not in key]
# Nom des colonnes qui ne sont pas dans les colonnes de key

len(features)

# On cherche à regrouper nos données sur le nom de la métropole :
# On somme tous nos indicateurs
metropole_sum = data[features][data.is_metropole == 1].groupby('metropole_name').sum().reset_index()
metropole_sum.shape

metropole_sum

voiture_colonnes = ['metropole_name' , 'C11_ACTOCC15P_VOIT', 'P11_ACTOCC15P']

voiture = metropole_sum[voiture_colonnes].copy()
voiture

"""
Explanation: Il y a bien les colonnes "status", "mean_altitude", "superficie", "is_metropole" et "metropole_name"
Nombre de personnes qui utilisent la voiture pour aller travailler en métropole (pourcentage) :
End of explanation
"""


#voiture['pourcentage_car_11'] = (voiture["C11_ACTOCC15P_VOIT"] / voiture["P11_ACTOCC15P"])*100

#voiture

#voiture['pourcentage_car_12'] = (voiture["C12_ACTOCC15P_VOIT"] / voiture["P12_ACTOCC15P"])*100
#voiture

"""
Explanation: Il va falloir re-travailler la données pour pouvoir donner le pourcentage de personnes qui prenne la voiture en 2011 / 2012 ainsi qu'avoir la progression
End of explanation
"""


def augmentation(depart, arrive):
    """
    Calcul de l'augmentation entre 2 valeurs :
    # ( ( valeur d'arrivée - valeur de départ ) / valeur de départ ) x 100
    """
    return ((arrive - depart) / depart) * 100

voiture['augmentation'] = augmentation(voiture['pourcentage_car_11'], voiture['pourcentage_car_12'])

# Les métropole qui utilise le moins la voiture pour aller travailler :
voiture.sort_values('augmentation')

"""
Explanation: Calculer une augmentation :
End of explanation
"""


transp_com_colonnes = ['metropole_name' , 'C11_ACTOCC15P_TCOM', 'P11_ACTOCC15P']

transp_com = metropole_sum[transp_com_colonnes].copy()
transp_com

#transp_com['pourcentage_trans_com_12'] = (transp_com["C12_ACTOCC15P_TCOM"] / transp_com["P12_ACTOCC15P"])*100
#transp_com

transp_com['pourcentage_trans_com_11'] = (transp_com["C11_ACTOCC15P_TCOM"] / transp_com["P11_ACTOCC15P"])*100
transp_com.sort_values('pourcentage_trans_com_11')

transp_com['augmentation'] = augmentation(transp_com['pourcentage_trans_com_11'], transp_com['pourcentage_trans_com_12'])

transp_com.sort_values('augmentation')

"""
Explanation: Transport en commun en pourcentage :
End of explanation
"""


transp_velo_colonnes = ['metropole_name' , 'C11_ACTOCC15P_DROU', 'P11_ACTOCC15P']

transp_velo = metropole_sum[transp_velo_colonnes].copy()
transp_velo

#transp_velo['pourcentage_trans_com_12'] = (transp_velo["C12_ACTOCC15P_TCOM"] / transp_velo["P12_ACTOCC15P"])*100
#transp_velo

transp_velo['pourcentage_trans_com_11'] = (transp_velo["C11_ACTOCC15P_DROU"] / transp_velo["P11_ACTOCC15P"])*100
transp_velo

"""
Explanation: Transport vélo :
End of explanation
"""


data.head()

bdx = data[data.LIBCOM == "Bordeaux"]

bdx.tail()

bdx.LIBGEO.unique()

bdx[bdx.LIBGEO.str.contains("Cauderan")][['P11_POP15P_CELIB', 'P11_F1529', 'P11_H1529', 'P11_POP']].sum()

bdx[bdx.LIBGEO.str.contains("Chartron")][['P11_POP15P_CELIB', 'P11_F1529', 'P11_H1529', 'P11_POP']].sum()

bdx[bdx.LIBGEO.str.contains("Capucins-Victoire")][['P11_POP15P_CELIB', 'P11_F1529', 'P11_H1529', 'P11_POP']].sum()

bdx[bdx.LIBGEO.str.contains("Chartron")][['P11_POP15P_CELIB', 'P12_POP15P_CELIB', 'P12_F1529', 'P12_H1529']].sum()

commune_metropole.head()

"""
Explanation: Célib :  Age / Uniquement à Bordeaux par Quartier :
End of explanation
"""


