lapse-risk-predictor / preprocessing.py
dschandra's picture
Upload 5 files
fbde87b verified
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