Titanic - Exploratory analysis
Create New

Titanic - Exploratory analysis

Project period

06/02/2018 - 07/01/2018

Views

171

8



Titanic - Exploratory analysis
Titanic - Exploratory analysis

The sinking of the RMS Titanic is one of the most infamous shipwrecks in history. On April 15, 1912, during her maiden voyage, the Titanic sank after colliding with an iceberg, killed 1503 out of 2222 passengers and crew. This sensational tragedy shocked the international community and led to better safety regulations for ships. One of the reasons that the shipwreck led to such loss of life was that there were not enough lifeboat equipment for the passengers and crew. In particular, we are going to apply the tools of machine learning to predict which passengers survived the tragedy.

Why: Problem statement

Titanic was constructed with sixteen watertight compartments doctrine. Each compartment had doors that were designed to close automatically if the water level rose above a certain height. The doors could also be electronically closed from the bridge. Titanic was able to stay afloat if any two compartments or the first four became flooded. Shortly after Titanic hit the iceberg it was revealed that the first six compartments were flooded. The bottom of the ship contains boiler room, turbine engine room, and reciprocating engine room. Open front bulkheads were there.

The cargo holds and boiler rooms flooded after the hull is pierced by an iceberg. Since the bulkheads were not closed, water pours over the top of the deck above flooding the entire hull.

How: Solution description

The general analysis says the majority of the passengers traveled in titanic died. This occurred because of three major reasons which are lifeboat equipment were not sufficient which led to chaos and confusion and there was no legislation. The second reason was the ship sank because of the broken bottom, and the bulkheads were not closed. The bottom was broken because of hitting the iceberg and the hull was not strong enough to bare the hit. And the third reason was the rescue boats were not on time which made the people rush for boarding. So this analysis clearly shows the major reasons for the accident.

The tool I used for analysis is python. Python is increasingly being used as a scientific language. Basic libraries of python are Numpy, pandas, and Matplotlib.  I started analyzing all the features with respect to the target. Example: I have drawn the graph of Age vs Survived, gender vs Survived, Passenger class vs Survived, Survival at the Embark town, Analysis based on the Honorific title. 
 
I analyzed that, 61.616% of people sank and lost their lives. And 38.383% were survived. Due to this accident, the majority of the people died. Here the Men, Women, and Children are calculated by the gender and Age features. The percentage of male survived after travel is 74.20. The percentage of female survived after travel is 18.89. From the graph, we can see that the woman show a high rate of survival. 
 
 
The port of embarkation accounts very less for the passenger’s survival. In P class 1, 62.96% of the people survived. In P class 2, 47.28% of the people survived. In P class 3, 24.23% of the people survived. So we found that most of the people were got survived in P Class 1.
 
Nearly 120 people in the P-class 1, 170 people in the P-class 2 and 350 people in the P-class 3 are from the Southampton. Around 85 people in the P-class 1, 20 people in the P-class 2 and 70 people in the P-class 3 are from the Cherbourg. Around 3 people in the P-class 1, 7 people in the P-class 2 and 80 people in the P-class 3 are from the Queenstown.
 
From my prediction, the data inferred is  Out of 2222 passengers, 1503 have been killed. That is 67.64% of the people died. From the data analysis, the prediction says, if 5000 passengers traveled, the death count might be 3350 to attain 67.64%.

How is it different from competition

In particular, I applied the tools of machine learning to predict which passengers survived the tragedy.

Who are your customers

Ship manufacturer company can use this project. Once they studied about the sinking, they will concentrate more in building good bulkheads.

Data Scientists can use this for study and literature survey.

Project Phases and Schedule

Phase 1: Data Collection

Phase 2: Data Analysis

Resources Required

Tool required: Anaconda - Python 3.6 version

