Update src/streamlit_app.py
Browse files- src/streamlit_app.py +19 -4
src/streamlit_app.py
CHANGED
|
@@ -328,14 +328,29 @@ def load_data(csv_path=CSV_PATH, meta_path=META_PATH):
|
|
| 328 |
|
| 329 |
df, meta_df = load_data()
|
| 330 |
|
| 331 |
-
|
| 332 |
-
# Sidebar filters & UI
|
| 333 |
# -------------------------
|
| 334 |
st.sidebar.title("Feature Explorer - Advanced + SHAP")
|
| 335 |
-
|
| 336 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 337 |
numeric_cols = df.select_dtypes(include=[np.number]).columns.tolist()
|
| 338 |
|
|
|
|
| 339 |
# -------------------------
|
| 340 |
# Main tabs
|
| 341 |
# -------------------------
|
|
|
|
| 328 |
|
| 329 |
df, meta_df = load_data()
|
| 330 |
|
| 331 |
+
|
| 332 |
+
# Sidebar filters & UI (safe against minimal metadata)
|
| 333 |
# -------------------------
|
| 334 |
st.sidebar.title("Feature Explorer - Advanced + SHAP")
|
| 335 |
+
|
| 336 |
+
# Handle metadata safely — not all runs have detailed feature info
|
| 337 |
+
if "source_type" in meta_df.columns:
|
| 338 |
+
feat_types = sorted(meta_df["source_type"].dropna().unique().tolist())
|
| 339 |
+
selected_types = st.sidebar.multiselect("Feature type", feat_types, default=feat_types)
|
| 340 |
+
filtered_meta = meta_df[meta_df["source_type"].isin(selected_types)]
|
| 341 |
+
else:
|
| 342 |
+
st.sidebar.warning("Metadata file has no feature-level info. Showing all features.")
|
| 343 |
+
selected_types = []
|
| 344 |
+
filtered_meta = pd.DataFrame({
|
| 345 |
+
"feature_name": df.columns,
|
| 346 |
+
"source_type": "synthetic",
|
| 347 |
+
"formula": "",
|
| 348 |
+
"remarks": ""
|
| 349 |
+
})
|
| 350 |
+
|
| 351 |
numeric_cols = df.select_dtypes(include=[np.number]).columns.tolist()
|
| 352 |
|
| 353 |
+
|
| 354 |
# -------------------------
|
| 355 |
# Main tabs
|
| 356 |
# -------------------------
|