klydekushy commited on
Commit
c346ea1
·
verified ·
1 Parent(s): 945124e

Update src/Analytics/AnalyseFinance.py

Browse files
Files changed (1) hide show
  1. 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 | "19,68" → 19.68
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
- # Retourner le taux tel quel (plus de division automatique)
53
- return round(taux, 2)
 
 
 
 
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
  # ============================================================================