From 210b79242da56f4f9af72dd7ec2ec65c2d1b2d13 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 23 Sep 2023 15:02:14 +0100 Subject: [PATCH] Added coercing of u-value columns to numeric --- model_data/simulation_system/core/DataProcessor.py | 5 +++++ model_data/simulation_system/generate_rdsap_change.py | 5 ++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/model_data/simulation_system/core/DataProcessor.py b/model_data/simulation_system/core/DataProcessor.py index 19b0a37e..824fcf99 100644 --- a/model_data/simulation_system/core/DataProcessor.py +++ b/model_data/simulation_system/core/DataProcessor.py @@ -511,6 +511,11 @@ class DataProcessor: differenced the ending subtract the starting value, which is useful for modelling the difference responces """ + # We ensure that the u value columns are co-erced to a numerical format + uvalue_columns = [col for col in df.columns if "thermal_transmittance" in col] + for uvalue_col in uvalue_columns: + df[uvalue_col] = pd.to_numeric(df[uvalue_col]) + columns = { x for x in df.columns if x not in FIXED_FEATURES + FIXED_DESCRIPTON_MAPPED_FEATURES + [ "RDSAP_CHANGE", "HEAT_DEMAND_CHANGE", "CARBON_CHANGE", "SAP_STARTING", "HEAT_DEMAND_STARTING", diff --git a/model_data/simulation_system/generate_rdsap_change.py b/model_data/simulation_system/generate_rdsap_change.py index 56bf86a6..003fa046 100644 --- a/model_data/simulation_system/generate_rdsap_change.py +++ b/model_data/simulation_system/generate_rdsap_change.py @@ -18,7 +18,7 @@ from model_data.simulation_system.core.DataProcessor import DataProcessor from utils.s3 import save_dataframe_to_s3_parquet, read_from_s3, read_dataframe_from_s3_parquet from recommendations.rdsap_tables import england_wales_age_band_lookup from recommendations.recommendation_utils import ( - get_wall_u_value, get_roof_u_value, get_floor_u_value, estimate_perimeter_2_rooms, estimate_perimeter, + get_wall_u_value, get_roof_u_value, get_floor_u_value, estimate_perimeter, get_wall_type ) @@ -292,8 +292,7 @@ def make_uvalues(df): floor_area = x[f"TOTAL_FLOOR_AREA{suffix}"] n_rooms = x["NUMBER_HABITABLE_ROOMS"] - perimeters[f"estimated_perimeter{suffix}"] = estimate_perimeter_2_rooms(floor_area) if n_rooms <= 2 else \ - estimate_perimeter(floor_area, n_rooms) + perimeters[f"estimated_perimeter{suffix}"] = estimate_perimeter(floor_area, n_rooms) floor_type = "suspended" if x["is_suspended"] else "solid" wall_type = get_wall_type(**x)