Skip to content

Instantly share code, notes, and snippets.

@artun3e
Created March 20, 2019 13:22
Show Gist options
  • Save artun3e/516437f254145fc7268c1e9d780a3ba8 to your computer and use it in GitHub Desktop.
Save artun3e/516437f254145fc7268c1e9d780a3ba8 to your computer and use it in GitHub Desktop.
CS 210 Individual Project
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"\n",
">>> import pandas\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import reverse_geocoder as rg\n",
"from collections import OrderedDict\n",
"import seaborn as sns # a visualization library from matplotlib\n",
"from math import sin, cos, sqrt, atan2, radians\n",
"import json\n",
"import pprint\n",
"import datetime as dt\n",
"import geopy \n",
"from geopy.distance import geodesic\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv(r\"C:\\Users\\lenovo\\Desktop\\taxi-trips.csv\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Data Types "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"id object\n",
"vendor_id int64\n",
"pickup_datetime object\n",
"dropoff_datetime object\n",
"passenger_count int64\n",
"pickup_longitude float64\n",
"pickup_latitude float64\n",
"dropoff_longitude float64\n",
"dropoff_latitude float64\n",
"store_and_fwd_flag object\n",
"trip_duration int64\n",
"dtype: object"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.dtypes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Shape"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"number of rows: 118185, number of columns: 11\n"
]
}
],
"source": [
"n_rows, n_columns = df.shape # get the shape of dataframe\n",
"print(\"number of rows: {}, number of columns: {}\".format(n_rows, n_columns))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Descriptive Statistics "
]
},
{
"cell_type": "code",
"execution_count": 5,
"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>vendor_id</th>\n",
" <th>passenger_count</th>\n",
" <th>pickup_longitude</th>\n",
" <th>pickup_latitude</th>\n",
" <th>dropoff_longitude</th>\n",
" <th>dropoff_latitude</th>\n",
" <th>trip_duration</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>118185.000000</td>\n",
" <td>118185.000000</td>\n",
" <td>118185.000000</td>\n",
" <td>118185.000000</td>\n",
" <td>118185.000000</td>\n",
" <td>118185.000000</td>\n",
" <td>118185.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>1.534958</td>\n",
" <td>1.657148</td>\n",
" <td>-73.973971</td>\n",
" <td>40.751392</td>\n",
" <td>-73.973538</td>\n",
" <td>40.752212</td>\n",
" <td>927.186310</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.498779</td>\n",
" <td>1.313844</td>\n",
" <td>0.040456</td>\n",
" <td>0.027958</td>\n",
" <td>0.039192</td>\n",
" <td>0.032284</td>\n",
" <td>3118.710246</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>-79.487900</td>\n",
" <td>40.225803</td>\n",
" <td>-79.487900</td>\n",
" <td>40.225800</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>-73.991875</td>\n",
" <td>40.737835</td>\n",
" <td>-73.991394</td>\n",
" <td>40.736462</td>\n",
" <td>393.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>2.000000</td>\n",
" <td>1.000000</td>\n",
" <td>-73.981796</td>\n",
" <td>40.754501</td>\n",
" <td>-73.979759</td>\n",
" <td>40.754848</td>\n",
" <td>652.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>2.000000</td>\n",
" <td>-73.967575</td>\n",
" <td>40.768471</td>\n",
" <td>-73.962990</td>\n",
" <td>40.770077</td>\n",
" <td>1048.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>2.000000</td>\n",
" <td>6.000000</td>\n",
" <td>-73.425018</td>\n",
" <td>41.292198</td>\n",
" <td>-73.055977</td>\n",
" <td>41.292198</td>\n",
" <td>86366.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" vendor_id passenger_count pickup_longitude pickup_latitude \\\n",
"count 118185.000000 118185.000000 118185.000000 118185.000000 \n",
"mean 1.534958 1.657148 -73.973971 40.751392 \n",
"std 0.498779 1.313844 0.040456 0.027958 \n",
"min 1.000000 0.000000 -79.487900 40.225803 \n",
"25% 1.000000 1.000000 -73.991875 40.737835 \n",
"50% 2.000000 1.000000 -73.981796 40.754501 \n",
"75% 2.000000 2.000000 -73.967575 40.768471 \n",
"max 2.000000 6.000000 -73.425018 41.292198 \n",
"\n",
" dropoff_longitude dropoff_latitude trip_duration \n",
"count 118185.000000 118185.000000 118185.000000 \n",
"mean -73.973538 40.752212 927.186310 \n",
"std 0.039192 0.032284 3118.710246 \n",
"min -79.487900 40.225800 1.000000 \n",
"25% -73.991394 40.736462 393.000000 \n",
"50% -73.979759 40.754848 652.000000 \n",
"75% -73.962990 40.770077 1048.000000 \n",
"max -73.055977 41.292198 86366.000000 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Pickup _district "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Loading formatted geocoded file...\n"
]
}
],
"source": [
"### PICKUP DISTRICTS\n",
"pickup_latitude_cooordinates = df['pickup_latitude']\n",
"pickup_longitude_coordinates = df['pickup_longitude']\n",
"pickup_districts = list(zip(pickup_latitude_cooordinates,pickup_longitude_coordinates))\n",
"a =rg.search(pickup_districts)\n",
"results = []\n",
"\n",
"for i in a :\n",
" results.append(i[\"name\"])\n",
" \n",
"df[\"pickup_district\"] = results \n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Dropoff_district"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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>id</th>\n",
" <th>vendor_id</th>\n",
" <th>pickup_datetime</th>\n",
" <th>dropoff_datetime</th>\n",
" <th>passenger_count</th>\n",
" <th>pickup_longitude</th>\n",
" <th>pickup_latitude</th>\n",
" <th>dropoff_longitude</th>\n",
" <th>dropoff_latitude</th>\n",
" <th>store_and_fwd_flag</th>\n",
" <th>trip_duration</th>\n",
" <th>pickup_district</th>\n",
" <th>dropoff_district</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>id2875421</td>\n",
" <td>2</td>\n",
" <td>2016-03-14 17:24:55</td>\n",
" <td>2016-03-14 17:32:30</td>\n",
" <td>1</td>\n",
" <td>-73.982155</td>\n",
" <td>40.767937</td>\n",
" <td>-73.964630</td>\n",
" <td>40.765602</td>\n",
" <td>N</td>\n",
" <td>455</td>\n",
" <td>Manhattan</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>id0012891</td>\n",
" <td>2</td>\n",
" <td>2016-03-10 21:45:01</td>\n",
" <td>2016-03-10 22:05:26</td>\n",
" <td>1</td>\n",
" <td>-73.981049</td>\n",
" <td>40.744339</td>\n",
" <td>-73.973000</td>\n",
" <td>40.789989</td>\n",
" <td>N</td>\n",
" <td>1225</td>\n",
" <td>Long Island City</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>id3361153</td>\n",
" <td>1</td>\n",
" <td>2016-03-11 07:11:23</td>\n",
" <td>2016-03-11 07:20:09</td>\n",
" <td>1</td>\n",
" <td>-73.994560</td>\n",
" <td>40.750526</td>\n",
" <td>-73.978500</td>\n",
" <td>40.756191</td>\n",
" <td>N</td>\n",
" <td>526</td>\n",
" <td>Weehawken</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>id2129090</td>\n",
" <td>1</td>\n",
" <td>2016-03-14 14:05:39</td>\n",
" <td>2016-03-14 14:28:05</td>\n",
" <td>1</td>\n",
" <td>-73.975090</td>\n",
" <td>40.758766</td>\n",
" <td>-73.953201</td>\n",
" <td>40.765068</td>\n",
" <td>N</td>\n",
" <td>1346</td>\n",
" <td>Manhattan</td>\n",
" <td>Long Island City</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>id0256505</td>\n",
" <td>1</td>\n",
" <td>2016-03-14 15:04:38</td>\n",
" <td>2016-03-14 15:16:13</td>\n",
" <td>1</td>\n",
" <td>-73.994484</td>\n",
" <td>40.745087</td>\n",
" <td>-73.998993</td>\n",
" <td>40.722710</td>\n",
" <td>N</td>\n",
" <td>695</td>\n",
" <td>New York City</td>\n",
" <td>New York City</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id vendor_id pickup_datetime dropoff_datetime \\\n",
"0 id2875421 2 2016-03-14 17:24:55 2016-03-14 17:32:30 \n",
"1 id0012891 2 2016-03-10 21:45:01 2016-03-10 22:05:26 \n",
"2 id3361153 1 2016-03-11 07:11:23 2016-03-11 07:20:09 \n",
"3 id2129090 1 2016-03-14 14:05:39 2016-03-14 14:28:05 \n",
"4 id0256505 1 2016-03-14 15:04:38 2016-03-14 15:16:13 \n",
"\n",
" passenger_count pickup_longitude pickup_latitude dropoff_longitude \\\n",
"0 1 -73.982155 40.767937 -73.964630 \n",
"1 1 -73.981049 40.744339 -73.973000 \n",
"2 1 -73.994560 40.750526 -73.978500 \n",
"3 1 -73.975090 40.758766 -73.953201 \n",
"4 1 -73.994484 40.745087 -73.998993 \n",
"\n",
" dropoff_latitude store_and_fwd_flag trip_duration pickup_district \\\n",
"0 40.765602 N 455 Manhattan \n",
"1 40.789989 N 1225 Long Island City \n",
"2 40.756191 N 526 Weehawken \n",
"3 40.765068 N 1346 Manhattan \n",
"4 40.722710 N 695 New York City \n",
"\n",
" dropoff_district \n",
"0 Manhattan \n",
"1 Manhattan \n",
"2 Manhattan \n",
"3 Long Island City \n",
"4 New York City "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#### DROPOFF DISTRICTS\n",
"dropoff_latitude_cooordinates = df['dropoff_latitude']\n",
"dropoff_longitude_coordinates = df['dropoff_longitude']\n",
"dropoff_districts = list(zip(dropoff_latitude_cooordinates,dropoff_longitude_coordinates))\n",
"a =rg.search(dropoff_districts)\n",
"results = []\n",
"\n",
"for i in a :\n",
" results.append(i[\"name\"])\n",
" \n",
"df[\"dropoff_district\"] = results \n",
"\n",
"\n",
"\n",
"df.head()\n",
" \n",
" \n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Top 5 Districts where passengers prefer to arrive and leave#"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Manhattan 45329\n",
"New York City 34625\n",
"Long Island City 17787\n",
"Weehawken 11334\n",
"The Bronx 2777\n",
"Name: pickup_district, dtype: int64\n"
]
}
],
"source": [
"top5pickups = df[\"pickup_district\"].value_counts()[:5]\n",
"print(top5pickups)\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Manhattan 44478\n",
"New York City 31082\n",
"Long Island City 19919\n",
"Weehawken 10621\n",
"Brooklyn 2059\n",
"Name: dropoff_district, dtype: int64\n"
]
}
],
"source": [
"top5dropoffs = df[\"dropoff_district\"].value_counts()[:5]\n",
"print(top5dropoffs)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Distance Column"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Values obtained here are in 'km' in terms of distance"
]
},
{
"cell_type": "code",
"execution_count": 10,
"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>id</th>\n",
" <th>vendor_id</th>\n",
" <th>pickup_datetime</th>\n",
" <th>dropoff_datetime</th>\n",
" <th>passenger_count</th>\n",
" <th>pickup_longitude</th>\n",
" <th>pickup_latitude</th>\n",
" <th>dropoff_longitude</th>\n",
" <th>dropoff_latitude</th>\n",
" <th>store_and_fwd_flag</th>\n",
" <th>trip_duration</th>\n",
" <th>pickup_district</th>\n",
" <th>dropoff_district</th>\n",
" <th>distance</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>id2875421</td>\n",
" <td>2</td>\n",
" <td>2016-03-14 17:24:55</td>\n",
" <td>2016-03-14 17:32:30</td>\n",
" <td>1</td>\n",
" <td>-73.982155</td>\n",
" <td>40.767937</td>\n",
" <td>-73.964630</td>\n",
" <td>40.765602</td>\n",
" <td>N</td>\n",
" <td>455</td>\n",
" <td>Manhattan</td>\n",
" <td>Manhattan</td>\n",
" <td>1.498991</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>id0012891</td>\n",
" <td>2</td>\n",
" <td>2016-03-10 21:45:01</td>\n",
" <td>2016-03-10 22:05:26</td>\n",
" <td>1</td>\n",
" <td>-73.981049</td>\n",
" <td>40.744339</td>\n",
" <td>-73.973000</td>\n",
" <td>40.789989</td>\n",
" <td>N</td>\n",
" <td>1225</td>\n",
" <td>Long Island City</td>\n",
" <td>Manhattan</td>\n",
" <td>5.122769</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>id3361153</td>\n",
" <td>1</td>\n",
" <td>2016-03-11 07:11:23</td>\n",
" <td>2016-03-11 07:20:09</td>\n",
" <td>1</td>\n",
" <td>-73.994560</td>\n",
" <td>40.750526</td>\n",
" <td>-73.978500</td>\n",
" <td>40.756191</td>\n",
" <td>N</td>\n",
" <td>526</td>\n",
" <td>Weehawken</td>\n",
" <td>Manhattan</td>\n",
" <td>1.492705</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>id2129090</td>\n",
" <td>1</td>\n",
" <td>2016-03-14 14:05:39</td>\n",
" <td>2016-03-14 14:28:05</td>\n",
" <td>1</td>\n",
" <td>-73.975090</td>\n",
" <td>40.758766</td>\n",
" <td>-73.953201</td>\n",
" <td>40.765068</td>\n",
" <td>N</td>\n",
" <td>1346</td>\n",
" <td>Manhattan</td>\n",
" <td>Long Island City</td>\n",
" <td>1.972825</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>id0256505</td>\n",
" <td>1</td>\n",
" <td>2016-03-14 15:04:38</td>\n",
" <td>2016-03-14 15:16:13</td>\n",
" <td>1</td>\n",
" <td>-73.994484</td>\n",
" <td>40.745087</td>\n",
" <td>-73.998993</td>\n",
" <td>40.722710</td>\n",
" <td>N</td>\n",
" <td>695</td>\n",
" <td>New York City</td>\n",
" <td>New York City</td>\n",
" <td>2.517838</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id vendor_id pickup_datetime dropoff_datetime \\\n",
"0 id2875421 2 2016-03-14 17:24:55 2016-03-14 17:32:30 \n",
"1 id0012891 2 2016-03-10 21:45:01 2016-03-10 22:05:26 \n",
"2 id3361153 1 2016-03-11 07:11:23 2016-03-11 07:20:09 \n",
"3 id2129090 1 2016-03-14 14:05:39 2016-03-14 14:28:05 \n",
"4 id0256505 1 2016-03-14 15:04:38 2016-03-14 15:16:13 \n",
"\n",
" passenger_count pickup_longitude pickup_latitude dropoff_longitude \\\n",
"0 1 -73.982155 40.767937 -73.964630 \n",
"1 1 -73.981049 40.744339 -73.973000 \n",
"2 1 -73.994560 40.750526 -73.978500 \n",
"3 1 -73.975090 40.758766 -73.953201 \n",
"4 1 -73.994484 40.745087 -73.998993 \n",
"\n",
" dropoff_latitude store_and_fwd_flag trip_duration pickup_district \\\n",
"0 40.765602 N 455 Manhattan \n",
"1 40.789989 N 1225 Long Island City \n",
"2 40.756191 N 526 Weehawken \n",
"3 40.765068 N 1346 Manhattan \n",
"4 40.722710 N 695 New York City \n",
"\n",
" dropoff_district distance \n",
"0 Manhattan 1.498991 \n",
"1 Manhattan 5.122769 \n",
"2 Manhattan 1.492705 \n",
"3 Long Island City 1.972825 \n",
"4 New York City 2.517838 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"distance = []\n",
"i = 0 \n",
"for i in range(118185) :\n",
" R = 6373.0\n",
" lat1 = radians(df['pickup_latitude'][i])\n",
" lon1 = radians(df['pickup_longitude'][i])\n",
" lat2 = radians(df['dropoff_latitude'][i])\n",
" lon2 = radians(df['dropoff_longitude'][i])\n",
" \n",
" dlon = lon2-lon1\n",
" dlat = lat2 - lat1\n",
" \n",
" a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2\n",
" c = 2 * atan2(sqrt(a), sqrt(1 - a))\n",
" distance.append(R*c)\n",
" \n",
"df['distance'] = distance\n",
"df.head()\n",
"\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Time of Day Column"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"#temp =(df['pickup_datetime'][0])\n",
"#temp[10:13]\n",
"#problem is 5.20 also is 5 \n",
"time_of_day = []\n",
"j = 0\n",
"for j in range(118185):\n",
" # aggregating with if else statements\n",
" pickup_datetime_temp = df['pickup_datetime'][j]\n",
" time = int(pickup_datetime_temp[10:13])\n",
" if time >= 7 and time < 9 :\n",
" time_of_day.append(\"rush hour morning\")\n",
" elif time >=9 and time < 16 :\n",
" time_of_day.append(\"afternoon\")\n",
" elif time >= 16 and time < 18 :\n",
" time_of_day.append(\"rush hour evening\")\n",
" elif time >= 18 and time < 23 :\n",
" time_of_day.append(\"evening\")\n",
" else :\n",
" time_of_day.append(\"late night\")\n",
"\n",
" \n",
"df['time_of_day'] = time_of_day\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# How Distance varies as the time of the day changes"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1bb8fe875f8>"
]
},
"execution_count": 12,
"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": [
"#How the distance varies as time of the day changes\n",
"\n",
"\n",
"cols2plot = df.groupby(by =\"time_of_day\").sum()[\"distance\"].sort_values(ascending = False)[:5]\n",
"cols2plot.plot(kind = \"barh\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# How the trip duration varies as time of the day changes"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1bb86f4deb8>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAdYAAAEJCAYAAAApcgagAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAGltJREFUeJzt3Xu0JWV95vHvIxAahYEIaJprIyL3e4swGgcv0SxJMAoIDghEIwsxonGMQU20MfHKrBkjKthOBHS8AIpKiIIEEKJy64amu5GbFxiJRAS1BQkNNL/5Y9eRzelz2ae7ztl7n/5+1jrr1K56q+pX1Wv3c97atetNVSFJktrxlH4XIEnSbGKwSpLUIoNVkqQWGaySJLXIYJUkqUUGqyRJLTJYJUlqkcEqSVKLDFZJklq0fr8L0MzYYostat68ef0uQ5KGyuLFi++rqi2nso7Buo6YN28eixYt6ncZkjRUktw11XW8FCxJUosMVkmSWmSwSpLUIoNVkqQWGaySJLXIYJUkqUUGqyRJLTJYJUlqkcEqSVKLfPLSOuLeux7gkyde3u8yhs6bz3xxv0uQNGTssUqS1CKDVZKkFhmskiS1yGCVJKlFBqskSS0yWCVJatHABmuS45N8ood2dybZYiZqmglJ3p/kpf2uQ5K0Zmbke6xJAqSqHp+J/a2t6aw3yXpVtWq85VX13rb3KUmaOdPWY00yL8ktST4F3ABsm+TBruWHJzm7mT4iyfIkNyW5qmszWyW5OMkdST46we7ekuSGJMuS7NJs8+lJvp5kaZJrkuzVzF+Q5B1ddSxval2t3lHHc2eSDya5OsmiJPsluSTJj5Kc2LRJktOabS5LcmQz/+AkVyT5IrCsa1+fSXJzkm8n2ahpe3aSw7v2eeoYx7Zlkkub+Z9Octds6rVL0jCb7kvBOwOfq6p9q+quCdq9F3h5Ve0NHNo1fx/gSGBP4Mgk2461MnBfVe0HnAGMhOapwI1VtRfwbuBzLdT706o6CPg34GzgcOBA4P3N8lc3Ne8NvBQ4LcncZtkBwHuqarfm9U7AJ6tqd+DXwGFTOLb3AZc3878GbNfDsUmSZsB0B+tdVXVND+2+B5yd5I3Ael3zL6uqFVX1MPADYPtx1r+g+b0YmNdMvwD4PEBVXQ5snmTTtaz3wub3MuDaqnqgqn4BPJxks2afX6qqVVX1c+BK4LnNOtdV1U+6tvWTqloyRt29HtuXm2O7GPjVWCsmOaHpXS968OFfT3BYkqS2THew/nbU6+qanvO7mVUnAn9L5/LrkiSbN4tWdrVfxfifCa8co03GaFfAYzz5uOd0TY+ud7z9PD6qtseb/Y61z/G23faxraaqFlbV/Kqav/GczXpZRZK0lmb6ruCfJ9k1yVOAV43MTLJjVV3b3LhzH6M+31xDVwFHN9s/mM4l1d8AdwL7NfP3A3ZoYV/d+zwyyXpJtgReCFzX4vZHfBd4DUCSlwG/Pw37kCStgZke3eYU4CLgp8ByYONm/mlJdqLTE7sMuInOZ5VrYwFwVpKlwEPAcc38rwLHJlkCXA/cvpb76fY14CA69Rfwzqr6j5Gbjlp0KvCl5uaoK4F7gAda3ockaQ2kqiZvpYGSZENgVVU9luQg4IyqmvAPke223Ln+5rAzZqbAWcRh46R1W5LFVTV/Kus4Hutw2g44r7mk/gjwxj7XI0lqGKxDqKruAPbtdx2SpNUN7CMNJUkaRgarJEktMlglSWqRwSpJUou8eWkd8YztN/GrI5I0A+yxSpLUIoNVkqQWGaySJLXIYJUkqUUGqyRJLTJYJUlqkcEqSVKLDFZJklpksEqS1CKDVZKkFhmskiS1yGCVJKlFBqskSS0yWCVJapHBKklSiwxWSZJaZLBKktQig1WSpBYZrJIktchglSSpRQarJEktWr/fBWhmPLz8Zm7ZZdd+lyFg11tv6XcJkqaRPVZJklpksEqS1CKDVZKkFhmskiS1yGCVJKlFBqskSS0a+GBNcnyST/TQ7s4kW8xETdMpyfwkH+93HZKkNTOj32NNEiBV9fhM7ndN9aPeqloELJqp/UmS2jXtPdYk85LckuRTwA3Atkke7Fp+eJKzm+kjkixPclOSq7o2s1WSi5PckeSjE+zuLUluSLIsyS7NNp+e5OtJlia5JslezfwFSd7RVcfyptbV6h11PPsnuTLJ4iSXJJmbZNck14065qXjtW/mfyfJR5Jcl+T2JH/YzD84yUVdNX62afvjJCd37ePvktya5NIkX+o+FklS/8zUpeCdgc9V1b5VddcE7d4LvLyq9gYO7Zq/D3AksCdwZJJtx1oZuK+q9gPOAEaC5lTgxqraC3g38Lk1rTfJBsDpwOFVtT/wWeADVXUL8HtJntU0PRI4b7z2XftZv6oOAN4GvG+cWnYBXg4cALwvyQZJ5gOHAfsCrwbm93BMkqQZMFOXgu+qqmt6aPc94Owk5wEXdM2/rKpWACT5AbA98NMx1h9ZZzGdwAF4AZ0QoqouT7J5kk3XsN6dgT2ASztXiVkPuKdZdh7wGuDDdIL1yEnaj6533ji1/EtVrQRWJrkXeGZzTN+oqv8ESPLPY62Y5ATgBIC56/v0SkmaCTP1v+1vR72uruk5v5tZdWKS5wGHAEuS7NMsWtnVfhXj171yjDYZo10Bj/HkHvucrunR9Y4IcHNVHTTGsnOB85Nc0DmUuiPJnhO0H6/e8dp0txvrmFZTVQuBhQB7zNmoJmkuSWpBv+4K/nnzueRTgFeNzEyyY1VdW1XvBe5j1Oeba+gq4Ohm+wfTuVz8G+BOYL9m/n7ADj1s6zZgyyQHNettkGR3gKr6EZ3g+zs6ITth+7X0XeBPk8xJsjGdP0QkSQOgX9cHTwEuonM5dzmwcTP/tCQ70emRXQbcROfz1bWxADiruZnoIeC4Zv5XgWOTLAGuB26fbENV9UiSw4GPN5eT1wc+BtzcNDkXOI0mpHtov0aq6vokF9I5P3fRuYt4xdpsU5LUjlR5hXAYJdm4qh5M8lQ6vfITquqG8drvMWejOn/evBmrT+Nz2DhpeCRZXFVTukHUO1qG18Iku9H5bPiciUJVkjRzDNYhVVX/vd81SJJWN/CPNJQkaZgYrJIktchglSSpRX7Guo6Ys8fu7LrIZ/tL0nSzxypJUosMVkmSWmSwSpLUIoNVkqQW9RSsSZ4+3YVIkjQb9NpjvTbJ+UlekWZgUUmStLpeg/U5dMb1fB3wwyQfTPKc6StLkqTh1FOwVselVfVa4C/oDL12XZIrR8YalSRJPT4gIsnmwDF0eqw/B94CXEhnrNTz6W2QcEmSZr1en7x0NfB54M+q6u6u+YuSnNl+WZIkDadeg3XnGmdE9Kr6SIv1SJI01HoN1i2SvBPYnc7A2gBU1YunpSpJkoZUr3cFfwG4lc5nqacCdwLXT1NNkiQNrV6DdfOq+ifg0aq6sqpeDxw4jXVJkjSUer0U/Gjz+54khwA/A7aZnpIkSRpevQbrPyTZFPgfwOnAfwH+atqqkiRpSPUUrFV1UTO5AnjR9JUjSdJwmzBYk5wOjPk1G4CqOrn1iiRJGmKT3by0CFhM5ys2+wF3ND/7AKumtzRJkobPhD3WqjoHIMnxwIuq6tHm9ZnAt6e9OkmShkyvX7fZCtik6/XGzTxJktSl17uCPwzcmOSK5vV/AxZMS0WaFjfffzN7nrNnv8vQOmDZccv6XYLUV73eFXxWkm8Bz2tmnVJV/zGyPMnuVXXzdBQoSdIw6bXHShOk3xhn8efp3NwkSdI6rdfPWCeTlrYjSdJQaytYx/2uqyRJ65K2glWSJDFJsCZ5fvN7w0m280hrFUmSNMQm67F+vPl99USNqmrWDCGX5MFJlm+W5KQW93dikmMnaXN8kk+Ms+zdbdUiSVp7k90V/GiSs4Ctk3x89MJ19FnBmwEnAZ9qY2NVdeZabuLdwAfbqEWStPYm67H+CXAJ8DCdZwaP/pm1kmyc5LIkNyRZluSVzaIPAzsmWZLktKbtXye5PsnSJKeOs70Hk3wgyU1JrknyzGb+giTvaKaf22zj6iSnJVnetYmtklyc5I4kH23afxjYqKnlC9N1LiRJvZvsWcH3AV9OcktV3TRDNQ2Kh4FXVdVvkmwBXJPkQuAUYI+q2gcgycuAnYAD6Hzt6MIkL6yqq0Zt72nANVX1niYY3wj8w6g2ZwEnVNX3m9Dstg+wL7ASuC3J6VV1SpK/HKlFktR/vd4VfH+SryW5N8nPk3w1yTbTWln/BfhgkqXAvwJbA88co93Lmp8bgRuAXegE7WiPACPj2i4G5j1pZ8lmwCZV9f1m1hdHrX9ZVa2oqoeBHwDbT3oAyQlJFiVZtOoBByOSpJnQ65OXzqLzH/0Rzetjmnl/NB1FDYijgS2B/avq0SR30hk+b7QAH6qqT0+yvUerauT7vqtY/dxP9pCNlV3TY62/mqpaCCwE2GiHjfyusSTNgF57rM+oqrOq6rHm52w6oTObbQrc24Tqi3iih/gATx7p5xLg9Uk2BkiydZJnTHVnVfUr4IEkI3dYH9Xjqo8m2WCq+5MkTY9eg/UXSY5Jsl7zcwxw/3QWNgC+AMxPsohO7/VWgKq6H/hekuVJTquqb9PpzV+dZBnwFZ4cvFPxBmBhkqvp9GBX9LDOQmCpNy9J0mDIE1cnJ2iUbAd8AjiIzuMLvw+8tarumt7y1i1JNq6qB5vpU4C5VfXWNra90Q4b1bMXPLuNTUkTctg4zSZJFlfV/Kms0+uwcf8POHSCHb+rqj40lR1rTIckeRedf5e7gOP7W44kaaraelbwEZM30WSq6tyq2qeq9qiqQ6rqF/2uSZI0NQ4bJ0lSixw2TpKkFtljlSSpRW0F6/ktbUeSpKHW69dtngOcATyzqvZIshdwaFWNftatBtT8+fNr0aJF/S5DkobKmnzdptce62eAdwGPAlTVUnp/MpAkSeuMXoP1qVV13ah5j7VdjCRJw67XYL0vyY40d/8mORy4Z9qqkiRpSPU6us2b6TyTdpck/w78hM4IN5IkqUuvjzT8MfDSJE8DnlJVD0xvWZIkDaeegrUZhPtYOoNzr590vrZaVSdPW2WSJA2hXi8FfxO4BlgGPD595UiSNNx6DdY5VfX2aa1EkqRZoNe7gj+f5I1J5iZ5+sjPtFYmSdIQ6rXH+ghwGvAennjgfgHPmo6iJEkaVr0G69uBZ1fVfdNZjCRJw67XS8E3Aw9NZyGSJM0GvfZYVwFLklwBrByZ6ddtJEl6sl6D9evNjyRJmkCvT146Z7oLkSRpNpgwWJOcV1WvSbKMJ+4GHlFVtff0lSZJ0vCZrMf61ub3LcBfd80P8NFpqUiSpCE2YbBW1cjQcM+uqru6lyXZZdqqkiRpSE12KfhNwEnAs5Is7Vq0CfC96SxMkqRhNNml4C8C3wI+BJzSNf+BqvrltFUlSdKQmuxS8ApgBfDamSlHkqTh1uv3WDXsfnYjLNi031VIGiQLVvS7glmp10caSpKkHhiskiS1yGCVJKlFBqskSS0yWCVJapHBKklSiwzWAZLkxCTH9rsOSdKa83usA6Sqzux3DZKktWOPdYqSHJPkuiRLknw6yZuTfLRr+fFJTh+n7XrN/AeTfCDJTUmuSfLMZv6CJO9opr+T5CPN+rcn+cNm/lOTnJdkaZJzk1ybZP7MnwlJ0lgM1ilIsitwJPD8qtoHWAU8CLy6q9mRwLnjtD26afM04JpmPNurgDeOs8v1q+oA4G3A+5p5JwG/qqq9gL8H9m/r+CRJa89LwVPzEjpBdn0SgI2Ae4EfJzkQuAPYmc7IP28epy3AI8BFzfRi4I/G2d8FXW3mNdMvAP4RoKqWjxp16EmSnACcALDdpun9KCVJa8xgnZoA51TVu540M3kD8BrgVuBrVVXppOlqbRuPVlU106sY/99h5Rhtek7IqloILASYv9V6NUlzSVILvBQ8NZcBhyd5BkCSpyfZnk7P8s/ojAJ07iRt19Z36YQ4SXYD9mxhm5KklhisU1BVPwD+Fvh2cwn2UmBuVf0K+AGwfVVdN1HbFsr4FLBls82/AZbSGdpPkjQA8sQVSQ2D5s7iDarq4SQ70ukZP6eqHplovflbrVeLTth4RmqUNCQcNm5SSRZX1ZS+eeFnrMPnqcAVSTag83nrmyYLVUnSzDFYh0xVPQD4vVVJGlB+xipJUosMVkmSWmSwSpLUIj9jXVdstS8sWNTvKiRp1rPHKklSiwxWSZJaZLBKktQig1WSpBYZrJIktchglSSpRQarJEktMlglSWqRwSpJUosMVkmSWmSwSpLUIoNVkqQWGaySJLXIYJUkqUUGqyRJLTJYJUlqkcEqSVKLDFZJklpksEqS1CKDVZKkFhmskiS1aP1+F6CZsezfVzDvlH/pdxmSNKPu/PAhM75Pe6ySJLXIYJUkqUUGqyRJLTJYJUlqkcEqSVKLDFZJklpksPYgyRFJbklyRZJ9kryi3zVJkgaTwdqbNwAnVdWLgH2AKQVrEr8vLEnrCP/DHyXJ14FtgTnAPwJ/ALwA2CHJN4HDgI2SvAD4EHARcDqwJ53zuaCqvpHkeOCQZjtPS/J+YAFwH7AHsBg4pqoqyUuA/9msfz3wpqpaOcH8O4FzgD8FNgCOqKpbp/XESJJ6Yo91da+vqv2B+cDJwCeBRcDRVfVXwHuBc6tqn6o6F3gPcHlVPRd4EXBakqc12zoIOK6qXty83hd4G7Ab8Czg+UnmAGcDR1bVSDi/abz5XXXeV1X7AWcA75iG8yBJWgMG6+pOTnITcA2dnutOk7R/GXBKkiXAd+j0ULdrll1aVb/santdVd1dVY8DS4B5wM7AT6rq9qbNOcALJ5g/4oLm9+JmO6tJckKSRUkWrXpoxSSHIUlqg5eCuyQ5GHgpcFBVPZTkO3SCcsLVgMOq6rZR23oe8NtRbVd2Ta+ic/4zwXYnMrKtke2spqoWAgsBNpy7U02yPUlSC+yxPtmmwK+aUN0FOHCMNg8Am3S9vgR4S5IAJNl3ivu8FZiX5NnN69cBV04wX5I0wAzWJ7sYWD/JUuDv6VwOHu0KYLckS5Ic2bTbAFiaZHnzumdV9TDw58D5SZYBjwNnjjd/DY9LkjRDUuUVwnXBhnN3qrnHfazfZUjSjFrbYeOSLK6q+VNZxx6rJEktMlglSWqRwSpJUosMVkmSWmSwSpLUIoNVkqQW+eSldcSeW2/KorW87VySNDl7rJIktchglSSpRQarJEktMlglSWqRwSpJUosMVkmSWmSwSpLUIoNVkqQWGaySJLXIYJUkqUWpqn7XoBmQ5AHgtn7X0YMtgPv6XcQkhqFGsM42DUONMBx1DkON8ESd21fVllNZ0WcFrztuq6r5/S5iMkkWDXqdw1AjWGebhqFGGI46h6FGWLs6vRQsSVKLDFZJklpksK47Fva7gB4NQ53DUCNYZ5uGoUYYjjqHoUZYizq9eUmSpBbZY5UkqUUG6yyT5I+T3Jbkh0lOGWP5hknObZZfm2TeANZ4fJJfJFnS/PzFTNfY1PHZJPcmWT7O8iT5eHMcS5PsN4A1HpxkRde5fG8fatw2yRVJbklyc5K3jtFmEM5lL3UOwvmck+S6JDc1dZ46Rpu+vs97rHEg3udNLesluTHJRWMsm/q5rCp/ZskPsB7wI+BZwO8BNwG7jWpzEnBmM30UcO4A1ng88IkBOJ8vBPYDlo+z/BXAt4AABwLXDmCNBwMX9fk8zgX2a6Y3AW4f4998EM5lL3UOwvkMsHEzvQFwLXDgqDb9fp/3UuNAvM+bWt4OfHGsf9s1OZf2WGeXA4AfVtWPq+oR4MvAK0e1eSVwTjP9FeAlSTJgNQ6EqroK+OUETV4JfK46rgE2SzJ3Zqrr6KHGvquqe6rqhmb6AeAWYOtRzQbhXPZSZ9815+jB5uUGzc/om2X6+j7vscaBkGQb4BDg/4zTZMrn0mCdXbYGftr1+m5W/4/hd22q6jFgBbD5jFQ3av+NsWoEOKy5JPiVJNvOTGlT1uux9NtBzSW5byXZvZ+FNJfR9qXTg+k2UOdygjphAM5nc+lyCXAvcGlVjXs++/Q+76VGGIz3+ceAdwKPj7N8yufSYJ1dxvoravRfib20mU697P+fgXlVtRfwrzzx1+Kg6fe57MUNdB7JtjdwOvD1fhWSZGPgq8Dbquo3oxePsUpfzuUkdQ7E+ayqVVW1D7ANcECSPUY16fv57KHGvr/Pk/wJcG9VLZ6o2RjzJjyXBuvscjfQ/VffNsDPxmuTZH1gU2b2UuKkNVbV/VW1snn5GWD/Gaptqno5331VVb8ZuSRXVd8ENkiyxUzXkWQDOmH1haq6YIwmA3EuJ6tzUM5nVz2/Br4D/PGoRf1+n//OeDUOyPv8+cChSe6k87HUi5P831FtpnwuDdbZ5XpgpyQ7JPk9Oh+0XziqzYXAcc304cDl1XwqPyg1jvps7VA6n3UNoguBY5s7Wg8EVlTVPf0uqluSPxj5PCjJAXTe8/fPcA0B/gm4par+1zjN+n4ue6lzQM7nlkk2a6Y3Al4K3DqqWV/f573UOAjv86p6V1VtU1Xz6PxfdHlVHTOq2ZTPpQ/hn0Wq6rEkfwlcQufu289W1c1J3g8sqqoL6fzH8fkkP6TzV9dRA1jjyUkOBR5rajx+JmsckeRLdO4C3SLJ3cD76NyEQVWdCXyTzt2sPwQeAv58AGs8HHhTkseA/wSOmuE/pKDTK3gdsKz5zA3g3cB2XXX2/Vz2WOcgnM+5wDlJ1qMT7OdV1UWD9D7vscaBeJ+PZW3PpU9ekiSpRV4KliSpRQarJEktMlglSWqRwSpJUosMVknSrJNJBqgY1fZ/dw0GcHuSX6/Vvr0rWJI02yR5IfAgnWdQj37q00TrvQXYt6pev6b7tscqSZp1xhqgIsmOSS5OsjjJvyXZZYxVXwt8aW327QMiJEnrioXAiVV1R5LnAZ8CXjyyMMn2wA7A5WuzE4NVkjTrNYMr/Ffg/K5R3zYc1ewo4CtVtWpt9mWwSpLWBU8Bft2MuDOeo4A3t7EjSZJmtWYIwJ8kOQI6gy4k2XtkeZKdgd8Hrl7bfRmskqRZpxmg4mpg5yR3J3kDcDTwhiQ3ATcDr+xa5bXAl9sYVMGv20iS1CJ7rJIktchglSSpRQarJEktMlglSWqRwSpJUosMVkmSWmSwSpLUIoNVkqQW/X9iFe3yqVdW1QAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#how the trip duration varies as the time of the day changes\n",
"#Maybe a better visualization can be done here ?\n",
"cols2plot = df.groupby(by =\"time_of_day\").sum()[\"trip_duration\"].sort_values(ascending = False)[:5]\n",
"cols2plot.plot(kind = \"barh\")\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Hypothetical Testing"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Null hypothesis : Passenger group size has no effect on the distance"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD8CAYAAACb4nSYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl8VeW97/HPb++dZGcnQYaEyihYoRWUAzXiRAdLrVCt2NZesXJqrRV7Ktri6Tmltx5b8eWrHuXWocdTtVVba5XD0d5KFa9UheqpU0IZZFAZjBJAxQCZhz387h9rJWxChpVkJzuu9Xu/Xnmx17iftbL57ifPetazRFUxxhgTDKFsF8AYY8zAsdA3xpgAsdA3xpgAsdA3xpgAsdA3xpgAsdA3xpgAsdA3xpgAsdA3xpgAsdA3xpgAiWS7AO0VFxfrhAkTsl0MY4z5SFm3bt2HqlrS3XqDLvQnTJhAeXl5tothjDEfKSLyjpf1rHnHGGMCxELfGGMCxFPoi8gcEXlTRHaIyJIOln9XRF4XkQ0i8j8iMsWdP0FEGt35G0TknkwfgDHGGO+6bdMXkTBwN3AOUAmUichKVd2attojqnqPu/4FwC+AOe6ynao6PbPFNsYf4vE4lZWVNDU1Zbso5iMiGo0yduxYcnJyerW9lwu5M4EdqroLQESWA/OAttBX1Zq09QsAG6TfGA8qKyspKipiwoQJiEi2i2MGOVWlqqqKyspKJk6c2Kt9eGneGQPsTpuudOcdQUSuFpGdwK3AtWmLJorIehH5q4h8ulelNManmpqaGDFihAW+8UREGDFiRJ/+MvQS+h19Go+qyavq3ar6ceBHwPXu7H3AeFWdAVwHPCIiQ456A5GFIlIuIuX79+/3XnpjfMAC3/REXz8vXkK/EhiXNj0W2NvF+suBCwFUtVlVq9zX64CdwOT2G6jqfapaqqqlJSXd3ltgjDGml7yEfhkwSUQmikguMB9Ymb6CiExKmzwP2O7OL3EvBCMixwOTgF2ZKHhPbd5Tzak3P0tVXXM23t4YYwaFbkNfVRPAIuAZYBuwQlW3iMhSt6cOwCIR2SIiG3CacS5z538G2CQiG4HHgO+q6oGMH4UHuz6sZ39tM3sONWbj7Y0xPnbHHXfQ0NDQ5/1UVVVx9tlnU1hYyKJFizJQsqN5GoZBVVcBq9rNuyHt9fc72e5x4PG+FDBT4okUAE3xVJZLYozpD8lkknA4nJX3vuOOO1iwYAGxWKxP+4lGo9x0001s3ryZzZs3Z6h0Rxp0Y+/0l0SqNfSTWS6JMR278c9b2Lq3pvsVe2DK6CH89MtTO11eUVHBnDlzOO2001i/fj2TJ0/moYceIhaLsXTpUv785z/T2NjImWeeyb333ouIcNddd3HPPfcQiUSYMmUKy5cv569//Svf/75T9xMRXnjhBYqKirjttttYsWIFzc3NfOUrX+HGG2+koqKCuXPnMmvWLF566SXGjBnDE088QX5+PmVlZVxxxRUUFBQwa9Ysnn76aTZv3kwymWTJkiWsXbuW5uZmrr76aq666irWrl3LjTfeyKhRo9iwYQNbt27t8Dgfeughli1bhogwbdo0fv/73/POO+/w7W9/m/3791NSUsKDDz7I+PHj+da3vsX555/PRRddBEBhYSF1dXWsXbuWn/3sZxQXF7N582ZOOeUUHn74YX75y1+yd+9ezj77bIqLi1mzZk2vf1+tx71jx45e76M7gRmGoSXpdDiy0DfmSG+++SYLFy5k06ZNDBkyhP/8z/8EYNGiRZSVlbF582YaGxt58sknAbjllltYv349mzZt4p57nJvsly1bxt13382GDRt48cUXyc/PZ/Xq1Wzfvp3XXnuNDRs2sG7dOl544QUAtm/fztVXX82WLVsYOnQojz/uNAhcfvnl3HPPPbz88stH1Nrvv/9+jjnmGMrKyigrK+PXv/41b7/9NgCvvfYaN998c6eBv2XLFm6++Waef/55Nm7cyJ133tl2fN/85jfZtGkTl156Kddee22H26dbv349d9xxB1u3bmXXrl387W9/49prr2X06NGsWbOmw8BfvHgx06dPP+rnlltu8fT7ybTA1PTbmncS1rxjBqeuauT9ady4cZx11lkALFiwgLvuuosf/vCHrFmzhltvvZWGhgYOHDjA1KlT+fKXv8y0adO49NJLufDCC7nwwgsBOOuss7juuuu49NJL+epXv8rYsWNZvXo1q1evZsaMGQDU1dWxfft2xo8fz8SJE5k+3blR/5RTTqGiooJDhw5RW1vLmWeeCcA3vvGNti+a1atXs2nTJh577DEAqqur2b59O7m5ucycObPLG5Wef/55LrroIoqLiwEYPnw4AC+//DJ//OMfAfjHf/xH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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#checking the passenger count whether it is 1 passenger or more\n",
"one_passenger = df[(df[\"passenger_count\"] == 1) ]\n",
"multiple_passengers = df[(df[\"passenger_count\"] > 1) ]\n",
"\n",
"ax = sns.kdeplot(one_passenger[\"distance\"].rename(\"passenger_count = 1\"),shade = True)\n",
"sns.kdeplot(multiple_passengers[\"distance\"].rename(\"passenger_count > 1\"),shade = True)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### It seems like there is no difference. The graphs look the same. Now lets apply a significance test to statistically approve this graph."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"# extracting values\n",
"one_passenger_values = one_passenger[\"distance\"].values\n",
"multiple_passenger_values = multiple_passengers[\"distance\"].values"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"9.315200645354632e-07"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# two-sided test for the null hypothesis that 2 independent samples \n",
"# have identical average (expected) values\n",
"\n",
"_, p_value = stats.ttest_ind(a=one_passenger_values, b=multiple_passenger_values, equal_var=False)\n",
"p_value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### The p value shows that our hypothesis about passenger group size is wrong."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Null hypothesis : The day of the week has no effect on the distance."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"weekdays_df = df[pd.to_datetime(df[\"pickup_datetime\"]).dt.weekday < 5]\n",
"weekends_df = df[pd.to_datetime(df[\"pickup_datetime\"]).dt.weekday >=5]\n",
"\n",
"ax = sns.kdeplot(weekdays_df[\"distance\"].rename(\"weekdays\"),shade = True)\n",
"sns.kdeplot(weekends_df[\"distance\"].rename(\"weekends\"),shade = True) \n",
"\n",
"plt.show()\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"# extracting values\n",
"weekday_distances = weekdays_df[\"distance\"].values\n",
"weekend_distances = weekends_df[\"distance\"].values\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.9260544245354128e-08"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# have identical average (expected) values\n",
"_, p_value = stats.ttest_ind(a=weekday_distances, b=weekend_distances, equal_var=False)\n",
"p_value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### The p value shows that our hypothesis about day of the week effects distance size is wrong.¶"
]
},
{
"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.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment