File size: 859 Bytes
259a6e5 ec2b8ce 259a6e5 ec2b8ce 259a6e5 ec2b8ce 259a6e5 ec2b8ce 259a6e5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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
|