Eric2mangel commited on
Commit
f59bf48
·
verified ·
1 Parent(s): 25f5b6f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -5
app.py CHANGED
@@ -152,17 +152,35 @@ if df is not None and X is not None:
152
  st.warning("⚠️ Aucune variable disponible pour l'analyse. Veuillez ne pas tout exclure.")
153
  st.stop()
154
 
155
- preprocess = ColumnTransformer(transformers=[
156
- ("num", StandardScaler(), num_cols),
157
- ("cat", OneHotEncoder(drop="first", handle_unknown="ignore", sparse_output=False), cat_cols)
158
- ])
 
 
 
 
 
 
 
 
159
 
160
  X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=TEST_SIZE, random_state=RANDOM_STATE)
 
 
 
 
 
 
 
161
  X_train_proc = preprocess.fit_transform(X_train)
162
 
163
  # Vérification que les données transformées ne sont pas vides
164
  if X_train_proc.shape[0] == 0 or X_train_proc.shape[1] == 0:
165
- st.error("❌ Erreur : Les données transformées sont vides. Vérifiez votre fichier CSV.")
 
 
 
166
  st.stop()
167
 
168
  feature_names = preprocess.get_feature_names_out()
 
152
  st.warning("⚠️ Aucune variable disponible pour l'analyse. Veuillez ne pas tout exclure.")
153
  st.stop()
154
 
155
+ # Construction du préprocesseur seulement avec les colonnes qui existent
156
+ transformers = []
157
+ if num_cols:
158
+ transformers.append(("num", StandardScaler(), num_cols))
159
+ if cat_cols:
160
+ transformers.append(("cat", OneHotEncoder(drop="first", handle_unknown="ignore", sparse_output=False), cat_cols))
161
+
162
+ if not transformers:
163
+ st.warning("⚠️ Aucune colonne à traiter.")
164
+ st.stop()
165
+
166
+ preprocess = ColumnTransformer(transformers=transformers)
167
 
168
  X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=TEST_SIZE, random_state=RANDOM_STATE)
169
+
170
+ # Vérification qu'il y a assez de données pour le split
171
+ if len(X_train) == 0 or len(X_test) == 0:
172
+ st.error("❌ Pas assez de données pour créer les ensembles d'entraînement et de test.")
173
+ st.info(f"Données disponibles : {len(X)} lignes. Minimum requis : 2 lignes.")
174
+ st.stop()
175
+
176
  X_train_proc = preprocess.fit_transform(X_train)
177
 
178
  # Vérification que les données transformées ne sont pas vides
179
  if X_train_proc.shape[0] == 0 or X_train_proc.shape[1] == 0:
180
+ st.error("❌ Erreur : Les données transformées sont vides.")
181
+ st.info(f"Shape après transformation : {X_train_proc.shape}")
182
+ st.info(f"Variables numériques : {num_cols}")
183
+ st.info(f"Variables catégorielles : {cat_cols}")
184
  st.stop()
185
 
186
  feature_names = preprocess.get_feature_names_out()