{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "3e8f407e", "metadata": {}, "source": [ "# Title\n", "Finding Heavy Traffic Indicators on I-94" ] }, { "attachments": {}, "cell_type": "markdown", "id": "a9b4f3e6", "metadata": {}, "source": [ "# Project Description\n", "I'm going to analyze a dataset about the westbound traffic on the I-94 Interstate highway.\n", "\n", "My goal is to find out what factors affect heavy traffic on I-94. These factors can be weather type, time of the day, time of the week, etc. " ] }, { "cell_type": "markdown", "id": "2844a930", "metadata": {}, "source": [ "## Importation\n", "Here is the section to import all the packages/libraries that will be used through this notebook." ] }, { "cell_type": "code", "execution_count": 2, "id": "9b5e28cb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Ellipsis" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Data handling\n", "import pandas as pd\n", "import numpy as np\n", "from datetime import datetime\n", "\n", "# Vizualisation (Matplotlib, Plotly, Seaborn, etc. )\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "# EDA (pandas-profiling, etc. )\n", "...\n", "\n", "# Feature Processing (Scikit-learn processing, etc. )\n", "...\n", "\n", "# Machine Learning (Scikit-learn Estimators, Catboost, LightGBM, etc. )\n", "...\n", "\n", "# Hyperparameters Fine-tuning (Scikit-learn hp search, cross-validation, etc. )\n", "...\n", "\n", "# Other packages\n" ] }, { "cell_type": "markdown", "id": "c42eb2ec", "metadata": {}, "source": [ "# Data Loading\n", "Here is the section to load the datasets (train, eval, test) and the additional files" ] }, { "cell_type": "code", "execution_count": 3, "id": "13e3ca92", "metadata": {}, "outputs": [], "source": [ "traffic=pd.read_csv(\"Metro_Interstate_Traffic_Volume.csv\")" ] }, { "cell_type": "markdown", "id": "6f27de0e", "metadata": {}, "source": [ "# Exploratory Data Analysis: EDA\n", "Here is the section to **inspect** the datasets in depth, **present** it, make **hypotheses** and **think** the *cleaning, processing and features creation*." ] }, { "attachments": {}, "cell_type": "markdown", "id": "b387c858", "metadata": {}, "source": [ "## Dataset overview\n", "\n", "Have a look at the loaded datsets using the following methods: `.head(), .info()`" ] }, { "cell_type": "code", "execution_count": 4, "id": "9b213371", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(48204, 9)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "traffic.shape" ] }, { "cell_type": "code", "execution_count": 5, "id": "e5f1f876", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
holidaytemprain_1hsnow_1hclouds_allweather_mainweather_descriptiondate_timetraffic_volume
0None288.280.00.040Cloudsscattered clouds2012-10-02 09:00:005545
1None289.360.00.075Cloudsbroken clouds2012-10-02 10:00:004516
2None289.580.00.090Cloudsovercast clouds2012-10-02 11:00:004767
3None290.130.00.090Cloudsovercast clouds2012-10-02 12:00:005026
4None291.140.00.075Cloudsbroken clouds2012-10-02 13:00:004918
5None291.720.00.01Clearsky is clear2012-10-02 14:00:005181
6None293.170.00.01Clearsky is clear2012-10-02 15:00:005584
7None293.860.00.01Clearsky is clear2012-10-02 16:00:006015
8None294.140.00.020Cloudsfew clouds2012-10-02 17:00:005791
9None293.100.00.020Cloudsfew clouds2012-10-02 18:00:004770
10None290.970.00.020Cloudsfew clouds2012-10-02 19:00:003539
11None289.380.00.01Clearsky is clear2012-10-02 20:00:002784
12None288.610.00.01Clearsky is clear2012-10-02 21:00:002361
13None287.160.00.01Clearsky is clear2012-10-02 22:00:001529
14None285.450.00.01Clearsky is clear2012-10-02 23:00:00963
15None284.630.00.01Clearsky is clear2012-10-03 00:00:00506
16None283.470.00.01Clearsky is clear2012-10-03 01:00:00321
17None281.180.00.01Clearsky is clear2012-10-03 02:00:00273
18None281.090.00.01Clearsky is clear2012-10-03 03:00:00367
19None279.530.00.01Clearsky is clear2012-10-03 04:00:00814
\n", "
" ], "text/plain": [ " holiday temp rain_1h snow_1h clouds_all weather_main \\\n", "0 None 288.28 0.0 0.0 40 Clouds \n", "1 None 289.36 0.0 0.0 75 Clouds \n", "2 None 289.58 0.0 0.0 90 Clouds \n", "3 None 290.13 0.0 0.0 90 Clouds \n", "4 None 291.14 0.0 0.0 75 Clouds \n", "5 None 291.72 0.0 0.0 1 Clear \n", "6 None 293.17 0.0 0.0 1 Clear \n", "7 None 293.86 0.0 0.0 1 Clear \n", "8 None 294.14 0.0 0.0 20 Clouds \n", "9 None 293.10 0.0 0.0 20 Clouds \n", "10 None 290.97 0.0 0.0 20 Clouds \n", "11 None 289.38 0.0 0.0 1 Clear \n", "12 None 288.61 0.0 0.0 1 Clear \n", "13 None 287.16 0.0 0.0 1 Clear \n", "14 None 285.45 0.0 0.0 1 Clear \n", "15 None 284.63 0.0 0.0 1 Clear \n", "16 None 283.47 0.0 0.0 1 Clear \n", "17 None 281.18 0.0 0.0 1 Clear \n", "18 None 281.09 0.0 0.0 1 Clear \n", "19 None 279.53 0.0 0.0 1 Clear \n", "\n", " weather_description date_time traffic_volume \n", "0 scattered clouds 2012-10-02 09:00:00 5545 \n", "1 broken clouds 2012-10-02 10:00:00 4516 \n", "2 overcast clouds 2012-10-02 11:00:00 4767 \n", "3 overcast clouds 2012-10-02 12:00:00 5026 \n", "4 broken clouds 2012-10-02 13:00:00 4918 \n", "5 sky is clear 2012-10-02 14:00:00 5181 \n", "6 sky is clear 2012-10-02 15:00:00 5584 \n", "7 sky is clear 2012-10-02 16:00:00 6015 \n", "8 few clouds 2012-10-02 17:00:00 5791 \n", "9 few clouds 2012-10-02 18:00:00 4770 \n", "10 few clouds 2012-10-02 19:00:00 3539 \n", "11 sky is clear 2012-10-02 20:00:00 2784 \n", "12 sky is clear 2012-10-02 21:00:00 2361 \n", "13 sky is clear 2012-10-02 22:00:00 1529 \n", "14 sky is clear 2012-10-02 23:00:00 963 \n", "15 sky is clear 2012-10-03 00:00:00 506 \n", "16 sky is clear 2012-10-03 01:00:00 321 \n", "17 sky is clear 2012-10-03 02:00:00 273 \n", "18 sky is clear 2012-10-03 03:00:00 367 \n", "19 sky is clear 2012-10-03 04:00:00 814 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "traffic.head(20)" ] }, { "cell_type": "code", "execution_count": 6, "id": "a9226ef5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['None', 'Columbus Day', 'Veterans Day', 'Thanksgiving Day',\n", " 'Christmas Day', 'New Years Day', 'Washingtons Birthday',\n", " 'Memorial Day', 'Independence Day', 'State Fair', 'Labor Day',\n", " 'Martin Luther King Jr Day'], dtype=object)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "traffic['holiday'].unique()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "24dea39b", "metadata": {}, "source": [ "## Hypothesis\n", "#### Null Hypothesis, HO\n", "Time is the number one factor that affects traffic the most.\n", "\n", "#### AlternativeHypothesis, H1\n", "Time is NOT the number one factor that affects traffic the most." ] }, { "attachments": {}, "cell_type": "markdown", "id": "91404ebc", "metadata": {}, "source": [ "## Questions\n", "1. Which holidays have the most traffic?\n", "2. Which weekdays have the most traffic?\n", "3. What time of day has the most traffic?(Is it morning, afternoon, evening, midnight or midday?)\n", "\n", "MORNING\n", "This is the time from midnight to midday.\n", "\n", "AFTERNOON\n", "This is the time from midday (noon) to evening.\n", "From 12:00 hours to approximately 18:00 hours.\n", "\n", "EVENING\n", "This is the time from the end of the afternoon to midnight.\n", "From approximately 18:00 hours to 00:00 hours.\n", "\n", "MIDNIGHT\n", "This is the middle of the night (00:00 hours).\n", "\n", "MIDDAY\n", "This is the middle of the day, also called \"NOON\" (12:00 hours).\n", "\n", "4. Which factor affects traffic the most?\n", "5. Compare rain, snow and temparature based on traffic_volume\n", "6. What's the highest recorded traffic?\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "b3785b0d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 48204 entries, 0 to 48203\n", "Data columns (total 9 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 holiday 48204 non-null object \n", " 1 temp 48204 non-null float64\n", " 2 rain_1h 48204 non-null float64\n", " 3 snow_1h 48204 non-null float64\n", " 4 clouds_all 48204 non-null int64 \n", " 5 weather_main 48204 non-null object \n", " 6 weather_description 48204 non-null object \n", " 7 date_time 48204 non-null object \n", " 8 traffic_volume 48204 non-null int64 \n", "dtypes: float64(3), int64(2), object(4)\n", "memory usage: 3.3+ MB\n" ] } ], "source": [ "traffic.info()" ] }, { "cell_type": "markdown", "id": "ce14e851", "metadata": {}, "source": [ "## Data Cleaning" ] }, { "cell_type": "code", "execution_count": 8, "id": "e8b71cde", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
holidaytemprain_1hsnow_1hclouds_allweather_mainweather_descriptiondate_timetraffic_volumedatetime
0None288.280.00.040Cloudsscattered clouds2012-10-02 09:00:0055452012-10-0209:00:00
\n", "
" ], "text/plain": [ " holiday temp rain_1h snow_1h clouds_all weather_main \\\n", "0 None 288.28 0.0 0.0 40 Clouds \n", "\n", " weather_description date_time traffic_volume date \\\n", "0 scattered clouds 2012-10-02 09:00:00 5545 2012-10-02 \n", "\n", " time \n", "0 09:00:00 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#splitting the date_time column into date and time\n", "traffic[['date','time']] = traffic['date_time'].str.split(' ',expand=True)\n", "traffic.head(1)" ] }, { "cell_type": "code", "execution_count": 9, "id": "3e5402a5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday',\n", " 'Monday'], dtype=object)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#creating weekday column from date_time column\n", "traffic['weekday'] =pd.to_datetime(traffic['date_time']).dt.day_name()\n", "#.dt.dayofweek\n", "traffic.drop(columns=['date_time'], axis=1, inplace = True)\n", "\n", "traffic['weekday'].unique()" ] }, { "cell_type": "code", "execution_count": 10, "id": "c2d9f7ae", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['morning', 'midday', 'afternoon', 'evening', 'midnight'],\n", " dtype=object)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def stringToTime(timeString):\n", " return datetime.strptime(timeString, '%H:%M:%S').time()\n", "midnight=stringToTime('00:00:00')\n", "midday=stringToTime('12:00:00')\n", "sixpm=stringToTime('18:00:00')\n", "\n", "#creating time_of_day column from time column\n", "traffic['time_of_day'] = traffic['time'].apply(\n", " lambda x: 'morning' if midnightmidnight \n", " else ('midday' if stringToTime(x)==midday\n", " else ('midnight' if stringToTime(x)==midnight\n", " else x)))) \n", ")\n", "\n", "#dropping time column\n", "#traffic.drop(columns=['time'], axis=1, inplace = True)\n", "traffic['time'] = traffic['time'].apply(lambda x: int(stringToTime(x).strftime(\"%H%M%S\")))\n", "# int(current_date.strftime(\"%Y%m%d%H%M%S\")))\n", "\n", "traffic['time_of_day'].unique()" ] }, { "cell_type": "code", "execution_count": 11, "id": "d01a7a20", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
holidaytemprain_1hsnow_1hclouds_allweather_mainweather_descriptiontraffic_volumedatetimeweekdaytime_of_day
0None288.280.00.040Cloudsscattered clouds55452012-10-0290000Tuesdaymorning
1None289.360.00.075Cloudsbroken clouds45162012-10-02100000Tuesdaymorning
2None289.580.00.090Cloudsovercast clouds47672012-10-02110000Tuesdaymorning
3None290.130.00.090Cloudsovercast clouds50262012-10-02120000Tuesdaymidday
4None291.140.00.075Cloudsbroken clouds49182012-10-02130000Tuesdayafternoon
5None291.720.00.01Clearsky is clear51812012-10-02140000Tuesdayafternoon
6None293.170.00.01Clearsky is clear55842012-10-02150000Tuesdayafternoon
7None293.860.00.01Clearsky is clear60152012-10-02160000Tuesdayafternoon
8None294.140.00.020Cloudsfew clouds57912012-10-02170000Tuesdayafternoon
9None293.100.00.020Cloudsfew clouds47702012-10-02180000Tuesdayafternoon
10None290.970.00.020Cloudsfew clouds35392012-10-02190000Tuesdayevening
11None289.380.00.01Clearsky is clear27842012-10-02200000Tuesdayevening
12None288.610.00.01Clearsky is clear23612012-10-02210000Tuesdayevening
13None287.160.00.01Clearsky is clear15292012-10-02220000Tuesdayevening
14None285.450.00.01Clearsky is clear9632012-10-02230000Tuesdayevening
15None284.630.00.01Clearsky is clear5062012-10-030Wednesdaymidnight
16None283.470.00.01Clearsky is clear3212012-10-0310000Wednesdaymorning
17None281.180.00.01Clearsky is clear2732012-10-0320000Wednesdaymorning
18None281.090.00.01Clearsky is clear3672012-10-0330000Wednesdaymorning
19None279.530.00.01Clearsky is clear8142012-10-0340000Wednesdaymorning
20None278.620.00.01Clearsky is clear27182012-10-0350000Wednesdaymorning
21None278.230.00.01Clearsky is clear56732012-10-0360000Wednesdaymorning
22None278.120.00.01Clearsky is clear65112012-10-0380000Wednesdaymorning
23None282.480.00.01Clearsky is clear54712012-10-0390000Wednesdaymorning
24None291.970.00.01Clearsky is clear50972012-10-03120000Wednesdaymidday
25None293.230.00.01Clearsky is clear48872012-10-03130000Wednesdayafternoon
26None294.310.00.01Clearsky is clear53372012-10-03140000Wednesdayafternoon
27None295.170.00.01Clearsky is clear56922012-10-03150000Wednesdayafternoon
28None295.130.00.01Clearsky is clear61372012-10-03160000Wednesdayafternoon
29None293.660.00.020Cloudsfew clouds46232012-10-03180000Wednesdayafternoon
30None290.650.00.020Cloudsfew clouds35912012-10-03190000Wednesdayevening
31None288.190.00.020Cloudsfew clouds28982012-10-03200000Wednesdayevening
32None287.100.00.01Clearsky is clear26372012-10-03210000Wednesdayevening
33None286.250.00.01Clearsky is clear17772012-10-03220000Wednesdayevening
34None285.260.00.01Clearsky is clear10152012-10-03230000Wednesdayevening
35None284.550.00.01Clearsky is clear5982012-10-040Thursdaymidnight
36None283.470.00.01Clearsky is clear3692012-10-0410000Thursdaymorning
37None283.170.00.01Clearsky is clear3122012-10-0420000Thursdaymorning
38None282.040.00.01Clearsky is clear3672012-10-0430000Thursdaymorning
39None281.690.00.01Clearsky is clear8352012-10-0440000Thursdaymorning
40None281.320.00.01Clearsky is clear27262012-10-0450000Thursdaymorning
41None280.740.00.01Clearsky is clear56892012-10-0460000Thursdaymorning
42None280.570.00.01Clearsky is clear69902012-10-0470000Thursdaymorning
43None281.860.00.01Clearsky is clear59852012-10-0480000Thursdaymorning
44None284.980.00.01Clearsky is clear53092012-10-0490000Thursdaymorning
45None289.180.00.01Clearsky is clear46032012-10-04100000Thursdaymorning
46None291.550.00.01Clearsky is clear48842012-10-04110000Thursdaymorning
47None294.970.00.01Clearsky is clear51042012-10-04120000Thursdaymidday
48None296.380.00.01Clearsky is clear51782012-10-04130000Thursdayafternoon
49None297.320.00.01Clearsky is clear55012012-10-04140000Thursdayafternoon
50None298.170.00.01Clearsky is clear57132012-10-04150000Thursdayafternoon
51None298.060.00.020Cloudsfew clouds62922012-10-04160000Thursdayafternoon
52None297.670.00.020Cloudsfew clouds60572012-10-04170000Thursdayafternoon
53None296.360.00.040Cloudsscattered clouds49072012-10-04180000Thursdayafternoon
54None293.850.00.040Cloudsscattered clouds35032012-10-04190000Thursdayevening
55None292.430.00.040Cloudsscattered clouds30372012-10-04200000Thursdayevening
56None291.770.00.075Cloudsbroken clouds28222012-10-04210000Thursdayevening
57None291.360.00.075Cloudsbroken clouds19922012-10-04220000Thursdayevening
58None291.120.00.075Cloudsbroken clouds11662012-10-04230000Thursdayevening
59None290.630.00.075Cloudsbroken clouds6272012-10-050Fridaymidnight
\n", "
" ], "text/plain": [ " holiday temp rain_1h snow_1h clouds_all weather_main \\\n", "0 None 288.28 0.0 0.0 40 Clouds \n", "1 None 289.36 0.0 0.0 75 Clouds \n", "2 None 289.58 0.0 0.0 90 Clouds \n", "3 None 290.13 0.0 0.0 90 Clouds \n", "4 None 291.14 0.0 0.0 75 Clouds \n", "5 None 291.72 0.0 0.0 1 Clear \n", "6 None 293.17 0.0 0.0 1 Clear \n", "7 None 293.86 0.0 0.0 1 Clear \n", "8 None 294.14 0.0 0.0 20 Clouds \n", "9 None 293.10 0.0 0.0 20 Clouds \n", "10 None 290.97 0.0 0.0 20 Clouds \n", "11 None 289.38 0.0 0.0 1 Clear \n", "12 None 288.61 0.0 0.0 1 Clear \n", "13 None 287.16 0.0 0.0 1 Clear \n", "14 None 285.45 0.0 0.0 1 Clear \n", "15 None 284.63 0.0 0.0 1 Clear \n", "16 None 283.47 0.0 0.0 1 Clear \n", "17 None 281.18 0.0 0.0 1 Clear \n", "18 None 281.09 0.0 0.0 1 Clear \n", "19 None 279.53 0.0 0.0 1 Clear \n", "20 None 278.62 0.0 0.0 1 Clear \n", "21 None 278.23 0.0 0.0 1 Clear \n", "22 None 278.12 0.0 0.0 1 Clear \n", "23 None 282.48 0.0 0.0 1 Clear \n", "24 None 291.97 0.0 0.0 1 Clear \n", "25 None 293.23 0.0 0.0 1 Clear \n", "26 None 294.31 0.0 0.0 1 Clear \n", "27 None 295.17 0.0 0.0 1 Clear \n", "28 None 295.13 0.0 0.0 1 Clear \n", "29 None 293.66 0.0 0.0 20 Clouds \n", "30 None 290.65 0.0 0.0 20 Clouds \n", "31 None 288.19 0.0 0.0 20 Clouds \n", "32 None 287.10 0.0 0.0 1 Clear \n", "33 None 286.25 0.0 0.0 1 Clear \n", "34 None 285.26 0.0 0.0 1 Clear \n", "35 None 284.55 0.0 0.0 1 Clear \n", "36 None 283.47 0.0 0.0 1 Clear \n", "37 None 283.17 0.0 0.0 1 Clear \n", "38 None 282.04 0.0 0.0 1 Clear \n", "39 None 281.69 0.0 0.0 1 Clear \n", "40 None 281.32 0.0 0.0 1 Clear \n", "41 None 280.74 0.0 0.0 1 Clear \n", "42 None 280.57 0.0 0.0 1 Clear \n", "43 None 281.86 0.0 0.0 1 Clear \n", "44 None 284.98 0.0 0.0 1 Clear \n", "45 None 289.18 0.0 0.0 1 Clear \n", "46 None 291.55 0.0 0.0 1 Clear \n", "47 None 294.97 0.0 0.0 1 Clear \n", "48 None 296.38 0.0 0.0 1 Clear \n", "49 None 297.32 0.0 0.0 1 Clear \n", "50 None 298.17 0.0 0.0 1 Clear \n", "51 None 298.06 0.0 0.0 20 Clouds \n", "52 None 297.67 0.0 0.0 20 Clouds \n", "53 None 296.36 0.0 0.0 40 Clouds \n", "54 None 293.85 0.0 0.0 40 Clouds \n", "55 None 292.43 0.0 0.0 40 Clouds \n", "56 None 291.77 0.0 0.0 75 Clouds \n", "57 None 291.36 0.0 0.0 75 Clouds \n", "58 None 291.12 0.0 0.0 75 Clouds \n", "59 None 290.63 0.0 0.0 75 Clouds \n", "\n", " weather_description traffic_volume date time weekday \\\n", "0 scattered clouds 5545 2012-10-02 90000 Tuesday \n", "1 broken clouds 4516 2012-10-02 100000 Tuesday \n", "2 overcast clouds 4767 2012-10-02 110000 Tuesday \n", "3 overcast clouds 5026 2012-10-02 120000 Tuesday \n", "4 broken clouds 4918 2012-10-02 130000 Tuesday \n", "5 sky is clear 5181 2012-10-02 140000 Tuesday \n", "6 sky is clear 5584 2012-10-02 150000 Tuesday \n", "7 sky is clear 6015 2012-10-02 160000 Tuesday \n", "8 few clouds 5791 2012-10-02 170000 Tuesday \n", "9 few clouds 4770 2012-10-02 180000 Tuesday \n", "10 few clouds 3539 2012-10-02 190000 Tuesday \n", "11 sky is clear 2784 2012-10-02 200000 Tuesday \n", "12 sky is clear 2361 2012-10-02 210000 Tuesday \n", "13 sky is clear 1529 2012-10-02 220000 Tuesday \n", "14 sky is clear 963 2012-10-02 230000 Tuesday \n", "15 sky is clear 506 2012-10-03 0 Wednesday \n", "16 sky is clear 321 2012-10-03 10000 Wednesday \n", "17 sky is clear 273 2012-10-03 20000 Wednesday \n", "18 sky is clear 367 2012-10-03 30000 Wednesday \n", "19 sky is clear 814 2012-10-03 40000 Wednesday \n", "20 sky is clear 2718 2012-10-03 50000 Wednesday \n", "21 sky is clear 5673 2012-10-03 60000 Wednesday \n", "22 sky is clear 6511 2012-10-03 80000 Wednesday \n", "23 sky is clear 5471 2012-10-03 90000 Wednesday \n", "24 sky is clear 5097 2012-10-03 120000 Wednesday \n", "25 sky is clear 4887 2012-10-03 130000 Wednesday \n", "26 sky is clear 5337 2012-10-03 140000 Wednesday \n", "27 sky is clear 5692 2012-10-03 150000 Wednesday \n", "28 sky is clear 6137 2012-10-03 160000 Wednesday \n", "29 few clouds 4623 2012-10-03 180000 Wednesday \n", "30 few clouds 3591 2012-10-03 190000 Wednesday \n", "31 few clouds 2898 2012-10-03 200000 Wednesday \n", "32 sky is clear 2637 2012-10-03 210000 Wednesday \n", "33 sky is clear 1777 2012-10-03 220000 Wednesday \n", "34 sky is clear 1015 2012-10-03 230000 Wednesday \n", "35 sky is clear 598 2012-10-04 0 Thursday \n", "36 sky is clear 369 2012-10-04 10000 Thursday \n", "37 sky is clear 312 2012-10-04 20000 Thursday \n", "38 sky is clear 367 2012-10-04 30000 Thursday \n", "39 sky is clear 835 2012-10-04 40000 Thursday \n", "40 sky is clear 2726 2012-10-04 50000 Thursday \n", "41 sky is clear 5689 2012-10-04 60000 Thursday \n", "42 sky is clear 6990 2012-10-04 70000 Thursday \n", "43 sky is clear 5985 2012-10-04 80000 Thursday \n", "44 sky is clear 5309 2012-10-04 90000 Thursday \n", "45 sky is clear 4603 2012-10-04 100000 Thursday \n", "46 sky is clear 4884 2012-10-04 110000 Thursday \n", "47 sky is clear 5104 2012-10-04 120000 Thursday \n", "48 sky is clear 5178 2012-10-04 130000 Thursday \n", "49 sky is clear 5501 2012-10-04 140000 Thursday \n", "50 sky is clear 5713 2012-10-04 150000 Thursday \n", "51 few clouds 6292 2012-10-04 160000 Thursday \n", "52 few clouds 6057 2012-10-04 170000 Thursday \n", "53 scattered clouds 4907 2012-10-04 180000 Thursday \n", "54 scattered clouds 3503 2012-10-04 190000 Thursday \n", "55 scattered clouds 3037 2012-10-04 200000 Thursday \n", "56 broken clouds 2822 2012-10-04 210000 Thursday \n", "57 broken clouds 1992 2012-10-04 220000 Thursday \n", "58 broken clouds 1166 2012-10-04 230000 Thursday \n", "59 broken clouds 627 2012-10-05 0 Friday \n", "\n", " time_of_day \n", "0 morning \n", "1 morning \n", "2 morning \n", "3 midday \n", "4 afternoon \n", "5 afternoon \n", "6 afternoon \n", "7 afternoon \n", "8 afternoon \n", "9 afternoon \n", "10 evening \n", "11 evening \n", "12 evening \n", "13 evening \n", "14 evening \n", "15 midnight \n", "16 morning \n", "17 morning \n", "18 morning \n", "19 morning \n", "20 morning \n", "21 morning \n", "22 morning \n", "23 morning \n", "24 midday \n", "25 afternoon \n", "26 afternoon \n", "27 afternoon \n", "28 afternoon \n", "29 afternoon \n", "30 evening \n", "31 evening \n", "32 evening \n", "33 evening \n", "34 evening \n", "35 midnight \n", "36 morning \n", "37 morning \n", "38 morning \n", "39 morning \n", "40 morning \n", "41 morning \n", "42 morning \n", "43 morning \n", "44 morning \n", "45 morning \n", "46 morning \n", "47 midday \n", "48 afternoon \n", "49 afternoon \n", "50 afternoon \n", "51 afternoon \n", "52 afternoon \n", "53 afternoon \n", "54 evening \n", "55 evening \n", "56 evening \n", "57 evening \n", "58 evening \n", "59 midnight " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "traffic.head(60)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "234ed0f7", "metadata": {}, "source": [ "## Analysis\n", "\n", "1. Which holidays have the most traffic?" ] }, { "cell_type": "code", "execution_count": 12, "id": "25fe655c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
holidaytraffic_volume
6New Years Day8136
3Labor Day7092
9Thanksgiving Day5601
5Memorial Day5538
2Independence Day5380
0Christmas Day4965
4Martin Luther King Jr Day3676
10Veterans Day3457
11Washingtons Birthday3176
8State Fair3174
1Columbus Day2597
\n", "
" ], "text/plain": [ " holiday traffic_volume\n", "6 New Years Day 8136\n", "3 Labor Day 7092\n", "9 Thanksgiving Day 5601\n", "5 Memorial Day 5538\n", "2 Independence Day 5380\n", "0 Christmas Day 4965\n", "4 Martin Luther King Jr Day 3676\n", "10 Veterans Day 3457\n", "11 Washingtons Birthday 3176\n", "8 State Fair 3174\n", "1 Columbus Day 2597" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "top_holidays=traffic.groupby(\"holiday\")[\"traffic_volume\"].sum().reset_index().sort_values(by=\"traffic_volume\",ascending=False)\n", "top_holidays=top_holidays[top_holidays.holiday != 'None']\n", "top_holidays" ] }, { "cell_type": "code", "execution_count": 25, "id": "6f96ece4", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\My Pc\\AppData\\Local\\Temp\\ipykernel_6252\\3356038720.py:5: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(12,5))\n", "plt.title(\"Top Holidays by Traffic_Volume\")\n", "sns.barplot(data=top_holidays.head(-7), y=\"holiday\", x=\"traffic_volume\", palette='Blues_d')\n", "\n", "fig.show()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "96c5abcf", "metadata": {}, "source": [ "2. Which weekdays have the most traffic?" ] }, { "cell_type": "code", "execution_count": 14, "id": "2cf7073a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
weekdaytraffic_volume
0Friday24994869
6Wednesday24831553
4Thursday24799562
5Tuesday23882653
1Monday23403986
2Saturday18946722
3Sunday16276939
\n", "
" ], "text/plain": [ " weekday traffic_volume\n", "0 Friday 24994869\n", "6 Wednesday 24831553\n", "4 Thursday 24799562\n", "5 Tuesday 23882653\n", "1 Monday 23403986\n", "2 Saturday 18946722\n", "3 Sunday 16276939" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "top_weekdays=traffic.groupby('weekday')[\"traffic_volume\"].sum().reset_index().sort_values(by=\"traffic_volume\",ascending=False)\n", "top_weekdays" ] }, { "cell_type": "code", "execution_count": 43, "id": "a1759ba3", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\My Pc\\AppData\\Local\\Temp\\ipykernel_6252\\610389464.py:5: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(5,5))\n", "plt.title(\"Top Weekdays by Traffic_Volume\")\n", "sns.barplot(data=top_weekdays.head(-3), x=\"weekday\", y=\"traffic_volume\")\n", "\n", "fig.show()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "13f2df38", "metadata": {}, "source": [ "3. What time of day has the most traffic?(Is it morning, afternoon, evening, midnight or midday?)" ] }, { "cell_type": "code", "execution_count": 15, "id": "643abff2", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
time_of_daytraffic_volume
4morning62684570
0afternoon58819695
1evening24707307
2midday9224263
3midnight1700449
\n", "
" ], "text/plain": [ " time_of_day traffic_volume\n", "4 morning 62684570\n", "0 afternoon 58819695\n", "1 evening 24707307\n", "2 midday 9224263\n", "3 midnight 1700449" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "top_hours=traffic.groupby('time_of_day')[\"traffic_volume\"].sum().reset_index().sort_values(by=\"traffic_volume\",ascending=False)\n", "top_hours" ] }, { "attachments": {}, "cell_type": "markdown", "id": "063b579c", "metadata": {}, "source": [ "4. Which factor affects traffic the most?" ] }, { "cell_type": "code", "execution_count": 16, "id": "2a42125f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "traffic_volume 1.000000\n", "time 0.352401\n", "temp 0.130299\n", "clouds_all 0.067054\n", "rain_1h 0.004714\n", "snow_1h 0.000733\n", "Name: traffic_volume, dtype: float64" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "corr_matrix=traffic.corr()\n", "corr_matrix['traffic_volume'].sort_values(ascending=False)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "2b3bc9d3", "metadata": {}, "source": [ "No variable has a strong linear correlation with traffic_volume.\n", "\n", "Although traffic is independent of all other variables in our data, time has the strongest linear correlation with traffic volume.\n", "\n", "Our null hypothesis is therefore true, since time affects traffic_volume the most." ] }, { "attachments": {}, "cell_type": "markdown", "id": "67659970", "metadata": {}, "source": [ "5. Compare rain, snow and temparature based on traffic_volume" ] }, { "attachments": {}, "cell_type": "markdown", "id": "d56cbf1e", "metadata": {}, "source": [ "6. What's the highest recorded traffic?" ] }, { "cell_type": "code", "execution_count": 17, "id": "a471549c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
holidaytemprain_1hsnow_1hclouds_allweather_mainweather_descriptiontraffic_volumedatetimeweekdaytime_of_day
31615None270.750.00.090Cloudsovercast clouds72802017-03-09160000Thursdayafternoon
\n", "
" ], "text/plain": [ " holiday temp rain_1h snow_1h clouds_all weather_main \\\n", "31615 None 270.75 0.0 0.0 90 Clouds \n", "\n", " weather_description traffic_volume date time weekday \\\n", "31615 overcast clouds 7280 2017-03-09 160000 Thursday \n", "\n", " time_of_day \n", "31615 afternoon " ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "top_traffic = traffic.sort_values('traffic_volume', ascending=False)\n", "top_traffic.head(1)" ] }, { "cell_type": "code", "execution_count": null, "id": "a64934ba", "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.9.12" }, "vscode": { "interpreter": { "hash": "0bc6de047e58dac5738e6fd71455bb891a228ea6d3201e9c8a63259fc0a2df17" } } }, "nbformat": 4, "nbformat_minor": 5 }