
import pandas as pd

# Load dataset
df = pd.read_csv('Titanic-Dataset (1).csv')

# Handle missing values
df['Age'].fillna(df['Age'].median(), inplace=True)
df['Embarked'].fillna(df['Embarked'].mode()[0], inplace=True)
df.drop(columns=['Cabin'], inplace=True)

# Cap outliers using IQR method
def cap_outliers_iqr(df, col):
    Q1 = df[col].quantile(0.25)
    Q3 = df[col].quantile(0.75)
    IQR = Q3 - Q1
    lower = Q1 - 1.5 * IQR
    upper = Q3 + 1.5 * IQR
    df[col] = df[col].clip(lower, upper)

cap_outliers_iqr(df, 'Age')
cap_outliers_iqr(df, 'Fare')

# Save cleaned data
df.to_csv('Titanic_Cleaned.csv', index=False)
