Spaces:
Sleeping
Sleeping
Update src/Analytics/AnalyseFinance.py
Browse files- src/Analytics/AnalyseFinance.py +29 -30
src/Analytics/AnalyseFinance.py
CHANGED
|
@@ -4,23 +4,6 @@
|
|
| 4 |
import pandas as pd
|
| 5 |
from datetime import date, timedelta
|
| 6 |
|
| 7 |
-
# ============================================================================
|
| 8 |
-
# CONSTANTES ET SEUILS
|
| 9 |
-
# ============================================================================
|
| 10 |
-
SEUILS = {
|
| 11 |
-
"taux_endettement_mensuel": {
|
| 12 |
-
"excellent": 25, "bon": 33, "acceptable": 40, "critique": 50
|
| 13 |
-
},
|
| 14 |
-
"taux_effort_epargne": {
|
| 15 |
-
"excellent": 20, "bon": 30, "acceptable": 40, "critique": 50
|
| 16 |
-
},
|
| 17 |
-
"reste_a_vivre_min": {
|
| 18 |
-
"excellent": 50000, "bon": 30000, "acceptable": 20000, "critique": 15000
|
| 19 |
-
},
|
| 20 |
-
"liquidite_min_ratio": 1.2,
|
| 21 |
-
"duree_courte_semaines": 6
|
| 22 |
-
}
|
| 23 |
-
|
| 24 |
|
| 25 |
# ============================================================================
|
| 26 |
# fonction de nettoyage robuste
|
|
@@ -36,32 +19,48 @@ def clean_currency_value(val):
|
|
| 36 |
return float(cleaned) if cleaned else 0.0
|
| 37 |
except (ValueError, AttributeError):
|
| 38 |
return 0.0
|
| 39 |
-
|
|
|
|
|
|
|
| 40 |
def clean_taux_value(val):
|
| 41 |
"""
|
| 42 |
Convertit un taux correctement.
|
| 43 |
-
Gère : "5,3" → 5.3 | "5.3" → 5.3 | "
|
| 44 |
"""
|
| 45 |
try:
|
| 46 |
if isinstance(val, str):
|
| 47 |
-
# Si c'est une string avec virgule : "5,3" → "5.3"
|
| 48 |
val = val.replace('%', '').replace(' ', '').replace(',', '.')
|
| 49 |
|
| 50 |
taux = float(val)
|
| 51 |
|
| 52 |
-
#
|
| 53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
except (ValueError, AttributeError, TypeError):
|
| 55 |
return 0.0
|
| 56 |
-
|
| 57 |
-
def clean_percentage_value(val):
|
| 58 |
-
"""
|
| 59 |
-
Alias de clean_taux_value pour plus de clarté
|
| 60 |
-
Convertit un pourcentage : "5,3%" → 5.3 | "5.3" → 5.3
|
| 61 |
-
"""
|
| 62 |
-
return clean_taux_value(val)
|
| 63 |
|
| 64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
# ============================================================================
|
| 66 |
# fonction de ncalcule du taux d'endettement et de mise à jour dans excel
|
| 67 |
# ============================================================================
|
|
|
|
| 4 |
import pandas as pd
|
| 5 |
from datetime import date, timedelta
|
| 6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
|
| 8 |
# ============================================================================
|
| 9 |
# fonction de nettoyage robuste
|
|
|
|
| 19 |
return float(cleaned) if cleaned else 0.0
|
| 20 |
except (ValueError, AttributeError):
|
| 21 |
return 0.0
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
# ✅ AJOUTEZ CETTE FONCTION ICI
|
| 25 |
def clean_taux_value(val):
|
| 26 |
"""
|
| 27 |
Convertit un taux correctement.
|
| 28 |
+
Gère : "5,3%" → 5.3 | "5.3%" → 5.3 | "5.3" → 5.3 | 53 → 5.3
|
| 29 |
"""
|
| 30 |
try:
|
| 31 |
if isinstance(val, str):
|
| 32 |
+
# Si c'est une string avec virgule : "5,3%" → "5.3"
|
| 33 |
val = val.replace('%', '').replace(' ', '').replace(',', '.')
|
| 34 |
|
| 35 |
taux = float(val)
|
| 36 |
|
| 37 |
+
# ✅ Si le taux semble anormalement élevé (ex: 53 au lieu de 5.3)
|
| 38 |
+
# On divise par 10
|
| 39 |
+
if taux > 20:
|
| 40 |
+
taux = taux / 10
|
| 41 |
+
|
| 42 |
+
return round(taux, 2) # Arrondi à 2 décimales
|
| 43 |
except (ValueError, AttributeError, TypeError):
|
| 44 |
return 0.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
|
| 46 |
+
# ============================================================================
|
| 47 |
+
# CONSTANTES ET SEUILS
|
| 48 |
+
# ============================================================================
|
| 49 |
+
SEUILS = {
|
| 50 |
+
"taux_endettement_mensuel": {
|
| 51 |
+
"excellent": 25, "bon": 33, "acceptable": 40, "critique": 50
|
| 52 |
+
},
|
| 53 |
+
"taux_effort_epargne": {
|
| 54 |
+
"excellent": 20, "bon": 30, "acceptable": 40, "critique": 50
|
| 55 |
+
},
|
| 56 |
+
"reste_a_vivre_min": {
|
| 57 |
+
"excellent": 50000, "bon": 30000, "acceptable": 20000, "critique": 15000
|
| 58 |
+
},
|
| 59 |
+
"liquidite_min_ratio": 1.2,
|
| 60 |
+
"duree_courte_semaines": 6
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
|
| 64 |
# ============================================================================
|
| 65 |
# fonction de ncalcule du taux d'endettement et de mise à jour dans excel
|
| 66 |
# ============================================================================
|