import streamlit as st import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt from streamlit_extras.stylable_container import stylable_container # Charger les données try: df = pd.read_csv('bank.csv') except FileNotFoundError: st.error("Le fichier 'bank.csv' n'a pas été trouvé. Veuillez vous assurer qu'il se trouve dans le même répertoire que le script.") st.stop() st.set_page_config(page_title='Analyse Bancaire Professionnelle', page_icon='🏦', layout="wide") # --- Styles CSS Personnalisés --- st.markdown( """ """, unsafe_allow_html=True, ) with stylable_container(key="main_container", css_styles=""" padding: 2rem 3rem; border-radius: 12px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); background-color: #fff; """): # --- Titre du Dashboard --- st.title('Analyse Approfondie des Données Bancaires') # --- Filtre sur le type de job --- job_filter = st.selectbox('Filtrer par métier', pd.unique(df['job'])) df_filtered = df[df['job'] == job_filter] # --- Création d'indicateurs clés (KPIs) --- avg_age = np.mean(df_filtered['age']) count_married = int(df_filtered[df_filtered['marital'] == 'married']['marital'].count()) avg_balance = np.mean(df_filtered['balance']) kpi1, kpi2, kpi3 = st.columns(3) with kpi1: st.markdown(f"
Âge Moyen
{round(avg_age)} ans
Clients Mariés
{count_married} clients
Solde Moyen
$ {round(avg_balance, 2)}