import pandas as pd REQUIRED_COLUMNS = [ "engine_rpm", "lub_oil_pressure", "fuel_pressure", "coolant_pressure", "lub_oil_temp", "coolant_temp", ] def validate_input(df: pd.DataFrame) -> None: missing_cols = [col for col in REQUIRED_COLUMNS if col not in df.columns] if missing_cols: raise ValueError(f"Missing required columns: {missing_cols}") def handle_missing_values(df: pd.DataFrame) -> pd.DataFrame: return df.fillna(df.median(numeric_only=True)) def ensure_column_order(df: pd.DataFrame) -> pd.DataFrame: return df[REQUIRED_COLUMNS] def preprocess_input(df: pd.DataFrame) -> pd.DataFrame: df = df.copy() df.columns = [col.strip().lower().replace(" ", "_") for col in df.columns] validate_input(df) df = handle_missing_values(df) df = ensure_column_order(df) return df