File size: 1,006 Bytes
fbde87b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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

import pandas as pd
from datetime import datetime

def encode_payment_mode(mode):
    return {"Annual": 0, "Semi-Annual": 1, "Quarterly": 2, "Monthly": 3}.get(mode, -1)

def calculate_months_since(date_str):
    try:
        delta = datetime.now() - datetime.strptime(date_str, "%Y-%m-%d")
        return delta.days // 30
    except:
        return 0

def preprocess_input(data):
    return pd.DataFrame([{
        "months_since_last_payment": calculate_months_since(data["last_premium_paid_date"]),
        "payment_mode_encoded": encode_payment_mode(data["payment_mode"]),
        "policy_term": data["policy_term"],
        "policy_age": data["policy_age"]
    }])

def preprocess_dataframe(df):
    df["months_since_last_payment"] = df["last_premium_paid_date"].apply(calculate_months_since)
    df["payment_mode_encoded"] = df["payment_mode"].apply(encode_payment_mode)
    X = df[["months_since_last_payment", "payment_mode_encoded", "policy_term", "policy_age"]]
    y = df["risk"]
    return X, y