{
"cells": [
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'data_url': 'https://raw.githubusercontent.com/andrewm4894/papermill_dev/master/data/titanic.csv', 'output_label': 'titanic'}\n"
]
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"%matplotlib inline \n",
"plt.style.use('ggplot')\n",
"\n",
"# check if config exists\n",
"try:\n",
" config\n",
"except NameError:\n",
" config_exists = False\n",
"else:\n",
" config_exists = True\n",
"\n",
"# make config if it does not exist already (e.g. passed in by papermill)\n",
"if not(config_exists):\n",
" # set up some config for the experiment run\n",
" config = {\n",
" \"data_url\" : \"https://raw.githubusercontent.com/andrewm4894/papermill_dev/master/data/titanic.csv\",\n",
" }\n",
"print(config)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(891, 12)\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" PassengerId | \n",
" Survived | \n",
" Pclass | \n",
" Name | \n",
" Sex | \n",
" Age | \n",
" SibSp | \n",
" Parch | \n",
" Ticket | \n",
" Fare | \n",
" Cabin | \n",
" Embarked | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 3 | \n",
" Braund, Mr. Owen Harris | \n",
" male | \n",
" 22.0 | \n",
" 1 | \n",
" 0 | \n",
" A/5 21171 | \n",
" 7.2500 | \n",
" NaN | \n",
" S | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
" female | \n",
" 38.0 | \n",
" 1 | \n",
" 0 | \n",
" PC 17599 | \n",
" 71.2833 | \n",
" C85 | \n",
" C | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" 1 | \n",
" 3 | \n",
" Heikkinen, Miss. Laina | \n",
" female | \n",
" 26.0 | \n",
" 0 | \n",
" 0 | \n",
" STON/O2. 3101282 | \n",
" 7.9250 | \n",
" NaN | \n",
" S | \n",
"
\n",
" \n",
" 3 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
" female | \n",
" 35.0 | \n",
" 1 | \n",
" 0 | \n",
" 113803 | \n",
" 53.1000 | \n",
" C123 | \n",
" S | \n",
"
\n",
" \n",
" 4 | \n",
" 5 | \n",
" 0 | \n",
" 3 | \n",
" Allen, Mr. William Henry | \n",
" male | \n",
" 35.0 | \n",
" 0 | \n",
" 0 | \n",
" 373450 | \n",
" 8.0500 | \n",
" NaN | \n",
" S | \n",
"
\n",
" \n",
"
\n",
"
"
],
"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": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(config['data_url'])\n",
"print(df.shape)\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" PassengerId | \n",
" Survived | \n",
" Pclass | \n",
" Age | \n",
" SibSp | \n",
" Parch | \n",
" Fare | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 891.000000 | \n",
" 891.000000 | \n",
" 891.000000 | \n",
" 714.000000 | \n",
" 891.000000 | \n",
" 891.000000 | \n",
" 891.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 446.000000 | \n",
" 0.383838 | \n",
" 2.308642 | \n",
" 29.699118 | \n",
" 0.523008 | \n",
" 0.381594 | \n",
" 32.204208 | \n",
"
\n",
" \n",
" std | \n",
" 257.353842 | \n",
" 0.486592 | \n",
" 0.836071 | \n",
" 14.526497 | \n",
" 1.102743 | \n",
" 0.806057 | \n",
" 49.693429 | \n",
"
\n",
" \n",
" min | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 0.420000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 223.500000 | \n",
" 0.000000 | \n",
" 2.000000 | \n",
" 20.125000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 7.910400 | \n",
"
\n",
" \n",
" 50% | \n",
" 446.000000 | \n",
" 0.000000 | \n",
" 3.000000 | \n",
" 28.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 14.454200 | \n",
"
\n",
" \n",
" 75% | \n",
" 668.500000 | \n",
" 1.000000 | \n",
" 3.000000 | \n",
" 38.000000 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 31.000000 | \n",
"
\n",
" \n",
" max | \n",
" 891.000000 | \n",
" 1.000000 | \n",
" 3.000000 | \n",
" 80.000000 | \n",
" 8.000000 | \n",
" 6.000000 | \n",
" 512.329200 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"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": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"