diff --git a/modnet/featurizers/utils.py b/modnet/featurizers/utils.py index 2297b6ef..3d54863e 100644 --- a/modnet/featurizers/utils.py +++ b/modnet/featurizers/utils.py @@ -3,12 +3,13 @@ __all__ = ("clean_df",) -def clean_df(df): +def clean_df(df, drop_allnan: bool = True): """Cleans dataframe by dropping missing values, replacing NaN's and infinities and selecting only columns containing numerical data. Args: df (pd.DataFrame): the dataframe to clean. + drop_allnan: if True, clean_df will remove features that are fully NaNs. Returns: pandas.DataFrame: the cleaned dataframe. @@ -16,7 +17,8 @@ def clean_df(df): """ df = df.select_dtypes(include="number") - df = df.dropna(axis=1, how="all") + if drop_allnan: + df = df.dropna(axis=1, how="all") df = df.replace([np.inf, -np.inf, np.nan], np.nan) return df diff --git a/modnet/models/vanilla.py b/modnet/models/vanilla.py index 77119444..bb145796 100644 --- a/modnet/models/vanilla.py +++ b/modnet/models/vanilla.py @@ -846,6 +846,11 @@ def _restore_model(self): fill_value=-1, ).fit(np.zeros((1, self.n_feat))), ) + if not hasattr(self, "targets_groups"): + self.targets_groups = [x for subl in self.targets for x in subl] + LOG.warning( + "Installed modnet version (v>=0.4.0) does not match loaded model (v<0.4.0) and may result in errors. Please retrain or change your modnet version !" + ) def save(self, filename: str) -> None: """Save the `MODNetModel` to filename: diff --git a/requirements.txt b/requirements.txt index 16a28429..6c265778 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ tensorflow==2.11.0 tensorflow-probability==0.19.0 pandas==1.5.2 pymatgen==2023.1.30 -matminer==0.8.0 +matminer==0.9.0 numpy>=1.20 scikit-learn==1.2.0 emmet-core<0.57 # Can remove after https://github.com/materialsproject/api/issues/819