Download:
Project Code Code copy
/* Your file Name : Titanic_project.ipynb */
/* Your coding Language : python */
/* Your code snippet start here */
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "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": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "titanic=sns.load_dataset('titanic')\n",
    "train = pd.read_csv('train.csv')\n",
    "test = pd.read_csv('test.csv')\n",
    "combine = [train, test]\n",
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    0.616162\n",
       "1    0.383838\n",
       "Name: Survived, dtype: float64"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = train\n",
    "df.Survived.value_counts(normalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1074a0b00>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEKCAYAAAAIO8L1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAD6lJREFUeJzt3XuwXWV9xvHvAxGtolxMoJiEhqkZK50qypFS6UytOB2w1TBWEG9EzEz8gzo6trW0nam0tlOdWhFvTDNFTZxWQCwldRiVAam29UKiyLWWlCKcBkmQi6L1EvrrH/s95Rhekh3IOvuQ8/3M7Nlrvetda/82kzkP77q8O1WFJEk722/SBUiS5icDQpLUZUBIkroMCElSlwEhSeoyICRJXQaEJKnLgJAkdRkQkqSuRZMu4LFYvHhxrVixYtJlSNLjyubNm++uqiW76/e4DogVK1awadOmSZchSY8rSb41Tj9PMUmSugwISVKXASFJ6jIgJEldBoQkqcuAkCR1GRCSpC4DQpLUZUBIkroe109S7w3H/v6GSZegeWjzX50x6RKkiXMEIUnqMiAkSV0GhCSpy4CQJHUZEJKkLgNCktRlQEiSugwISVKXASFJ6jIgJEldBoQkqcuAkCR1GRCSpC4DQpLUNWhAJLktyfVJrk2yqbUdmuSKJLe090Nae5K8P8mWJNclef6QtUmSdm0uRhC/XlXHVNVUWz8buLKqVgJXtnWAk4GV7bUWOH8OapMkPYJJnGJaBaxvy+uBU2a1b6iRLwMHJzliAvVJkhg+IAr4XJLNSda2tsOr6k6A9n5Ya18K3DFr3+nW9lOSrE2yKcmm7du3D1i6JC1sQ//k6AlVtTXJYcAVSf59F33TaauHNVStA9YBTE1NPWy7JGnvGHQEUVVb2/s24FLgOOCumVNH7X1b6z4NLJ+1+zJg65D1SZIe2WABkeQpSZ46swz8BnADsBFY3bqtBi5ryxuBM9rdTMcD98+cipIkzb0hTzEdDlyaZOZz/r6qPpPkGuDiJGuA24FTW//LgZcCW4AfAGcOWJskaTcGC4iquhV4bqf9O8CJnfYCzhqqHknSnvFJaklSlwEhSeoyICRJXQaEJKnLgJAkdRkQkqQuA0KS1GVASJK6DAhJUpcBIUnqMiAkSV0GhCSpy4CQJHUZEJKkLgNCktRlQEiSugwISVKXASFJ6jIgJEldBoQkqcuAkCR1GRCSpC4DQpLUZUBIkroMCElSlwEhSeoyICRJXQaEJKlr8IBIsn+Sryf5dFs/KslXktyS5KIkB7T2J7b1LW37iqFrkyQ9srkYQbwFuHnW+ruBc6tqJXAvsKa1rwHurapnAue2fpKkCRk0IJIsA34T+Nu2HuDFwCWty3rglLa8qq3Ttp/Y+kuSJmDoEcT7gLcD/9vWnw7cV1U72vo0sLQtLwXuAGjb72/9JUkTMFhAJPktYFtVbZ7d3OlaY2ybfdy1STYl2bR9+/a9UKkkqWfIEcQJwMuT3AZcyOjU0vuAg5Msan2WAVvb8jSwHKBtPwi4Z+eDVtW6qpqqqqklS5YMWL4kLWyDBURV/WFVLauqFcDpwFVV9Vrg88ArW7fVwGVteWNbp22/qqoeNoKQJM2NSTwH8QfA25JsYXSN4YLWfgHw9Nb+NuDsCdQmSWoW7b7LY1dVVwNXt+VbgeM6fX4InDoX9UiSds8nqSVJXQaEJKnLgJAkdRkQkqQuA0KS1GVASJK6DAhJUpcBIUnqMiAkSV0GhCSpy4CQJHUZEJKkLgNCktRlQEiSugwISVKXASFJ6jIgJEldc/KLcpL23O1/9kuTLkHz0JF/cv2cfZYjCElSlwEhSeoyICRJXQaEJKnLgJAkdRkQkqQuA0KS1DVWQCS5cpw2SdK+Y5cPyiV5EvBkYHGSQ4C0TU8DnjFwbZKkCdrdk9RvAt7KKAw281BAfBf40IB1SZImbJcBUVXnAecleXNVfWCOapIkzQNjzcVUVR9I8kJgxex9qmrDI+3TTk99AXhi2+eSqnpHkqOAC4FDga8Br6+qHyd5IrABOBb4DvCqqrrt0XwpSdJjN+5F6o8D7wF+FXhBe03tZrcfAS+uqucCxwAnJTkeeDdwblWtBO4F1rT+a4B7q+qZwLmtnyRpQsadzXUKOLqqatwDt74PtNUntFcBLwZe09rXA+cA5wOr2jLAJcAHk2RPPlOStPeM+xzEDcDP7unBk+yf5FpgG3AF8J/AfVW1o3WZBpa25aXAHQBt+/3A0/f0MyVJe8e4I4jFwE1Jvsro1BEAVfXyXe1UVQ8CxyQ5GLgUeHavW3vPLrb9vyRrgbUARx555FjFS5L23LgBcc5j+ZCqui/J1cDxwMFJFrVRwjJga+s2DSwHppMsAg4C7ukcax2wDmBqasrTT5I0kHHvYvrnPT1wkiXAT1o4/AzwEkYXnj8PvJLRnUyrgcvaLhvb+pfa9qu8/iBJkzNWQCT5Hg+d7jmA0QXn71fV03ax2xHA+iT7M7rWcXFVfTrJTcCFSf4c+DpwQet/AfDxJFsYjRxO3+NvI0naa8YdQTx19nqSU4DjdrPPdcDzOu239vatqh8Cp45TjyRpeI9qNteq+kdGt6tKkvZR455iesWs1f0YPRfh9QFJ2oeNexfTy2Yt7wBuY/RgmyRpHzXuNYgzhy5EkjS/jDsX07IklybZluSuJJ9Ksmzo4iRJkzPuReqPMnpO4RmMpsT4p9YmSdpHjRsQS6rqo1W1o70+BiwZsC5J0oSNGxB3J3ldm3xv/ySvY/SbDZKkfdS4AfFG4DTg28CdjKbC8MK1JO3Dxr3N9Z3A6qq6FyDJoYx+QOiNQxUmSZqscUcQz5kJB4CquofONBqSpH3HuAGxX5JDZlbaCGLc0Yck6XFo3D/yfw38W5JLGE2xcRrwF4NVJUmauHGfpN6QZBOjCfoCvKKqbhq0MknSRI19mqgFgqEgSQvEo5ruW5K07zMgJEldBoQkqcuAkCR1GRCSpC4DQpLUZUBIkroMCElSlwEhSeoyICRJXQaEJKnLgJAkdRkQkqQuA0KS1DVYQCRZnuTzSW5OcmOSt7T2Q5NckeSW9n5Ia0+S9yfZkuS6JM8fqjZJ0u4NOYLYAfxuVT0bOB44K8nRwNnAlVW1EriyrQOcDKxsr7XA+QPWJknajcECoqrurKqvteXvATcDS4FVwPrWbT1wSlteBWyokS8DByc5Yqj6JEm7NifXIJKsAJ4HfAU4vKruhFGIAIe1bkuBO2btNt3adj7W2iSbkmzavn37kGVL0oI2eEAkORD4FPDWqvrurrp22uphDVXrqmqqqqaWLFmyt8qUJO1k0IBI8gRG4fB3VfUPrfmumVNH7X1ba58Gls/afRmwdcj6JEmPbMi7mAJcANxcVe+dtWkjsLotrwYum9V+Rrub6Xjg/plTUZKkubdowGOfALweuD7Jta3tj4B3ARcnWQPcDpzatl0OvBTYAvwAOHPA2iRJuzFYQFTVv9C/rgBwYqd/AWcNVY8kac/4JLUkqcuAkCR1GRCSpC4DQpLUZUBIkroMCElSlwEhSeoyICRJXQaEJKnLgJAkdRkQkqQuA0KS1GVASJK6DAhJUpcBIUnqMiAkSV0GhCSpy4CQJHUZEJKkLgNCktRlQEiSugwISVKXASFJ6jIgJEldBoQkqcuAkCR1GRCSpC4DQpLUNVhAJPlIkm1JbpjVdmiSK5Lc0t4Pae1J8v4kW5Jcl+T5Q9UlSRrPkCOIjwEn7dR2NnBlVa0ErmzrACcDK9trLXD+gHVJksYwWEBU1ReAe3ZqXgWsb8vrgVNmtW+okS8DByc5YqjaJEm7N9fXIA6vqjsB2vthrX0pcMesftOtTZI0IfPlInU6bdXtmKxNsinJpu3btw9cliQtXHMdEHfNnDpq79ta+zSwfFa/ZcDW3gGqal1VTVXV1JIlSwYtVpIWsrkOiI3A6ra8GrhsVvsZ7W6m44H7Z05FSZImY9FQB07yCeBFwOIk08A7gHcBFydZA9wOnNq6Xw68FNgC/AA4c6i6JEnjGSwgqurVj7DpxE7fAs4aqhZJ0p6bLxepJUnzjAEhSeoyICRJXQaEJKnLgJAkdRkQkqQuA0KS1GVASJK6DAhJUpcBIUnqMiAkSV0GhCSpy4CQJHUZEJKkLgNCktRlQEiSugwISVKXASFJ6jIgJEldBoQkqcuAkCR1GRCSpC4DQpLUZUBIkroMCElSlwEhSeoyICRJXQaEJKnLgJAkdc2rgEhyUpJvJtmS5OxJ1yNJC9m8CYgk+wMfAk4GjgZeneToyVYlSQvXvAkI4DhgS1XdWlU/Bi4EVk24JklasOZTQCwF7pi1Pt3aJEkTsGjSBcySTls9rFOyFljbVh9I8s1Bq1pYFgN3T7qI+SDvWT3pEvTT/Lc54x29P5V77OfG6TSfAmIaWD5rfRmwdedOVbUOWDdXRS0kSTZV1dSk65B25r/NyZhPp5iuAVYmOSrJAcDpwMYJ1yRJC9a8GUFU1Y4kvwN8Ftgf+EhV3TjhsiRpwZo3AQFQVZcDl0+6jgXMU3ear/y3OQGpeth1YEmS5tU1CEnSPGJAyClONG8l+UiSbUlumHQtC5EBscA5xYnmuY8BJ026iIXKgJBTnGjeqqovAPdMuo6FyoCQU5xI6jIgNNYUJ5IWHgNCY01xImnhMSDkFCeSugyIBa6qdgAzU5zcDFzsFCeaL5J8AvgS8Kwk00nWTLqmhcQnqSVJXY4gJEldBoQkqcuAkCR1GRCSpC4DQpLUZUBIQJI/TnJjkuuSXJvkl/fCMV++t2bHTfLA3jiOtCe8zVULXpJfAd4LvKiqfpRkMXBAVe32ifIki9qzJEPX+EBVHTj050izOYKQ4Ajg7qr6EUBV3V1VW5Pc1sKCJFNJrm7L5yRZl+RzwIYkX0nyizMHS3J1kmOTvCHJB5Mc1I61X9v+5CR3JHlCkp9P8pkkm5N8MckvtD5HJflSkmuSvHOO/3tIgAEhAXwOWJ7kP5J8OMmvjbHPscCqqnoNoynSTwNIcgTwjKraPNOxqu4HvgHMHPdlwGer6ieMfmv5zVV1LPB7wIdbn/OA86vqBcC3H/M3lB4FA0ILXlU9wOgP/lpgO3BRkjfsZreNVfU/bfli4NS2fBrwyU7/i4BXteXT22ccCLwQ+GSSa4G/YTSaATgB+ERb/vgefSFpL1k06QKk+aCqHgSuBq5Ocj2wGtjBQ/8T9aSddvn+rH3/O8l3kjyHUQi8qfMRG4G/THIoozC6CngKcF9VHfNIZT3KryPtFY4gtOAleVaSlbOajgG+BdzG6I85wG/v5jAXAm8HDqqq63fe2EYpX2V06ujTVfVgVX0X+K8kp7Y6kuS5bZd/ZTTSAHjtnn8r6bEzICQ4EFif5KYk1zH6be5zgD8FzkvyReDB3RzjEkZ/0C/eRZ+LgNe19xmvBdYk+QZwIw/93OtbgLOSXAMctGdfR9o7vM1VktTlCEKS1GVASJK6DAhJUpcBIUnqMiAkSV0GhCSpy4CQJHUZEJKkrv8DbV+8iNyp7CkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(df.Survived)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "male      0.647587\n",
       "female    0.352413\n",
       "Name: Sex, dtype: float64"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train['Sex'].value_counts(normalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Sex\n",
       "female    0.742038\n",
       "male      0.188908\n",
       "Name: Survived, dtype: float64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train['Survived'].groupby(train['Sex']).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.419, 19.0]    164\n",
       "(31.8, 41.0]     144\n",
       "(41.0, 80.0]     142\n",
       "(19.0, 25.0]     137\n",
       "(25.0, 31.8]     127\n",
       "Name: Age, dtype: int64"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.qcut(train['Age'],5).value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Age\n",
       "(0.419, 19.0]    0.481707\n",
       "(19.0, 25.0]     0.328467\n",
       "(25.0, 31.8]     0.393701\n",
       "(31.8, 41.0]     0.437500\n",
       "(41.0, 80.0]     0.373239\n",
       "Name: Survived, dtype: float64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train['Survived'].groupby(pd.qcut(train['Age'],5)).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/learny/anaconda3/lib/python3.6/site-packages/seaborn/axisgrid.py:703: UserWarning: Using the boxplot function without specifying `order` is likely to produce an incorrect plot.\n",
      "  warnings.warn(warning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x10746a860>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "g = sns.FacetGrid(titanic, col='survived', row='sex')\n",
    "g.map(sns.boxplot, \"pclass\", \"age\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/learny/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
      "  warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n",
      "/Users/learny/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
      "  warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n",
      "/Users/learny/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
      "  warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n",
      "/Users/learny/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
      "  warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n",
      "/Users/learny/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
      "  warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n",
      "/Users/learny/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
      "  warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x1a19220588>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 648x432 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "g = sns.FacetGrid(titanic, row='survived', col='class')\n",
    "g.map(sns.distplot, \"age\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class 1, Child survival ratio: 0.83\n",
      "Class 2, Child survival ratio: 1.00\n",
      "Class 3, Child survival ratio: 0.43\n",
      "Class 1, Man survival ratio: 0.35\n",
      "Class 2, Man survival ratio: 0.08\n",
      "Class 3, Man survival ratio: 0.12\n",
      "Class 1, Woman survival ratio: 0.98\n",
      "Class 2, Woman survival ratio: 0.91\n",
      "Class 3, Woman survival ratio: 0.49\n"
     ]
    }
   ],
   "source": [
    "grouped = titanic.groupby([\"who\", \"pclass\"])\n",
    "survival_ratio = grouped[\"survived\"].mean()\n",
    "\n",
    "gender = [\"child\", \"man\",\"woman\"]\n",
    "Pclass = [1, 2, 3]\n",
    "\n",
    "for i in range(len(gender)):\n",
    "   for j in range(len(Pclass)):\n",
    "       print (\"Class {}, {} survival ratio: {:.2f}\".format(Pclass[j], \n",
    "           gender[i].title(), survival_ratio[gender[i], Pclass[j]]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x107d38828>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 358.5x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.factorplot(x=\"pclass\", y=\"survived\", kind=\"point\", \n",
    "              hue=\"sex\", data=titanic,\n",
    "              markers=[\"^\", \"x\"], linestyles=[\"-\", \"--\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "who    pclass  embark_town\n",
       "child  1       Southampton    0.833333\n",
       "       2       Cherbourg      1.000000\n",
       "               Southampton    1.000000\n",
       "       3       Cherbourg      0.733333\n",
       "               Queenstown     0.200000\n",
       "               Southampton    0.342105\n",
       "man    1       Cherbourg      0.404762\n",
       "               Queenstown     0.000000\n",
       "               Southampton    0.328947\n",
       "       2       Cherbourg      0.111111\n",
       "               Queenstown     0.000000\n",
       "               Southampton    0.078652\n",
       "       3       Cherbourg      0.205128\n",
       "               Queenstown     0.085714\n",
       "               Southampton    0.110204\n",
       "woman  1       Cherbourg      0.976744\n",
       "               Queenstown     1.000000\n",
       "               Southampton    0.977778\n",
       "       2       Cherbourg      1.000000\n",
       "               Queenstown     1.000000\n",
       "               Southampton    0.898305\n",
       "       3       Cherbourg      0.500000\n",
       "               Queenstown     0.718750\n",
       "               Southampton    0.385714\n",
       "Name: survived, dtype: float64"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "count1 = titanic.groupby([\"who\", \"pclass\", \"embark_town\"])\n",
    "count1[\"survived\"].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "who    pclass  survived\n",
       "child  1       0             1\n",
       "               1             5\n",
       "       2       1            19\n",
       "       3       0            33\n",
       "               1            25\n",
       "man    1       0            77\n",
       "               1            42\n",
       "       2       0            91\n",
       "               1             8\n",
       "       3       0           281\n",
       "               1            38\n",
       "woman  1       0             2\n",
       "               1            89\n",
       "       2       0             6\n",
       "               1            60\n",
       "       3       0            58\n",
       "               1            56\n",
       "dtype: int64"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "count = titanic.groupby([\"who\", \"pclass\", \"survived\"])\n",
    "count.apply(len)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1a199727f0>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "train['Embarked'].value_counts()\n",
    "train['Embarked'].value_counts(normalize=True)\n",
    "train['Survived'].groupby(train['Embarked']).mean()\n",
    "sns.countplot(train['Embarked'], hue=train['Pclass'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Mr.          517\n",
       "Miss.        182\n",
       "Mrs.         125\n",
       "Master.       40\n",
       "Dr.            7\n",
       "Rev.           6\n",
       "Mlle.          2\n",
       "Major.         2\n",
       "Col.           2\n",
       "Jonkheer.      1\n",
       "Lady.          1\n",
       "Ms.            1\n",
       "Don.           1\n",
       "Capt.          1\n",
       "Mme.           1\n",
       "the            1\n",
       "Sir.           1\n",
       "Name: Name_Title, dtype: int64"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train['Name_Title'] = train['Name'].apply(lambda x: x.split(',')[1]).apply(lambda x: x.split()[0])\n",
    "train['Name_Title'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1a19af4fd0>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAFECAYAAAA9aanpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl4VdW9//H3IkASQeYwSEAQgYSQARMmQYEgELgIKlAZBCwgRcrQcgVRKiLX9ucVtNYBKaKCFQEFvUxWcQCplSqJhMgcoVFmAkgkCphh/f7ISRpg5ySEc3IO4fN6njw5e6219/mePCFf1tp7f7ex1iIiInKxCr4OQERE/JMShIiIOFKCEBERR0oQIiLiSAlCREQcKUGIiIijir4OQETkYklJSXUrVqy4EGiN/iNbWrnA9uzs7DGxsbHHS3MAJQgR8TsVK1ZcWL9+/fCQkJAfKlSooJu1SiE3N9ekp6e3Onr06EKgX2mOocwsIv6odUhIyI9KDqVXoUIFGxISkkHeLKx0x/BgPCIinlJByeHKuX6Gpf47rwQhIiKOlCBEpNwwxsQ+8MADofnbM2fOrDdlypQbyjKG4cOHNw4LC2vVrFmziKCgoFvCwsJahYWFtXr99ddr/u53v7vh//7v/64HmD17dt0zZ84U/A1u2LBh5JEjR/zqvLBfBSMiciUqV65s33///ZpHjhw52qBBg2xfxPC3v/3te4A9e/ZU7tu3b/Pdu3fvLNT9Q/6Lv/71r/UeeOCBU9dff31umQdZQppBiEi5ERAQYEeMGJH+pz/9qd7FfW+99Vb1qKiosPDw8Fa33npriwMHDlQEmDJlyg333HNPk06dOjVv2LBh5OLFi2uMGzcutEWLFq1uu+225ufPnzcA//jHP65r27Zty4iIiPDOnTs3/+677ypdbnwDBgxo8vrrr9d88skn6x4/frxSly5dWrRv377FxePmzZtXKzIyMjwsLKzV0KFDb8zO9kmuU4IQkfJl6tSpx999991aJ0+eDCjc3qNHj8zk5OTdu3bt2jlw4MBTs2fPrp/f99133wV++umn365YseLbcePGNY2Pj/9x7969O4OCgnLffvvt6ufPnzeTJk1qvGrVqn07duzYNXLkyBMPPfRQw9LG+Ic//OF43bp1sz777LO9X3755d7CfV9//XXQihUraiUmJu7evXv3zgoVKtj58+fXLu17XQktMYlIuVKrVq3cQYMGnXzqqafqBgcHFyzf/Pvf/6581113haanp1f65ZdfKjRq1Oh8ft8dd9yRERgYaNu1a3c2JyfHDBw48EeAiIiIs//+978rp6SkBKampgbHx8e3AMjNzSUkJCTLG/F/8MEH12/fvv266OjocIBz585VqFu3rk+mEEoQIlLuPPLII8duueWWVoMHDz6R3zZhwoTGkydPPjps2LCMtWvXXj979uyCk9eBgYEWICAggIoVK9oKFfIWVypUqEB2drax1pqbb775bHJy8m5vx26tNYMGDTr50ksvHfL2exVHS0wiUu7Uq1cv58477/zhrbfeqpPfdubMmYDGjRtnASxatOiylmyioqLOnTp1quLHH39cBeD8+fMmMTEx6EpirFKlSk5GRsYlf4MTEhJ+XLt2bc1Dhw5VBDh27FjA3r17K1/Je5WWEoSIlEszZsw4evr06YqFtg8PGTKkWWxsbMvatWtf1pJNUFCQXbZs2b7p06eHtmzZslVERESrzz77rOqVxDdy5MgTvXv3bn7xSerY2Nhzf/jDHw517969RYsWLVrFx8e3OHDgwGWfEPcEo2dSi4i/2bZtW1p0dPSJ4kdKcbZt21YnOjq6SWn21QxCREQc6SS1iEgpDR8+vPGWLVsuWGp68MEHj02ePPmkr2LyJCUIEZFSyr9rurzSEpOIiDhSghAREUdKECIi4kgJQkTEgTEm9q677mqav52VlUXNmjWju3XrdrMv4ypLOkktIn4v/eU3Yz15vJAH70sqbkxwcHDunj17gjMzM03VqlXte++9V61evXqO9ZeysrKoVMkn97J5lWYQIiJF6N69e8Y777xTA2Dp0qW1BgwYcCq/b8qUKTcMGTLkxk6dOjW/5557mhZ9lKuXEoSISBGGDx9+avny5TV//vlns2vXrus6duz4U+H+lJSU6z788MNv16xZ829fxehNShAiIkVo37792YMHDwa+8sorte64446Mi/sTEhJOV61atdzWK1KCEBFxIyEh4fTjjz/eaMSIEacu7qtSpYrfPi7UE3SSWkTEjQcffPBE9erVc9q1a3d27dq11/s6nrKkGYSIiBvNmjXLeuyxx44XNy4tLa1Sly5dytUlsCr3LSJ+R+W+PUflvkVExOOUIERExJEShIiIOFKCEBER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ECIi4kgJQkREHClBiIiIIyUIERFxpAQhIuIgv9x3REQE0dHRPPvss+Tm5vo6rDKlUhsi4vd6rxri0eP9vf/SYscULvd9/Phxhg4dSkZGBk888cQF47Kzs6lYsXz+KS2fn0pExIPq1q3LggULaNu2LbNmzWLx4sWsW7eOc+fO8dNPP/Hpp5/6OkSvUIIQESmBm266idzc3IK6S5s3byYlJYVatWr5ODLv0TkIEZESKlyaqEePHuU6OYAShIhIiezfv5+AgADq1q0LQJUqVXwckfcpQYiIFCM9PZ1x48YxYcIEjDG+DqfM6ByEiIiD/CfKZWVlUbFiRYYPH86UKVOKHB8TE1Nw1VN5oQQhIn6vJJelelpOTk6Rfffffz/333//BW3lLTmAlphERKQIShAiIuJICUJERBwpQYiIiCMlCBERcaQEISIijpQgREQcGGMYPnx4wXZ2djYhISH07dvXh1GVLd0HISJ+r897/+vR471/98PFjqlSpQrbt2/n7NmzBAcH89FHH9GwYUOPxuHvNIMQESlC7969WbduHQBLly5lyJD/PJdi1qxZjBw5kp49e9KkSRPeffddpk2bRmRkJAkJCWRlZQGQlJREly5diI2NpVevXhw5csQnn6U0lCBERIowePBgli1bxrlz50hJSaF9+/YX9O/bt49169axatUq7rvvPrp168Y333xDcHAw69atIysri4kTJ7JixQqSkpIYNWoUM2bM8NGnuXxaYhIRKUJUVBRpaWksXbqUPn36XNLfu3dvKlWqRGRkJDk5OSQkJAAQGRlJWloae/bsYfv27fTo0QPIK9/RoEGDMv0MV0IJQkTEjX79+vHQQw+xceNGTp48eUFfYGAgABUqVKBSpUoFlV4rVKhAdnY21loiIiLYvHlzmcftCVpiEhFxY9SoUcycOZPIyMjL3rdly5akp6cXJIisrCx27Njh6RC9RglCRMSN0NBQJk+eXKp9K1euzIoVK3j44YeJjo4mJiaGL774AoD58+czf/58T4bqcabwI/Q8emBjgoBNQCB5S1krrLWPG2OaAsuAWsDXwHBr7S/GmEDgDSAWOAnca61Nc/cecXFxNjEx8YriTH/5Tbf9IQ/ed0XHF5HLt2vXLsLDw30dRrng9LM0xiRZa+OK29ebM4jzQLy1NhqIARKMMR2A/wX+bK1tDvwAjHaNHw38YK29Gfiza5yIiPiI1xKEzZPp2qzk+rJAPLDC1b4YuMv1ur9rG1d/d3MtPdtPRMTPePUchDEmwBiTDBwHPgL2AaettdmuIQeB/FsTGwIHAFz9GUBth2OONcYkGmMS09PTvRm+iMg1zasJwlqbY62NAUKBdoDTomL+SRCn2cIlJ0istQustXHW2riQkBDPBSsiIhcok6uYrLWngY1AB6CGMSb//otQ4LDr9UGgEYCrvzpwqiziExGRS3ktQRhjQowxNVyvg4E7gF3ABmCga9hIYJXr9WrXNq7+T623LrESEZFieXMG0QDYYIxJAbYAH1lr1wIPA1OMMd+Sd47hVdf4V4HarvYpwHQvxiYi4pbKfXux1Ia1NgVo49C+n7zzERe3nwMGeSseEbl69V35avGDLsPaAaOLHaNy37qTWkSkSO7KfX/22WfExMQQExNDmzZtOHPmjK/C9BolCBGRIrgr9z137lxeeuklkpOT+cc//kFwcLAPI/UOJQgRkSK4K/fdqVMnpkyZwvPPP8/p06epWLH8FcdWghARcSO/3Hfh5SWA6dOns3DhQs6ePUuHDh3YvXu3jyL0nvKX8kREPGjUqFFUr16dyMhINm7cWNC+b98+IiMjiYyMZPPmzezevZuwsDDfBeoFmkGIiLhRVLnv5557jtatWxMdHU1wcDC9e/cGICYmpqxD9BrNIETE75XkslRPy8zMvKSta9eudO3aFYAXXnjBcb/k5GRvhlWmNIMQERFHShAiIuJICUJERBwpQYiIiCMlCBERcaQEISIijpQgREQclLbcd2JiIpMmTfJ2eGVC90GIiN+7c8VKjx5vzcABxY4pbbnvuLg44uLiShxLdna239Zx0gxCRKQI7sp9f/XVV9x66620adOGW2+9lT179gCwcePGglnGqVOnuOuuu4iKiqJDhw6kpKQAMGvWLMaOHUvPnj0ZMWJEGX+qkitRgjDGfFKSNhGR8sRdue+wsDA2bdrE1q1bmT17No8++ugl+z/++OO0adOGlJQU/vSnP12QDJKSkli1ahVvvfVWmXyW0nA7rzHGBAHXAXWMMTUB4+qqBtzg5dhERHzKXbnvjIwMRo4cSWpqKsYYsrKyLtn/888/Z+XKvOWx+Ph4Tp48SUZGBpBXJdbfnyFR3AziN0ASEOb6nv+1CnjJu6GJiPheUeW+H3vsMbp168b27dtZs2YN586du2Rfa+0lbcbk/T+7SpUq3gnYg9wmCGvtX6y1TYGHrLU3WWubur6irbUvllGMIiI+M2rUKGbOnElkZOQF7RkZGQUnrRctWuS47+23386SJUuAvHMTderUoVq1al6N15NKdA7CWvuCMeZWY8xQY8yI/C9vByci4mtFlfueNm0ajzzyCJ06dSInJ+eCvvxZwqxZs0hMTCQqKorp06ezePFix/c4fPjwJUtY/sA4TYEuGWTM34BmQDKQ/5Ow1lqfXuwbFxdnExMTr+gY6S+/6bY/5MH7ruj4InL5du3aRXh4uK/DKJWVK1eyevXqIpNBWXP6WRpjkqy1xV6LW9KLb+OAVrYk2URE5Bq1evVqZsyYwWuvvebrUDyipAliO1AfOOLFWERErmr9+vWjX79+vg7DY0qaIOoAO40xXwHn8xutteXnJyEiIhcoaYKY5c0gRETE/5QoQVhrP/N2ICIi4l9KlCCMMWeA/BPUlYFKwE/W2qvngl4REbksJb0P4nprbTXXVxAwANCNciJSblWtWrXU+zZp0oQTJ054MBrfKFWNWWvt/xljpns6GBERJ3ev3ODR4703oJtHj1delXSJ6Z5CmxXIuy9C90SIyDVlzZo1PPnkk/zyyy/Url2bJUuWUK9ePU6ePMmQIUNIT0+nXbt2BTWYHnvsMerUqVNwJ/aMGTOoV6/eVfNAoZI+D+LOQl+9gDNAf28FJSLijzp37sy//vUvtm7dyuDBg3n66acBeOKJJ+jcuTNbt26lX79+fP/99wCMHj264I7q3Nxcli1bxrBhw3wW/+Uq6VVMv/Z2ICIi/u7gwYPce++9HDlyhF9++YWmTZsCsGnTJt59910A/uu//ouaNWsCeeciateuzdatWzl27Bht2rShdu3aPov/cpX0gUGhxpj3jDHHjTHHjDErjTGh3g5ORMSfTJw4kQkTJvDNN9/w17/+9YIS3/kF+i42ZswYFi1axOuvv86oUaPKKlSPKOkS0+vAavIeEtQQWONqExG5ZhQu8V24GF/hst5///vf+eGHHwr67r77bj744AO2bNlCr169yjbgK1TSBBFirX3dWpvt+loEhHgxLhERn/r5558JDQ0t+Hr22WeZNWsWgwYN4rbbbqNOnToFYx9//HE2bdrELbfcwvr162ncuHFBX+XKlenWrRu/+tWvCAgIACAnJ4e4uGKLqfpcSS9zPWGMuQ9Y6toeApz0TkgiIhfyxWWpubm5ju39+196fU7t2rVZv359wfaf//znC47zr3/9i3feeaegLSAggCt9VEFZKOkMYhTwK+AoeRVdBwI6cS0i4sbOnTu5+eab6d69O82bN/d1OJetpDOI/wFGWmt/ADDG1ALmkpc4HBljGgFvkFcmPBdYYK39i2vf5UATIA34lbX2B5N3hucvQB/gZ+B+a+3XpflQIiL+oFWrVuzfv9/XYZRaSWcQUfnJAcBaewpoU8w+2cB/W2vDgQ7Ab40xrYDpwCfW2ubAJ65tgN5Ac9fXWODlEn8KERHxuJImiArGmJr5G65ZgNvZh7X2SP4MwFp7BthF3hVQ/YH80/+Lgbtcr/sDb9g8/wJqGGMalPiTiIiIR5V0iekZ4AtjzArySmz8CvhjSd/EGNOEvBnHl0A9a+0RyEsixpi6rmENgQOFdjvoatNT7EREfKCkd1K/YYxJBOIBA9xjrd1Zkn2NMVWBlcDvrLU/FnUzieu4l7y1w/HGkrcEdcGlZCIi4lklXWLCWrvTWvuitfaFy0gOlchLDkuste+6mo/lLx25vh93tR8EGhXaPRQ47BDHAmttnLU2LiREt2KIiHf88Y9/JCIigqioKGJiYvjyyy8ZM2YMO3eW6M9fuVCqct8l4boq6VVgl7X22UJdq4GRwFOu76sKtU8wxiwD2gMZ+UtRInJtu3flXo8eb/mAFm77N2/ezNq1a/n6668JDAzkxIkT/PLLLyxcuNBxfE5OTsFNcOVJiWcQpdAJGA7EG2OSXV99yEsMPYwxqUAP1zbA+8B+4FvgFWC8F2MTESnSkSNHqFOnDoGBgQDUqVOHG264ga5duxbc4Fa1alVmzpxJ+/bt2bx5sy/D9RqvzSCstZ/jfF4BoLvDeAv81lvxiIiUVM+ePZk9ezYtWrTgjjvu4N5776VLly4XjPnpp59o3bo1s2fP9lGU3ufNGYSIyFWpatWqJCUlsWDBAkJCQrj33ntZtGjRBWMCAgIYMGCAbwIsI16bQYiIXM0CAgLo2rUrXbt2JTIy8oLqrQBBQUHl8rxDYZpBiIhcZM+ePaSmphZsJycnc+ONN/owIt9QghARuUhmZiYjR46kVatWREVFsXPnTmbNmuV2n5kzZ7J69eqyCbCMaIlJRPxecZelelpsbCxffPHFJe0bN24seJ2ZmXlBX3k8Wa0ZhIiIOFKCEBERR0oQIiLiSAlCREQcKUGIiIgjJQgREXGkBCEi4sAYw/Dhwwu2s7OzCQkJoW/fvgAsWrSICRMmADBr1izmzp3rkzi9SfdBiIjfW/Du8eIHXYax99QtdkyVKlXYvn07Z8+eJTg4mI8++oiGDRt6NA5/pxmEiEgRevfuzbp16wBYunQpQ4YMKXafffv2kZCQQGxsLLfddhu7d+/2dpheowQhIlKEwYMHs2zZMs6dO0dKSgrt27cvdp+xY8fywgsvkJSUxNy5cxk//up9tI2WmEREihAVFUVaWhpLly6lT58+xY6CFdXNAAAPS0lEQVTPzMzkiy++YNCgQQVt58+f92aIXqUEISLiRr9+/XjooYfYuHEjJ0+edDs2NzeXGjVqkJycXEbReZeWmERE3Bg1ahQzZ84kMjKy2LHVqlWjadOmvPPOOwBYa9m2bZu3Q/QaJQgRETdCQ0OZPHlyiccvWbKEV199lejoaCIiIli1ahUAq1evZubMmd4K0ytM3qOgr05xcXE2/wHipZX+8ptu+0MevO+Kji8il2/Xrl2Eh4f7OoxywelnaYxJstbGFbevZhAiIuJICUJERBwpQYiIiCMlCBERcaQEISIijpQgRETEkRKEiIiDo0ePMnjwYJo1a0arVq3o06cPe/fudRyblpZG69atyzhC71OpDRHxe58uSffo8eKHhbjtt9Zy9913M3LkSJYtWwZAcnIyx44do0WLFh6NxZ9pBiEicpENGzZQqVIlxo0bV9AWExND586dmTp1Kq1btyYyMpLly5f7MErv0wxCpJzaOv9Ot/1txq0po0iuPtu3byc2NvaS9nfffZfk5GS2bdvGiRMnaNu2LbfffrsPIiwbmkGIiJTQ559/zpAhQwgICKBevXp06dKFLVu2+Dosr1GCEBG5SEREBElJSZe0X82160pDCUJE5CLx8fGcP3+eV155paBty5Yt1KxZk+XLl5OTk0N6ejqbNm2iXbt2PozUu5QgREQuYozhvffe46OPPqJZs2ZEREQwa9Yshg4dSlRUFNHR0cTHx/P0009Tv379C/Y9fPhwiZ4+dzXQSWoR8XvFXZbqDTfccANvv/32Je1z5sxhzpw5F7Q1adKE7du3F+z3/vvvl0mM3qYZhIiIOFKCEBERR0oQIiLiSAlCREQceS1BGGNeM8YcN8ZsL9RWyxjzkTEm1fW9pqvdGGOeN8Z8a4xJMcbc4q24RESkZLw5g1gEJFzUNh34xFrbHPjEtQ3QG2ju+hoLvOzFuEREpAS8liCstZuAUxc19wcWu14vBu4q1P6GzfMvoIYxpoG3YhMRKc7llPt257nnnuPnn3/2QoTeV9b3QdSz1h4BsNYeMcbUdbU3BA4UGnfQ1Xbk4gMYY8aSN8ugcePG3o1WRPxC6ovHPHq85hPque33ZLnv5557jvvuu4/rrruu1PH6ir/cKGcc2hyLnlhrFwALAOLi4q6twigihRyZN8P9AF2CUmpFlfvOzMyke/fu/PDDD2RlZfHkk0/Sv39/0tLSSEhIoH379mzdupUWLVrwxhtvsHDhQg4fPky3bt2oU6cOGzZs8OGnunxl/St0LH/pyPX9uKv9INCo0LhQ4HAZxyYiAhRd7jsoKIj33nuPr7/+mg0bNvDf//3fBQX89uzZw9ixY0lJSaFatWrMmzePSZMmccMNN7Bhw4arLjlA2SeI1cBI1+uRwKpC7SNcVzN1ADLyl6JERPyFtZZHH32UqKgo7rjjDg4dOsSxY3nLX40aNaJTp04A3HfffXz++ee+DNUjvLbEZIxZCnQF6hhjDgKPA08BbxtjRgPfA4Ncw98H+gDfAj8Dv/ZWXCIixYmIiGDFihWXtC9ZsoT09HSSkpKoVKkSTZo04dy5c0Begb/CLt6+GnnzKqYh1toG1tpK1tpQa+2r1tqT1tru1trmru+nXGOttfa31tpm1tpIa22it+ISESlOUeW+v/vuO+rWrUulSpXYsGED3333XUH/999/z+bNmwFYunQpnTt3BuD666/nzJkzZfsBPESnsURELlJUue8+ffqQmJhIXFwcS5YsISwsrGCf8PBwFi9eTFRUFKdOneLBBx8EYOzYsfTu3Ztu3boBMGbMGBITr47/A/vLVUwiIkUq7rJUbyiq3Hf+LKGwtLQ0KlSowPz58y/pmzhxIhMnTizYXrhwoWcD9SLNIERExJFmECJ+Kv3lN30dgpRQ4QcGlSeaQYiIiCMlCBERcaQEISIijpQgRETEkRKEiMhFTp8+zbx58wDYuHEjffv29XFEvqGrmETE7x19dodHj1d/SoTb/vwEMX78eI++79VGMwgRkYtMnz6dffv2ERMTw9SpU8nMzGTgwIGEhYUxbNiwggquSUlJdOnShdjYWHr16sWRI+WrxqgShIjIRZ566imaNWtGcnIyc+bMYevWrTz33HPs3LmT/fv3889//pOsrCwmTpzIihUrSEpKYtSoUcyYUcwzOq4yWmISESlGu3btCA0NBfIeHJSWlkaNGjXYvn07PXr0ACAnJ4cGDcrXk5KVIEREihEYGFjwOiAggOzsbKy1REREONZmKi+0xCQicpGSlOhu2bIl6enpBQkiKyuLHTs8ezLd1zSDEBG5SO3atenUqROtW7cmODiYevUurSZbuXJlVqxYwaRJk8jIyCA7O5vf/e53RES4v0LqaqIEcYW2zr+zyL4249aUYSQi5Vdxl6V6w1tvveXY/uKLLxa8jomJYdOmTWUVUpnTEpOIiDhSghAREUdKECIi4kgJQkREHClBiIiIIyUIERFxpAQhIuKgatWqpdqvSZMmnDhx4oK2tLQ0Wrdu7YmwypTugxARv3f8hU88ery6E7t79Hi+kp2dTcWK3vszrhmEiEgRrLVMnTqV1q1bExkZyfLly4G8hwh17drVsQR4vrNnz5KQkMArr7wC5BXze+CBB4iIiKBnz56cPXsWgH379pGQkEBsbCy33XYbu3fvBiA9PZ0BAwbQtm1b2rZtyz//+U8AZs2axdixY+nZsycjRozw6udXghARKcK7775LcnIy27Zt4+OPP2bq1KkFz3xwKgGeLzMzkzvvvJOhQ4fywAMPAJCamspvf/tbduzYQY0aNVi5ciUAY8eO5YUXXiApKYm5c+cWPKRo8uTJ/P73v2fLli2sXLmSMWPGFBw/KSmJVatWFXm3t6doiUlEpAiff/45Q4YMISAggHr16tGlSxe2bNlCtWrVHEuAd+7cGYD+/fszbdo0hg0bVnCspk2bEhMTA0BsbCxpaWlkZmbyxRdfMGjQoIJx58+fB+Djjz9m586dBe0//vhjQQHBfv36ERwc7N0PjxKEiEiRLl42KsypBHi+Tp068fe//52hQ4dijHEcf/bsWXJzc6lRowbJycmXHD83N5fNmzc7JoIqVaqU6vNcLi0xFePIvBluv0Sk/Lr99ttZvnw5OTk5pKens2nTJtq1a1fsfrNnz6Z27drFPtO6WrVqNG3alHfeeQfIS0jbtm0DoGfPnhcUBnRKIt6mBCEicpHs7GwCAwO5++67iYqKIjo6mvj4eJ5++mnq169fomM899xznDt3jmnTprkdt2TJEl599VWio6OJiIhg1apVADz//PMkJiYSFRVFq1atmD9/vuP+hw8fpk+fPpf3AUvIuJtC+bu4uDibmJh4RcdIf/lNt/3Zdpfb/qMVUorsU7lvuRLe/N0EOFIpx21/n9Hvu+33pl27dhEeHu6z99+2bRsPPPAAX331lc9i8BSnn6UxJslaG1fcvppBiIgUMn/+fIYMGcKTTz7p61B8TiepRUQKGTduHOPGjfN1GH5BCcKL3n/V/bqgL6fwIiLF0RKTiPilq/n8qL+40p+hEoSI+J2goCBOnjypJHEFrLWcPHmSoKCgUh9DS0wi4ndCQ0M5ePAg6enpvg7lqhYUFFRwt3dp+FWCMMYkAH8BAoCF1tqnfBySiPhApUqVaNq0qa/DuOb5TYIwxgQALwE9gIPAFmPMamvtTvd7ll9PLu/ltv8P935YRpGIyLXIbxIE0A741lq7H8AYswzoD1yzCaI4vVcNcdv/9/5LyygSkQvpd7N88KcE0RA4UGj7INDeR7GUidcW93Q/IMiUTSBFuHPFSrf9awYO8Np7f7rE/dpzox9y3fY3n1DPbX9xD6ApLw+U8Vd93vtft/0Vcuu47Te2htv+iqaW2/7KNHTb3924P/7NZ93/24wfFlJk39Fnd7jdt/6UCLf9ZclvSm0YYwYBvay1Y1zbw4F21tqJF40bC4x1bbYE9pRpoOVbHeBEsaNEyp5+Nz3rRmtt0VnMxZ9mEAeBRoW2Q4HDFw+y1i4AFpRVUNcSY0xiSeqziJQ1/W76hj/dB7EFaG6MaWqMqQwMBlb7OCYRkWuW38wgrLXZxpgJwIfkXeb6mrXW/WKdiIh4jd8kCABr7fuAChT5jpbuxF/pd9MH/OYktYiI+Bd/OgchIiJ+RAlCMMYkGGP2GGO+NcZM93U8IvmMMa8ZY44bY7b7OpZrkRLENa5QiZPeQCtgiDGmlW+jEimwCEjwdRDXKiUIKShxYq39BcgvcSLic9baTcApX8dxrVKCEKcSJ+7rEIjINUEJQpyKyujSNhFRgpCSlTgRkWuPEoSoxImIOFKCuMZZa7OB/BInu4C3VeJE/IUxZimwGWhpjDlojBnt65iuJbqTWkREHGkGISIijpQgRETEkRKEiIg4UoIQERFHShAiIuJICUIEMMbMMMbsMMakGGOSjTHtPXDMfp6qjmuMyfTEcUQuhy5zlWueMaYj8CzQ1Vp73hhTB6hsrS32jnJjTEXXvSTejjHTWlvV2+8jUphmECLQADhhrT0PYK09Ya09bIxJcyULjDFxxpiNrtezjDELjDHrgTeMMV8aYyLyD2aM2WiMiTXG3G+MedEYU911rAqu/uuMMQeMMZWMMc2MMR8YY5KMMf8wxoS5xjQ1xmw2xmwxxvxPGf88RAAlCBGA9UAjY8xeY8w8Y0yXEuwTC/S31g4lr0T6rwCMMQ2AG6y1SfkDrbUZwDYg/7h3Ah9aa7PIe9byRGttLPAQMM815i/Ay9batsDRK/6EIqWgBCHXPGttJnl/8McC6cByY8z9xey22lp71vX6bWCQ6/WvgHccxi8H7nW9Hux6j6rArcA7xphk4K/kzWYAOgFLXa//dlkfSMRDKvo6ABF/YK3NATYCG40x3wAjgWz+85+ooIt2+anQvoeMMSeNMVHkJYHfOLzFauD/GWNqkZeMPgWqAKettTFFhVXKjyPiEZpByDXPGNPSGNO8UFMM8B2QRt4fc4ABxRxmGTANqG6t/ebiTtcs5Svylo7WWmtzrLU/Av82xgxyxWGMMdGuXf5J3kwDYNjlfyqRK6cEIQJVgcXGmJ3GmBTyns09C3gC+Isx5h9ATjHHWEHeH/S33YxZDtzn+p5vGDDaGLMN2MF/Hvc6GfitMWYLUP3yPo6IZ+gyVxERcaQZhIiIOFKCEBERR0oQIiLiSAlCREQcKUGIiIgjJQgREXGkBCEiIo6UIERExNH/B02n1bt1hR00AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "train['Survived'].groupby(train['Name_Title']).count()\n",
    "sns.countplot(train['Survived'], hue=train['Name_Title'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "def names(train, test):\n",
    "    for i in [train, test]:\n",
    "        i['Name_Len'] = i['Name'].apply(lambda x: len(x))\n",
    "        i['Name_Title'] = i['Name'].apply(lambda x: x.split(',')[1]).apply(lambda x: x.split()[0])\n",
    "        del i['Name']\n",
    "    return train, test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "def age_impute(train, test):\n",
    "    for i in [train, test]:\n",
    "        i['Age_Null_Flag'] = i['Age'].apply(lambda x: 1 if pd.isnull(x) else 0)\n",
    "        data = train.groupby(['Name_Title', 'Pclass'])['Age']\n",
    "        i['Age'] = data.transform(lambda x: x.fillna(x.mean()))\n",
    "    return train, test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "def fam_size(train, test):\n",
    "    for i in [train, test]:\n",
    "        i['Fam_Size'] = np.where((i['SibSp']+i['Parch']) == 0 , 'Solo',\n",
    "                           np.where((i['SibSp']+i['Parch']) <= 3,'Nuclear', 'Big'))\n",
    "        del i['SibSp']\n",
    "        del i['Parch']\n",
    "    return train, test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "def ticket_grouped(train, test):\n",
    "    for i in [train, test]:\n",
    "        i['Ticket_Lett'] = i['Ticket'].apply(lambda x: str(x)[0])\n",
    "        i['Ticket_Lett'] = i['Ticket_Lett'].apply(lambda x: str(x))\n",
    "        i['Ticket_Lett'] = np.where((i['Ticket_Lett']).isin(['1', '2', '3', 'S', 'P', 'C', 'A']), i['Ticket_Lett'],\n",
    "                                   np.where((i['Ticket_Lett']).isin(['W', '4', '7', '6', 'L', '5', '8']),\n",
    "                                            'Low_ticket', 'Other_ticket'))\n",
    "        i['Ticket_Len'] = i['Ticket'].apply(lambda x: len(x))\n",
    "        del i['Ticket']\n",
    "    return train, test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cabin(train, test):\n",
    "    for i in [train, test]:\n",
    "        i['Cabin_Letter'] = i['Cabin'].apply(lambda x: str(x)[0])\n",
    "        del i['Cabin']\n",
    "    return train, test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cabin_num(train, test):\n",
    "    for i in [train, test]:\n",
    "        i['Cabin_num1'] = i['Cabin'].apply(lambda x: str(x).split(' ')[-1][1:])\n",
    "        i['Cabin_num1'].replace('an', np.NaN, inplace = True)\n",
    "        i['Cabin_num1'] = i['Cabin_num1'].apply(lambda x: int(x) if not pd.isnull(x) and x != '' else np.NaN)\n",
    "        i['Cabin_num'] = pd.qcut(train['Cabin_num1'],3)\n",
    "    train = pd.concat((train, pd.get_dummies(train['Cabin_num'], prefix = 'Cabin_num')), axis = 1)\n",
    "    test = pd.concat((test, pd.get_dummies(test['Cabin_num'], prefix = 'Cabin_num')), axis = 1)\n",
    "    del train['Cabin_num']\n",
    "    del test['Cabin_num']\n",
    "    del train['Cabin_num1']\n",
    "    del test['Cabin_num1']\n",
    "    return train, test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "def embarked_impute(train, test):\n",
    "    for i in [train, test]:\n",
    "        i['Embarked'] = i['Embarked'].fillna('S')\n",
    "    return train, test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "test['Fare'].fillna(train['Fare'].mean(), inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "def dummies(train, test, columns = ['Pclass', 'Sex', 'Embarked', 'Ticket_Lett', 'Cabin_Letter', 'Name_Title', 'Fam_Size']):\n",
    "    for column in columns:\n",
    "        train[column] = train[column].apply(lambda x: str(x))\n",
    "        test[column] = test[column].apply(lambda x: str(x))\n",
    "        good_cols = [column+'_'+i for i in train[column].unique() if i in test[column].unique()]\n",
    "        train = pd.concat((train, pd.get_dummies(train[column], prefix = column)[good_cols]), axis = 1)\n",
    "        test = pd.concat((test, pd.get_dummies(test[column], prefix = column)[good_cols]), axis = 1)\n",
    "        del train[column]\n",
    "        del test[column]\n",
    "    return train, test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "def drop(train, test, bye = ['PassengerId']):\n",
    "    for i in [train, test]:\n",
    "        for z in bye:\n",
    "            del i[z]\n",
    "    return train, test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "train = pd.read_csv(os.path.join('train.csv'))\n",
    "test = pd.read_csv(os.path.join('test.csv'))\n",
    "train, test = names(train, test)\n",
    "train, test = age_impute(train, test)\n",
    "train, test = cabin_num(train, test)\n",
    "train, test = cabin(train, test)\n",
    "train, test = embarked_impute(train, test)\n",
    "train, test = fam_size(train, test)\n",
    "test['Fare'].fillna(train['Fare'].mean(), inplace = True)\n",
    "train, test = ticket_grouped(train, test)\n",
    "train, test = dummies(train, test, columns = ['Pclass', 'Sex', 'Embarked', 'Ticket_Lett',\n",
    "                                                                     'Cabin_Letter', 'Name_Title', 'Fam_Size'])\n",
    "train, test = drop(train, test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8294\n"
     ]
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "\n",
    "rf = RandomForestClassifier(criterion='gini', \n",
    "                             n_estimators=700,\n",
    "                             min_samples_split=10,\n",
    "                             min_samples_leaf=1,\n",
    "                             max_features='auto',\n",
    "                             oob_score=True,\n",
    "                             random_state=1,\n",
    "                             n_jobs=-1)\n",
    "rf.fit(train.iloc[:, 1:], train.iloc[:, 0])\n",
    "print(\"%.4f\" % rf.oob_score_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1a1a2454e0>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "bins = [0, 12, 17, 60, np.inf]\n",
    "labels = ['child', 'teenager', 'adult', 'elder']\n",
    "age_groups = pd.cut(titanic.age, bins, labels=labels)\n",
    "titanic['age_group'] = age_groups\n",
    "groups = titanic.groupby(['age_group', 'alone'])\n",
    "df = titanic.pivot_table(index='embark_town', columns='age_group', values='fare', aggfunc=np.median)\n",
    "sns.heatmap(df, annot=True, fmt=\".1f\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
View on Github
Titanic Exploratory Analysis

Comments

Leave a Comment

Post a Comment