From 788ac31190d6f8ef4e0a73cd61e14d6434f40557 Mon Sep 17 00:00:00 2001 From: Primoz Date: Fri, 8 Jul 2022 10:40:45 +0000 Subject: [PATCH] Bug fix: if df has no rows write an empty zscore file. --- src/features/standardization/main.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/features/standardization/main.py b/src/features/standardization/main.py index b6026d0b..f9d797a9 100644 --- a/src/features/standardization/main.py +++ b/src/features/standardization/main.py @@ -21,17 +21,20 @@ if provider_key == "cr": windows_features_data = pd.read_csv(sensor_data_files["windows_features_data"]) excluded_columns = ['local_segment', 'local_segment_label', 'local_segment_start_datetime', 'local_segment_end_datetime', prefix + "level_1"] - windows_features_data.loc[:, ~windows_features_data.columns.isin(excluded_columns)] = \ - StandardScaler().fit_transform(windows_features_data.loc[:, ~windows_features_data.columns.isin(excluded_columns)]) - - windows_features_data.to_csv(snakemake.output[1], index=False) - - if provider_main["WINDOWS"]["COMPUTE"] and "SECOND_ORDER_FEATURES" in provider_main["WINDOWS"]: - so_features_names = provider_main["WINDOWS"]["SECOND_ORDER_FEATURES"] - windows_so_features_data = extract_second_order_features(windows_features_data, so_features_names, prefix) - windows_so_features_data.to_csv(snakemake.output[0], index=False) + + if windows_features_data.empty: + windows_features_data.to_csv(snakemake.output[1], index=False) + windows_features_data.to_csv(snakemake.output[0], index=False) else: - pd.DataFrame().to_csv(snakemake.output[0], index=False) + windows_features_data.loc[:, ~windows_features_data.columns.isin(excluded_columns)] = \ + StandardScaler().fit_transform(windows_features_data.loc[:, ~windows_features_data.columns.isin(excluded_columns)]) + + windows_features_data.to_csv(snakemake.output[1], index=False) + + if provider_main["WINDOWS"]["COMPUTE"] and "SECOND_ORDER_FEATURES" in provider_main["WINDOWS"]: + so_features_names = provider_main["WINDOWS"]["SECOND_ORDER_FEATURES"] + windows_so_features_data = extract_second_order_features(windows_features_data, so_features_names, prefix) + windows_so_features_data.to_csv(snakemake.output[0], index=False) else: pass #To-Do for the rest of the sensors. \ No newline at end of file