{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "3dbbced3-08b6-46c4-8b92-2b1f4b9628ce",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Braund, Mr. Owen Harris</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>A/5 21171</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17599</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C85</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>Heikkinen, Miss. Laina</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>STON/O2. 3101282</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
       "      <td>female</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>113803</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>C123</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Allen, Mr. William Henry</td>\n",
       "      <td>male</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>373450</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  \\\n",
       "0            1         0       3   \n",
       "1            2         1       1   \n",
       "2            3         1       3   \n",
       "3            4         1       1   \n",
       "4            5         0       3   \n",
       "\n",
       "                                                Name     Sex   Age  SibSp  \\\n",
       "0                            Braund, Mr. Owen Harris    male  22.0      1   \n",
       "1  Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.0      1   \n",
       "2                             Heikkinen, Miss. Laina  female  26.0      0   \n",
       "3       Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0      1   \n",
       "4                           Allen, Mr. William Henry    male  35.0      0   \n",
       "\n",
       "   Parch            Ticket     Fare Cabin Embarked  \n",
       "0      0         A/5 21171   7.2500   NaN        S  \n",
       "1      0          PC 17599  71.2833   C85        C  \n",
       "2      0  STON/O2. 3101282   7.9250   NaN        S  \n",
       "3      0            113803  53.1000  C123        S  \n",
       "4      0            373450   8.0500   NaN        S  "
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "df = pd.read_csv('Titanic-Dataset.csv')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "950451a2-9ddc-4fdc-8150-1816c8988f0c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "PassengerId      int64\n",
       "Survived         int64\n",
       "Pclass           int64\n",
       "Name            object\n",
       "Sex             object\n",
       "Age            float64\n",
       "SibSp            int64\n",
       "Parch            int64\n",
       "Ticket          object\n",
       "Fare           float64\n",
       "Cabin           object\n",
       "Embarked        object\n",
       "dtype: object"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "df92f088-4c88-4c25-a2d6-5722930707a8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>714.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>446.000000</td>\n",
       "      <td>0.383838</td>\n",
       "      <td>2.308642</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>0.523008</td>\n",
       "      <td>0.381594</td>\n",
       "      <td>32.204208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>257.353842</td>\n",
       "      <td>0.486592</td>\n",
       "      <td>0.836071</td>\n",
       "      <td>14.526497</td>\n",
       "      <td>1.102743</td>\n",
       "      <td>0.806057</td>\n",
       "      <td>49.693429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.420000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>223.500000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>20.125000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>7.910400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>446.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>28.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>14.454200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>668.500000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>31.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>891.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>8.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>512.329200</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       PassengerId    Survived      Pclass         Age       SibSp  \\\n",
       "count   891.000000  891.000000  891.000000  714.000000  891.000000   \n",
       "mean    446.000000    0.383838    2.308642   29.699118    0.523008   \n",
       "std     257.353842    0.486592    0.836071   14.526497    1.102743   \n",
       "min       1.000000    0.000000    1.000000    0.420000    0.000000   \n",
       "25%     223.500000    0.000000    2.000000   20.125000    0.000000   \n",
       "50%     446.000000    0.000000    3.000000   28.000000    0.000000   \n",
       "75%     668.500000    1.000000    3.000000   38.000000    1.000000   \n",
       "max     891.000000    1.000000    3.000000   80.000000    8.000000   \n",
       "\n",
       "            Parch        Fare  \n",
       "count  891.000000  891.000000  \n",
       "mean     0.381594   32.204208  \n",
       "std      0.806057   49.693429  \n",
       "min      0.000000    0.000000  \n",
       "25%      0.000000    7.910400  \n",
       "50%      0.000000   14.454200  \n",
       "75%      0.000000   31.000000  \n",
       "max      6.000000  512.329200  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "f1028bf5-40bd-49b2-b112-7223959b693e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "PassengerId      0\n",
       "Survived         0\n",
       "Pclass           0\n",
       "Name             0\n",
       "Sex              0\n",
       "Age            177\n",
       "SibSp            0\n",
       "Parch            0\n",
       "Ticket           0\n",
       "Fare             0\n",
       "Cabin          687\n",
       "Embarked         2\n",
       "dtype: int64"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "bd1a47e2-537d-4358-a368-c52f9d2879be",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Columns dropped: ['Cabin']\n",
      "Remaining columns: Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',\n",
      "       'Parch', 'Ticket', 'Fare', 'Embarked'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "missing_percentage = df.isnull().mean() * 100\n",
    "threshold = 30\n",
    "columns_to_drop = missing_percentage[missing_percentage > threshold].index\n",
    "df = df.drop(columns=columns_to_drop)\n",
    "print(f\"Columns dropped: {list(columns_to_drop)}\")\n",
    "print(f\"Remaining columns: {df.columns}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "a9f18618-7c08-4f20-a83d-f3023d3868d3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>108</td>\n",
       "      <td>1</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>523</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>190</td>\n",
       "      <td>0</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>596</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>353</td>\n",
       "      <td>0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>669</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>272</td>\n",
       "      <td>0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>49</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>15</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>472</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  Name  Sex   Age  SibSp  Parch  Ticket  \\\n",
       "0            1         0       3   108    1  22.0      1      0     523   \n",
       "1            2         1       1   190    0  38.0      1      0     596   \n",
       "2            3         1       3   353    0  26.0      0      0     669   \n",
       "3            4         1       1   272    0  35.0      1      0      49   \n",
       "4            5         0       3    15    1  35.0      0      0     472   \n",
       "\n",
       "      Fare  Embarked  \n",
       "0   7.2500         2  \n",
       "1  71.2833         0  \n",
       "2   7.9250         2  \n",
       "3  53.1000         2  \n",
       "4   8.0500         2  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.preprocessing import LabelEncoder\n",
    "label_encoder = LabelEncoder()\n",
    "\n",
    "for column in df.select_dtypes(include=['object']).columns:\n",
    "    df[column] = label_encoder.fit_transform(df[column])\n",
    "\n",
    "(df.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "21f70280-6011-4c0e-ac0e-0bce066cdced",
   "metadata": {},
   "outputs": [],
   "source": [
    "for column in df.select_dtypes(include=['object']).columns:\n",
    "    mode_value = df[column].mode()[0]  \n",
    "    df[column] = df[column].fillna(mode_value)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "3cda9804-04d0-491f-82f7-0d1c2f2f8095",
   "metadata": {},
   "outputs": [],
   "source": [
    "for column in df.select_dtypes(include=['float64']).columns:\n",
    "    mean_value = df[column].mean() \n",
    "    df[column] = df[column].fillna(mean_value) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "9bacc5db-c4c3-415f-b49d-80721b78c8de",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "PassengerId    0\n",
       "Survived       0\n",
       "Pclass         0\n",
       "Name           0\n",
       "Sex            0\n",
       "Age            0\n",
       "SibSp          0\n",
       "Parch          0\n",
       "Ticket         0\n",
       "Fare           0\n",
       "Embarked       0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "b35362e8-aaf6-4ff5-9776-163e9dc0bc7d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>108</td>\n",
       "      <td>1</td>\n",
       "      <td>22.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>523</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>190</td>\n",
       "      <td>0</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>596</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>353</td>\n",
       "      <td>0</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>669</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>272</td>\n",
       "      <td>0</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>49</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>15</td>\n",
       "      <td>1</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>472</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>886</th>\n",
       "      <td>887</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>548</td>\n",
       "      <td>1</td>\n",
       "      <td>27.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>101</td>\n",
       "      <td>13.0000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>887</th>\n",
       "      <td>888</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>303</td>\n",
       "      <td>0</td>\n",
       "      <td>19.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>14</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>888</th>\n",
       "      <td>889</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>413</td>\n",
       "      <td>0</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>675</td>\n",
       "      <td>23.4500</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>889</th>\n",
       "      <td>890</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>81</td>\n",
       "      <td>1</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>890</th>\n",
       "      <td>891</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>220</td>\n",
       "      <td>1</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>466</td>\n",
       "      <td>7.7500</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>891 rows × 11 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     PassengerId  Survived  Pclass  Name  Sex        Age  SibSp  Parch  \\\n",
       "0              1         0       3   108    1  22.000000      1      0   \n",
       "1              2         1       1   190    0  38.000000      1      0   \n",
       "2              3         1       3   353    0  26.000000      0      0   \n",
       "3              4         1       1   272    0  35.000000      1      0   \n",
       "4              5         0       3    15    1  35.000000      0      0   \n",
       "..           ...       ...     ...   ...  ...        ...    ...    ...   \n",
       "886          887         0       2   548    1  27.000000      0      0   \n",
       "887          888         1       1   303    0  19.000000      0      0   \n",
       "888          889         0       3   413    0  29.699118      1      2   \n",
       "889          890         1       1    81    1  26.000000      0      0   \n",
       "890          891         0       3   220    1  32.000000      0      0   \n",
       "\n",
       "     Ticket     Fare  Embarked  \n",
       "0       523   7.2500         2  \n",
       "1       596  71.2833         0  \n",
       "2       669   7.9250         2  \n",
       "3        49  53.1000         2  \n",
       "4       472   8.0500         2  \n",
       "..      ...      ...       ...  \n",
       "886     101  13.0000         2  \n",
       "887      14  30.0000         2  \n",
       "888     675  23.4500         2  \n",
       "889       8  30.0000         0  \n",
       "890     466   7.7500         1  \n",
       "\n",
       "[891 rows x 11 columns]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "ac88bd6b-1a35-4226-a449-d30212160e7f",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "# Function to replace outliers with NaN in a single column\n",
    "def replace_outliers_with_nan(column):\n",
    "    Q1 = column.quantile(0.25)  # First quartile\n",
    "    Q3 = column.quantile(0.75)  # Third quartile\n",
    "    IQR = Q3 - Q1               # Interquartile range\n",
    "    lower_bound = Q1 - 1.5 * IQR\n",
    "    upper_bound = Q3 + 1.5 * IQR\n",
    "    # Replace outliers with NaN\n",
    "    return column.where((column >= lower_bound) & (column <= upper_bound), np.nan)\n",
    "\n",
    "# Apply the function to each column in the DataFrame\n",
    "for col in df.columns:\n",
    "    df[col] = replace_outliers_with_nan(df[col])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "f901856c-0023-4064-91b6-7cf33c783dc6",
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "f2870781-f513-4530-b91a-1b64aad7ff5a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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hg0bJh07dkwCIG3evFnjtbdu3ZKGDBkiubu7S6amplKVKlWkHj16SNu3b39lbQDUi5GRkWRvby81b95cmjhxonT16tVC+z9/63lSUpIUHBws+fj4SFZWVpKdnZ3k5+cnbd26VeN1cXFxUvfu3SUbGxsJgPpW74Jbis+cOVPovV5063n37t2lP//8U2rSpIlkZmYm+fj4SNu2bSv0+nPnzkl+fn6SUqmUvLy8pCVLlhR5zBfV9vyt5wW2bNkiNW/eXDIzM5McHR2lQYMGSffv39fYZ+jQoZKVlVWhml50S3xRVqxYIfn4+EimpqaSm5ubNHbsWOnRo0dFHq8kt56/bF+VSiV9+eWXkre3t2RmZiY1b95c2rNnjzR06FDJ29tbvd/27dulzp07S66ururzO2bMGCk2Nla9z7x586TWrVtL9vb2koWFheTj4yN98cUXUk5OjsZ7Fuf7+6LvSVF/Rnl5edLMmTMld3d3ycLCQurYsaN0/fp1ycnJSXr//fc1Xp+eni7NmDFDql27tqRUKiVnZ2fptddek77++mt1nQXf+aKGV1izZo30+uuvS05OTpKZmZlUq1Ytafr06VJqauqL/yCo0uHcWEQl8Msvv6B37944evQo2rZtq+9yiCqMlJQUODg4YN68eS+9LEtUFthnh+gFnjx5ovE8Pz8fy5cvh62tLVq0aKGnqogM3/O/OwDUoyEXTAVCVJ7YZ4foBSZMmIAnT57A398f2dnZ2LlzJ44fP44vv/xS57dpE8nJli1bsGHDBnTr1g3W1tY4evQofv75Z3Tu3JktoqQXDDtEL9CxY0csXrwYe/bsQVZWFmrXro3ly5drdO4kosKaNGkCExMTLFy4EGlpaepOy/PmzdN3aVRJsc8OERERyRr77BAREZGsMewQERGRrLHPDsTIuDExMbCxsdHpkPpERERUdiRJQnp6Ojw9PWFk9OL2G4YdiKHvq1Wrpu8yiIiISAv37t1D1apVX7idYQdQDyl+79492Nra6rkaIiIiKo60tDRUq1btlVODMOzg6TxHtra2DDtEREQVzKu6oLCDMhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJmom+CyAi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ERER6YpWYSc6Oho1atQotN7b2xvR0dGlLoqIiIhIV7QKO66urrh06VKh9RcvXoSTk1OpiyIiIiLSFa3CzsCBA/HBBx/g0KFDyM/PR35+Pg4ePIiJEydiwIABuq6RiIiISGta3Y31+eef486dO+jUqRNMTMQhVCoVhgwZwj47REREZFC0CjtKpRJbtmzB559/josXL8LCwgKNGzeGt7e3rusjIiIiKhWtwk6BunXrom7durqqhYiIiEjntAo7+fn52LBhAw4cOICEhASoVCqN7QcPHtRJcURERESlpVXYmThxIjZs2IDu3bujUaNGUCgUuq6LiIiISCe0CjubN2/G1q1b0a1bN13XQ0RERKRTWt16rlQqUbt2bV3XQkRERKRzWoWdqVOn4ttvv4UkSbquh4iIiEintLqMdfToURw6dAh79+5Fw4YNYWpqqrF9586dOimOiIiIqLS0Cjv29vbo3bu3rmshIiIi0jmtws769et1XQcRERFRmdCqzw4A5OXl4a+//sKaNWuQnp4OAIiJiUFGRobOiiMiIiIqLa1adu7evYsuXbogOjoa2dnZeOutt2BjY4MFCxYgOzsbISEhuq6TiIiISCtatexMnDgRLVu2xKNHj2BhYaFe37t3bxw4cEBnxRERERGVllYtO3///TeOHz8OpVKpsb569ep48OCBTgojIiIi0gWtWnZUKhXy8/MLrb9//z5sbGxKXRQRERGRrmgVdjp37oylS5eqnysUCmRkZGD27NmcQoKIiIgMilaXsRYvXozAwEA0aNAAWVlZePfddxEREQFnZ2f8/PPPuq6RiIiISGtahZ2qVavi4sWL2Lx5My5duoSMjAyMHDkSgwYN0uiwTERERKRvWoUdADAxMcHgwYN1WQsRERGRzmkVdjZu3PjS7UOGDNGqGCIiIiJd0yrsTJw4UeN5bm4uHj9+DKVSCUtLS4YdIiIiMhha3Y316NEjjSUjIwPh4eFo164dOygTERGRQdF6bqzn1alTB1999VWhVh8iIiIifdJZ2AFEp+WYmBhdHpKIiIioVLTqs7N7926N55IkITY2FitWrEDbtm11UhgRERGRLmgVdnr16qXxXKFQwMXFBR07dsTixYt1URcRERGRTmgVdlQqla7rICIiIioTOu2zQ0RERGRotGrZmTJlSrH3XbJkiTZvQURERKQTWoWdf/75B//8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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.histplot(df['Age'], bins=30, kde=True, color='blue')\n",
    "plt.title('Age Distribution of Passengers')\n",
    "plt.xlabel('Age')\n",
    "plt.ylabel('Frequency')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "56a1f778-c036-4e3f-bafd-508043f72ac3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHHCAYAAABZbpmkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAANMFJREFUeJzt3XtYVWXe//HP5iyHvQkUUAOPldLkCQ2ZjipKpqaJqUWKjjm/MbGMshkmk06jdrbSxqketSYdzcasNCvDU0+SGo6mlpYNpqNyUIMtkCCwfn807KcdaIob9mb5fl3Xvi7Xfd9rre/aRny818liGIYhAAAAk/JydwEAAAANibADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbAD4IKMGzdObdu2bdB9WCwWPfLII2cds2HDBlksFr399tsNWounO5fvCrjYEHaAJmTXrl0aMWKE2rRpo4CAALVu3Vr9+/fXSy+95O7SLjpffvmlxo8fr3bt2ikgIEDBwcHq1q2bHnzwQf373/92d3kAfsbH3QUAODebN29Wnz59FBMTo4kTJyoqKkqHDh3S559/rhdeeEFTpkxxS12vvvqqqqur3bJvd3n11Vc1adIkNW/eXCkpKerUqZMqKyu1e/duvfHGG5ozZ45+/PFHeXt7u7tUACLsAE3GX/7yF9lsNm3btk2hoaFOfQUFBS7bT2lpqYKCgs55vK+vr8v23RRs3rxZkyZN0jXXXKNVq1YpJCTEqf/ZZ5/VX/7yFzdV51qnTp2Sn5+fvLw4CYCmjf+CgSbiu+++05VXXlkr6EhSRESE488HDhyQxWLRokWLao375fUcjzzyiCwWi7766ivdcccduuSSS3TttdfqmWeekcVi0ffff19rGxkZGfLz89MPP/wgyfmandOnTyssLEzjx4+vtZ7dbldAQIAeeOABSVJFRYVmzJihuLg42Ww2BQUF6brrrtP69evP41upraqqSn/+858VFRWloKAg3XLLLTp06JCjPzMzU76+viosLKy17u9//3uFhobq1KlTZ9z+o48+KovFosWLF9cKOpIUEBCgxx9/vNaszpYtW3TTTTfJZrMpMDBQN9xwgz777DOnMTV/H/v379e4ceMUGhoqm82m8ePHq6yszGlseXm57rvvPrVo0UIhISG65ZZb9J///KfOmg8fPqzf/e53ioyMlL+/v6688kotWLDAaUzNNU9Lly7V9OnT1bp1awUGBsput5/xuwCaCsIO0ES0adNGOTk52r17t8u3fdttt6msrEwzZ87UxIkTNXLkSFksFr311lu1xr711lsaMGCALrnkklp9vr6+uvXWW7Vy5UpVVFQ49a1cuVLl5eUaPXq0pJ/Cz2uvvaYbb7xRTz75pB555BEVFhYqKSlJO3bsqPex/OUvf9Hq1av1xz/+Uffcc4/Wrl2rxMRE/fjjj5KkMWPGqLKyUsuWLXNar6KiQm+//baSk5MVEBBQ57bLysq0bt063Xjjjbr00kvPuaZ169bp+uuvl91uV2ZmpmbOnKmioiL17dtXW7durTV+5MiROnnypGbNmqWRI0dq0aJFevTRR53G3HXXXZozZ44GDBig2bNny9fXV4MGDaq1rfz8fPXu3VuffPKJ0tLS9MILL6hjx46aMGGC5syZU2v8448/rtWrV+uBBx7QzJkz5efnd87HCXgsA0CT8PHHHxve3t6Gt7e3kZCQYDz44IPGRx99ZFRUVDiNy83NNSQZCxcurLUNSUZmZqZjOTMz05Bk3H777bXGJiQkGHFxcU5tW7duNSQZb7zxhqMtNTXVaNOmjWP5o48+MiQZ77//vtO6N998s9G+fXvHcmVlpVFeXu405ocffjAiIyON3/3ud2etuy7r1683JBmtW7c27Ha7o/2tt94yJBkvvPCC07HFx8c7rb9ixQpDkrF+/foz7mPnzp2GJGPq1Km1+o4fP24UFhY6PjXHVl1dbVx22WVGUlKSUV1d7RhfVlZmtGvXzujfv7+jrebv45fHf+uttxrh4eGO5R07dhiSjLvvvttp3B133FHru5owYYLRsmVL49ixY05jR48ebdhsNqOsrMwwjP/7/tq3b+9oA8yCmR2giejfv7+ys7N1yy23aOfOnXrqqaeUlJSk1q1b67333rugbf/hD3+o1TZq1Cjl5OTou+++c7QtW7ZM/v7+Gjp06Bm31bdvXzVv3txp5uSHH37Q2rVrNWrUKEebt7e3Y9agurpaJ06cUGVlpXr27Knt27fX+1jGjh3rdHppxIgRatmypT744AOnMVu2bHE6tsWLFys6Olo33HDDGbddc0onODi4Vl/79u3VokULx6fm72THjh369ttvdccdd+j48eM6duyYjh07ptLS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79Sen5+vqKioRq+HsAMAAFzKz89PcXFxysrKcrRVV1crKytLCQkJjV4Pz9kBAAAul56ertTUVPXs2VNXX3215syZo9LSUo0fP77RayHsAAAAlxs1apQKCws1Y8YM5eXlqVu3bvrwww9rXbTcGAg7AAA0MfV9onFjS0tLU1pamrvL4JodAABgboQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgarwuAgCAJuZ41tJG3V94v9HnNX7Tpk16+umnlZOTo6NHj+qdd97RsGHDGqa4c8DMDgAAcKnS0lJ17dpV8+bNc3cpkpjZAQAALjZw4EANHDjQ3WU4MLMDAABMjbADAABMjbADAABMjbADAABMjbADAABMjbuxAACAS5WUlGj//v2O5dzcXO3YsUNhYWGKiYlp9Ho8ZmZn9uzZslgsmjp1qqPt1KlTmjx5ssLDwxUcHKzk5GTl5+c7rXfw4EENGjRIgYGBioiI0LRp01RZWdnI1QMAgBpffPGFunfvru7du0uS0tPT1b17d82YMcMt9XjEzM62bdv0t7/9TV26dHFqv++++7R69WotX75cNptNaWlpGj58uD777DNJUlVVlQYNGqSoqCht3rxZR48e1dixY+Xr66uZM2e641AAAGhw5/tE48Z24403yjAMd5fh4PaZnZKSEqWkpOjVV1/VJZdc4mgvLi7W//zP/+i5555T3759FRcXp4ULF2rz5s36/PPPJUkff/yxvvrqK7355pvq1q2bBg4cqMcff1zz5s1TRUWFuw4JAAB4ELeHncmTJ2vQoEFKTEx0as/JydHp06ed2jt16qSYmBhlZ2dLkrKzs3XVVVcpMjLSMSYpKUl2u1179uw54z7Ly8tlt9udPgAAwJzcehpr6dKl2r59u7Zt21arLy8vT35+fgoNDXVqj4yMVF5enmPMz4NOTX9N35nMmjVLjz766AVWDwAAmgK3zewcOnRI9957rxYvXqyAgIBG3XdGRoaKi4sdn0OHDjXq/gEAQONxW9jJyclRQUGBevToIR8fH/n4+Gjjxo168cUX5ePjo8jISFVUVKioqMhpvfz8fEVFRUmSoqKiat2dVbNcM6Yu/v7+slqtTh8AANzJky7o9SSu+F7cFnb69eunXbt2aceOHY5Pz549lZKS4vizr6+vsrKyHOvs27dPBw8eVEJCgiQpISFBu3btUkFBgWPM2rVrZbVaFRsb2+jHBADA+fL29pYkbqw5g7KyMkmSr69vvbfhtmt2QkJC9Jvf/MapLSgoSOHh4Y72CRMmKD09XWFhYbJarZoyZYoSEhLUu3dvSdKAAQMUGxurMWPG6KmnnlJeXp6mT5+uyZMny9/fv9GPCQCA8+Xj46PAwEAVFhbK19dXXl5uv3fIIxiGobKyMhUUFCg0NNQRCuvDI56zcybPP/+8vLy8lJycrPLyciUlJenll1929Ht7e2vVqlWaNGmSEhISFBQUpNTUVD322GNurBoAgHNnsVjUsmVL5ebm6vvvv3d3OR4nNDT0rJemnAuLwUlC2e122Ww2FRcXc/0OgPP2wbYSd5eAn7m5V7C7S6iX6upqTmX9gq+v71lndM7197dHz+wAAHCx8PLyavS7ky8WnBgEAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACm5taw89e//lVdunSR1WqV1WpVQkKC1qxZ4+g/deqUJk+erPDwcAUHBys5OVn5+flO2zh48KAGDRqkwMBARUREaNq0aaqsrGzsQwEAAB7KrWHn0ksv1ezZs5WTk6MvvvhCffv21dChQ7Vnzx5J0n333af3339fy5cv18aNG3XkyBENHz7csX5VVZUGDRqkiooKbd68Wa+//roWLVqkGTNmuOuQAACAh7EYhmG4u4ifCwsL09NPP60RI0ao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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(x='Sex', hue='Survived', data=df, palette='coolwarm')\n",
    "plt.title('Survival by Gender')\n",
    "plt.xlabel('Gender')\n",
    "plt.ylabel('Count')\n",
    "plt.legend(title='Survived', loc='upper right')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "47503987-2279-4b80-80c7-f79e862d1080",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\USER\\AppData\\Local\\Temp\\ipykernel_812\\1006776694.py:1: FutureWarning: \n",
      "\n",
      "Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `x` variable to `hue` and set `legend=False` for the same effect.\n",
      "\n",
      "  sns.boxplot(x='Survived', y='Fare', data=df, palette='muted')\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHHCAYAAACle7JuAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPwlJREFUeJzt3XlclWX+//E3ixxI4IiKoIjkTtqooxZSWuZoVFoumGuKZs1YZqNWpt8xzb65TuaW2kw5bmWppZaVmeOS5YK5VppYZqOjglYIuAHC9fvDH+frEXBB8D43vp6Px3nUue7rXOdzAwfeXvd1neNljDECAACwIW+rCwAAACgqggwAALAtggwAALAtggwAALAtggwAALAtggwAALAtggwAALAtggwAALAtggwAALAtggxgc3PnzpWXl5d++eWXEn+uPn366NZbb3Xd/+WXX+Tl5aXXXnutxJ9bkl5++WV5eXndkOe62I0+T09z6fe9JHh5eenll18u0edA6USQwU0l749+Qbdhw4ZZXZ7Wr1/vVpPD4VBYWJhatmypsWPH6sSJE8XyPGfOnNHLL7+s9evXF8t4xcmTa7sRvvvuO3Xu3FlRUVHy9/dXRESE2rRpo+nTp1tdGuCRfK0uALDCK6+8ourVq7u13X777RZVk9+zzz6rO+64Qzk5OTpx4oQ2bdqkUaNG6fXXX9fixYvVqlUrV99evXqpW7ducjgcVz3+mTNnNHr0aElSy5Ytr/pxb731lnJzc6+6f1FcrrYRI0Z4ROAsKZs2bdJ9992natWq6cknn1R4eLgOHz6sLVu2aOrUqRo4cKAldd2I7ztQVAQZ3JQefPBBNW3atFjHPH36tMqWLVssY7Vo0UKdO3d2a9u9e7fuv/9+xcfHa+/evapcubIkycfHRz4+PsXyvIXJO7cyZcqU6PNcia+vr3x9S++vrTFjxsjpdOqbb75RuXLl3I4dP3682J7nWn9Wrf6+A5fDpSXgIv/5z3/09NNPq27dugoICFCFChX06KOP5lt/kneJ6ssvv9TTTz+tSpUqqWrVqq7jK1euVIsWLVS2bFkFBQWpbdu22rNnz3XV1rBhQ02ZMkUnT57UG2+8ka+Wi2vctm2b4uLiVLFiRQUEBKh69ep6/PHHJV1Y7xEaGipJGj16tOsyVt76hD59+igwMFAHDhzQQw89pKCgIPXs2dN1rLC1EpMnT1ZUVJQCAgJ077336vvvv3c73rJlywJnfy4e80q1FbRG5vz58/rf//1f1axZUw6HQ7feeqv+53/+R5mZmW79br31VrVr105ff/217rzzTvn7+6tGjRqaP39+wV/wQlzuPOfMmSMvLy/t3Lkz3+PGjh0rHx8fHTlypNCxDxw4oPr16+cLMZJUqVIl1//nrdmZO3duvn6XrjXJ+5rt3btXPXr0UEhIiJo3b67XXntNXl5e+s9//pNvjOHDh8vPz0+pqamS3L9H2dnZKl++vPr27Zvvcenp6fL399fzzz8vScrKytLIkSPVpEkTOZ1OlS1bVi1atNC6desK/RoA14ogg5tSWlqafv31V7ebJH3zzTfatGmTunXrpmnTpql///5as2aNWrZsqTNnzuQb5+mnn9bevXs1cuRI1yWPBQsWqG3btgoMDNSECRP00ksvae/evWrevPl1L8jt3LmzAgIC9MUXXxTa5/jx47r//vv1yy+/aNiwYZo+fbp69uypLVu2SJJCQ0M1a9YsSVLHjh21YMECLViwQJ06dXKNcf78ecXFxalSpUp67bXXFB8ff9m65s+fr2nTpmnAgAEaPny4vv/+e7Vq1UopKSnXdH5XU9ulnnjiCY0cOVKNGzfW5MmTde+992rcuHHq1q1bvr4//fSTOnfurDZt2mjSpEkKCQlRnz59rjpkXuk8874/7777br7Hvvvuu2rZsqUiIiIKHT8qKkrbt2/PFwKLw6OPPqozZ85o7NixevLJJ9WlSxd5eXlp8eLF+fouXrxY999/v0JCQvIdK1OmjDp27Kjly5crKyvL7djy5cuVmZnp+tqnp6fr7bffVsuWLTVhwgS9/PLLOnHihOLi4rRr165iP0fcpAxwE5kzZ46RVODNGGPOnDmT7zGbN282ksz8+fPzjdO8eXNz/vx5V3tGRoYpV66cefLJJ93GSE5ONk6nM1/7pdatW2ckmSVLlhTap2HDhiYkJCRfLQcPHjTGGLNs2TIjyXzzzTeFjnHixAkjyYwaNSrfsYSEBCPJDBs2rMBjUVFRrvsHDx40kkxAQID573//62pPTEw0kszgwYNdbffee6+59957rzjm5WobNWqUufjX1q5du4wk88QTT7j1e/75540ks3btWldbVFSUkWQ2bNjgajt+/LhxOBzmueeey/dcF7uW8+zevbupUqWK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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.boxplot(x='Survived', y='Fare', data=df, palette='muted')\n",
    "plt.title('Fare Distribution by Survival')\n",
    "plt.xlabel('Survived (0 = No, 1 = Yes)')\n",
    "plt.ylabel('Fare')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bc809968-91dc-4108-ae82-eee04767b634",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
