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