From 68efa9141f86926b7fac30f885424cd5e0024500 Mon Sep 17 00:00:00 2001
From: Baptiste Bauvin <baptiste.bauvin@lis-lab.fr>
Date: Thu, 9 Mar 2023 17:08:40 -0500
Subject: [PATCH] Feature_imp concat

---
 .../result_analysis/feature_importances.py      | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/summit/multiview_platform/result_analysis/feature_importances.py b/summit/multiview_platform/result_analysis/feature_importances.py
index df74b53b..ec233dc2 100644
--- a/summit/multiview_platform/result_analysis/feature_importances.py
+++ b/summit/multiview_platform/result_analysis/feature_importances.py
@@ -72,22 +72,31 @@ def publish_feature_importances(feature_importances, directory, database_name,
             feature_std = feature_std.loc[feature_importance.index]
 
 
-            importance_dfs.append(feature_importance.set_index(pd.Index([view_name+"-"+ind for ind in list(feature_importance.index)])))
+            importance_dfs.append(feature_importance.set_index(pd.Index([view_name+"-"+ind for ind in list(feature_importance.index)])).fillna(0))
             # importance_dfs.append(pd.DataFrame(index=[view_name+"-br"],
             #                                    columns=feature_importance.columns,
             #                                    data=np.zeros((1, len(
             #                                        feature_importance.columns)))))
             std_dfs.append(feature_std.set_index(pd.Index([view_name+"-"+ind
                                                            for ind
-                                                           in list(feature_std.index)])))
+                                                           in list(feature_std.index)])).fillna(0))
             # std_dfs.append(pd.DataFrame(index=[view_name + "-br"],
             #                                    columns=feature_std.columns,
             #                                    data=np.zeros((1, len(
             #                                        feature_std.columns)))))
     if "mv" in feature_importances:
-        importance_dfs.append(feature_importances["mv"].loc[(feature_importances["mv"] != 0).any(axis=1), :])
+        importance_dfs.append(feature_importances["mv"].loc[(feature_importances["mv"] != 0).any(axis=1), :].fillna(0))
     if len(importance_dfs)>0:
-        feature_importances_df = pd.concat(importance_dfs)
+        print(importance_dfs)
+        indices=None
+        for df in importance_dfs:
+            if indices is None:
+                indices = list(df.index)
+            else:
+                indices += [ind for ind in df.index if ind not in indices]
+        feat_imp_df = pd.DataFrame(index=indices)
+        feature_importances_df = pd.concat([feat_imp_df]+importance_dfs, axis=1)
+        print(feature_importances_df)
         feature_importances_df = feature_importances_df/feature_importances_df.sum(axis=0)
         if len(std_dfs)>0:
             feature_std_df = pd.concat(std_dfs)
-- 
GitLab