Task Details¶
- Go through the dataset and perform preprocessing and then perform a 90:10 split for train and test purposes.
- Firstly label encode the columns which are required.
- Your target or y variable is TAXI-OUT time. Use all 8 algorithms above on the dataset with loss score as RMSE (Root mean Square Error).
- Now, One-Hot encode all the data points and perform the 3rd Step again.
Keep in mind that you will be using the same splitted dataframe for all the training and testing and should not split again.
Some models to consider:-¶
Linear Models:-
- Linear Regression
- Ridge Regression(Popularily L1)
- Lasso Regression(Popularily L2)
Non linear Models:-
- KNN model
- SVR
- Naive Bayes
- Random Forest
- LightGBM(Tree Based Model)
Expected Submission¶
Submit a notebook to see if label encoding or one hot encoding is better for the model and which out of the 8 algorithms which is the best. Just a comparative study and plots to understand the results on bigger datasets.
Evaluation¶
Having a complete report along with comparative graphs.
In [ ]:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import Lasso
from sklearn.linear_model import Ridge
from sklearn.linear_model import RidgeCV
from sklearn.model_selection import RepeatedKFold
from numpy import arange
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.neighbors import KNeighborsRegressor
from sklearn.svm import SVR
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import BayesianRidge
from sklearn.ensemble import RandomForestRegressor
from lightgbm import LGBMRegressor
In [ ]:
pd.set_option('display.width', 1200)
pd.set_option('display.max_columns', 25)
Loading the data from csv file¶
In [ ]:
taxi = pd.read_csv('M1_final.csv')
taxi.head()
Out[ ]:
| MONTH | DAY_OF_MONTH | DAY_OF_WEEK | OP_UNIQUE_CARRIER | TAIL_NUM | DEST | DEP_DELAY | CRS_ELAPSED_TIME | DISTANCE | CRS_DEP_M | DEP_TIME_M | CRS_ARR_M | Temperature | Dew Point | Humidity | Wind | Wind Speed | Wind Gust | Pressure | Condition | sch_dep | sch_arr | TAXI_OUT | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 11 | 1 | 5 | B6 | N828JB | CHS | -1 | 124 | 636 | 324 | 323 | 448 | 48 | 34 | 58 | W | 25 | 38 | 29.86 | Fair / Windy | 9 | 17 | 14 |
| 1 | 11 | 1 | 5 | B6 | N992JB | LAX | -7 | 371 | 2475 | 340 | 333 | 531 | 48 | 34 | 58 | W | 25 | 38 | 29.86 | Fair / Windy | 9 | 17 | 15 |
| 2 | 11 | 1 | 5 | B6 | N959JB | FLL | 40 | 181 | 1069 | 301 | 341 | 482 | 48 | 34 | 58 | W | 25 | 38 | 29.86 | Fair / Windy | 9 | 17 | 22 |
| 3 | 11 | 1 | 5 | B6 | N999JQ | MCO | -2 | 168 | 944 | 345 | 343 | 513 | 48 | 34 | 58 | W | 25 | 38 | 29.86 | Fair / Windy | 9 | 17 | 12 |
| 4 | 11 | 1 | 5 | DL | N880DN | ATL | -4 | 139 | 760 | 360 | 356 | 499 | 46 | 32 | 58 | W | 24 | 35 | 29.91 | Fair / Windy | 9 | 17 | 13 |
In [ ]:
col_names = {"OP_UNIQUE_CARRIER":"CARRIER_CODE",
"TAIL_NUM":"FLIGHT_NO",
"CRS_ELAPSED_TIME":"SCHEDULED_DURATION",
"CRS_DEP_M":"SCHEDULED_DEPARTURE",
"DEP_TIME_M":"ACTUAL_DEP_TIME",
"CRS_ARR_M":"SCHEDULED_ARRIVAL",
"sch_dep":"FLT_SCH_ARRIVAL",
"sch_arr":"FLT_SCH_DEPARTURE"}
taxi = taxi.rename(col_names, axis=1)
taxi.head()
Out[ ]:
| MONTH | DAY_OF_MONTH | DAY_OF_WEEK | CARRIER_CODE | FLIGHT_NO | DEST | DEP_DELAY | SCHEDULED_DURATION | DISTANCE | SCHEDULED_DEPARTURE | ACTUAL_DEP_TIME | SCHEDULED_ARRIVAL | Temperature | Dew Point | Humidity | Wind | Wind Speed | Wind Gust | Pressure | Condition | FLT_SCH_ARRIVAL | FLT_SCH_DEPARTURE | TAXI_OUT | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 11 | 1 | 5 | B6 | N828JB | CHS | -1 | 124 | 636 | 324 | 323 | 448 | 48 | 34 | 58 | W | 25 | 38 | 29.86 | Fair / Windy | 9 | 17 | 14 |
| 1 | 11 | 1 | 5 | B6 | N992JB | LAX | -7 | 371 | 2475 | 340 | 333 | 531 | 48 | 34 | 58 | W | 25 | 38 | 29.86 | Fair / Windy | 9 | 17 | 15 |
| 2 | 11 | 1 | 5 | B6 | N959JB | FLL | 40 | 181 | 1069 | 301 | 341 | 482 | 48 | 34 | 58 | W | 25 | 38 | 29.86 | Fair / Windy | 9 | 17 | 22 |
| 3 | 11 | 1 | 5 | B6 | N999JQ | MCO | -2 | 168 | 944 | 345 | 343 | 513 | 48 | 34 | 58 | W | 25 | 38 | 29.86 | Fair / Windy | 9 | 17 | 12 |
| 4 | 11 | 1 | 5 | DL | N880DN | ATL | -4 | 139 | 760 | 360 | 356 | 499 | 46 | 32 | 58 | W | 24 | 35 | 29.91 | Fair / Windy | 9 | 17 | 13 |
Preparing the Data for Analysis¶
Checking for and dropping missing values¶
In [ ]:
taxi.isnull().sum() # will show the total number of missing values for each feature
Out[ ]:
MONTH 0 DAY_OF_MONTH 0 DAY_OF_WEEK 0 CARRIER_CODE 0 FLIGHT_NO 0 DEST 0 DEP_DELAY 0 SCHEDULED_DURATION 0 DISTANCE 0 SCHEDULED_DEPARTURE 0 ACTUAL_DEP_TIME 0 SCHEDULED_ARRIVAL 0 Temperature 0 Dew Point 0 Humidity 0 Wind 2 Wind Speed 0 Wind Gust 0 Pressure 0 Condition 0 FLT_SCH_ARRIVAL 0 FLT_SCH_DEPARTURE 0 TAXI_OUT 0 dtype: int64
In [ ]:
taxi = taxi.dropna() # drop rows with missing values, reassign the dataframe with no null values as taxi
taxi.isnull().sum() # check to see the missing values have been dropped
Out[ ]:
MONTH 0 DAY_OF_MONTH 0 DAY_OF_WEEK 0 CARRIER_CODE 0 FLIGHT_NO 0 DEST 0 DEP_DELAY 0 SCHEDULED_DURATION 0 DISTANCE 0 SCHEDULED_DEPARTURE 0 ACTUAL_DEP_TIME 0 SCHEDULED_ARRIVAL 0 Temperature 0 Dew Point 0 Humidity 0 Wind 0 Wind Speed 0 Wind Gust 0 Pressure 0 Condition 0 FLT_SCH_ARRIVAL 0 FLT_SCH_DEPARTURE 0 TAXI_OUT 0 dtype: int64
Aggregating using: min, max, means, sum, distinct and count.¶
In [ ]:
pd.set_option('display.max_columns', 120) # configure dataframe to show all columns
dest = taxi.drop(columns=['MONTH', 'DAY_OF_MONTH', 'DAY_OF_WEEK']) # create new dataframe from taxi and drop the date columns
dest.groupby(['DEST']).describe() # creates dataframe grouped by destinations, showing details on relevant columns' numerical data.
Out[ ]:
| DEP_DELAY | SCHEDULED_DURATION | DISTANCE | SCHEDULED_DEPARTURE | ACTUAL_DEP_TIME | SCHEDULED_ARRIVAL | Temperature | Humidity | Wind Speed | Wind Gust | Pressure | FLT_SCH_ARRIVAL | FLT_SCH_DEPARTURE | TAXI_OUT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | |
| DEST | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ABQ | 58.0 | 10.327586 | 39.259098 | -13.0 | -6.75 | -3.0 | 7.00 | 215.0 | 58.0 | 310.258621 | 3.522162 | 307.0 | 307.0 | 307.0 | 314.0 | 314.0 | 58.0 | 1826.0 | 0.0 | 1826.0 | 1826.0 | 1826.0 | 1826.0 | 1826.0 | 58.0 | 1195.844828 | 4.697150 | 1189.0 | 1193.0 | 1200.0 | 1200.0 | 1200.0 | 58.0 | 1206.172414 | 40.006200 | 1178.0 | 1190.00 | 1194.0 | 1203.25 | 1415.0 | 58.0 | 1386.103448 | 1.682622 | 1383.0 | 1387.0 | 1387.0 | 1387.0 | 1387.0 | 58.0 | 41.758621 | 7.472312 | 26.0 | 36.00 | 42.0 | 48.0 | 56.0 | 58.0 | 62.327586 | 23.869814 | 10.0 | 49.25 | 61.0 | 84.25 | 97.0 | 58.0 | 11.948276 | 5.325946 | 0.0 | 7.25 | 12.0 | 16.00 | 25.0 | 58.0 | 5.551724 | 11.050399 | 0.0 | 0.0 | 0.0 | 0.0 | 33.0 | 58.0 | 30.083966 | 0.305424 | 29.38 | 29.8925 | 30.095 | 30.2975 | 30.73 | 58.0 | 37.189655 | 6.974784 | 19.0 | 33.0 | 40.0 | 41.75 | 47.0 | 58.0 | 31.465517 | 5.737582 | 13.0 | 28.0 | 31.0 | 33.75 | 43.0 | 58.0 | 22.620690 | 8.243717 | 11.0 | 15.0 | 21.0 | 29.0 | 41.0 |
| ATL | 795.0 | 6.725786 | 26.290094 | -13.0 | -4.00 | -1.0 | 6.50 | 341.0 | 795.0 | 158.148428 | 6.547875 | 136.0 | 155.0 | 158.0 | 163.0 | 172.0 | 795.0 | 760.0 | 0.0 | 760.0 | 760.0 | 760.0 | 760.0 | 760.0 | 795.0 | 780.316981 | 280.985778 | 315.0 | 510.0 | 833.0 | 1015.0 | 1275.0 | 795.0 | 787.042767 | 285.398459 | 314.0 | 509.00 | 835.0 | 1012.00 | 1356.0 | 795.0 | 938.465409 | 284.157564 | 463.0 | 665.0 | 983.0 | 1169.0 | 1433.0 | 795.0 | 41.530818 | 8.252013 | 17.0 | 35.50 | 42.0 | 47.0 | 67.0 | 795.0 | 57.201258 | 23.670753 | 10.0 | 45.00 | 59.0 | 74.00 | 97.0 | 795.0 | 12.396226 | 6.267162 | 0.0 | 8.00 | 12.0 | 16.00 | 36.0 | 795.0 | 5.322013 | 11.705322 | 0.0 | 0.0 | 0.0 | 0.0 | 47.0 | 795.0 | 30.086679 | 0.294683 | 29.21 | 29.8800 | 30.110 | 30.3100 | 30.74 | 795.0 | 30.070440 | 10.505849 | 6.0 | 26.0 | 30.0 | 36.00 | 55.0 | 795.0 | 28.817610 | 8.360167 | 13.0 | 20.0 | 31.0 | 36.00 | 45.0 | 795.0 | 19.272956 | 6.881488 | 7.0 | 14.0 | 18.0 | 23.0 | 41.0 |
| AUS | 485.0 | 4.682474 | 27.899950 | -14.0 | -6.00 | -3.0 | 1.00 | 219.0 | 485.0 | 261.525773 | 6.883765 | 237.0 | 257.0 | 263.0 | 265.0 | 277.0 | 485.0 | 1521.0 | 0.0 | 1521.0 | 1521.0 | 1521.0 | 1521.0 | 1521.0 | 485.0 | 915.839175 | 327.606022 | 432.0 | 555.0 | 1090.0 | 1259.0 | 1391.0 | 485.0 | 905.676289 | 340.460645 | 4.0 | 551.00 | 826.0 | 1259.00 | 1432.0 | 485.0 | 710.602062 | 473.716208 | 29.0 | 68.0 | 752.0 | 1020.0 | 1439.0 | 485.0 | 41.059794 | 7.876535 | 21.0 | 35.00 | 41.0 | 47.0 | 67.0 | 485.0 | 58.736082 | 23.388394 | 10.0 | 47.00 | 60.0 | 75.00 | 97.0 | 485.0 | 12.484536 | 6.251799 | 0.0 | 8.00 | 12.0 | 16.00 | 35.0 | 485.0 | 5.171134 | 11.672068 | 0.0 | 0.0 | 0.0 | 0.0 | 45.0 | 485.0 | 30.102474 | 0.296995 | 29.23 | 29.8800 | 30.120 | 30.3300 | 30.74 | 485.0 | 34.263918 | 8.710237 | 3.0 | 29.0 | 33.0 | 39.00 | 55.0 | 485.0 | 28.070103 | 8.684985 | 3.0 | 20.0 | 30.0 | 35.00 | 45.0 | 485.0 | 19.226804 | 6.192346 | 9.0 | 15.0 | 18.0 | 23.0 | 41.0 |
| BNA | 366.0 | 4.106557 | 30.840324 | -14.0 | -8.00 | -4.5 | 0.00 | 199.0 | 366.0 | 166.013661 | 5.357604 | 154.0 | 163.0 | 165.0 | 170.0 | 175.0 | 366.0 | 765.0 | 0.0 | 765.0 | 765.0 | 765.0 | 765.0 | 765.0 | 366.0 | 919.994536 | 247.202429 | 485.0 | 815.0 | 951.0 | 1135.0 | 1230.0 | 366.0 | 924.101093 | 248.513042 | 483.0 | 810.00 | 945.5 | 1131.00 | 1302.0 | 366.0 | 1026.008197 | 245.996085 | 580.0 | 919.0 | 1066.0 | 1241.0 | 1337.0 | 366.0 | 42.232240 | 7.778308 | 23.0 | 36.00 | 42.0 | 48.0 | 67.0 | 366.0 | 57.677596 | 22.930984 | 10.0 | 45.25 | 58.5 | 73.00 | 97.0 | 366.0 | 12.543716 | 6.352392 | 0.0 | 8.00 | 12.0 | 16.00 | 35.0 | 366.0 | 6.109290 | 12.318115 | 0.0 | 0.0 | 0.0 | 0.0 | 45.0 | 366.0 | 30.093907 | 0.291997 | 29.23 | 29.8900 | 30.110 | 30.3100 | 30.74 | 366.0 | 36.155738 | 7.914634 | 20.0 | 29.0 | 37.0 | 41.00 | 55.0 | 366.0 | 32.191257 | 8.488286 | 12.0 | 28.0 | 34.5 | 38.00 | 45.0 | 366.0 | 19.702186 | 7.110967 | 7.0 | 15.0 | 19.0 | 24.0 | 41.0 |
| BOS | 1243.0 | 10.536605 | 43.788570 | -16.0 | -6.00 | -3.0 | 3.50 | 515.0 | 1243.0 | 78.744167 | 7.367545 | 66.0 | 73.0 | 79.0 | 83.0 | 104.0 | 1243.0 | 187.0 | 0.0 | 187.0 | 187.0 | 187.0 | 187.0 | 187.0 | 1243.0 | 870.674980 | 315.771158 | 360.0 | 597.0 | 862.0 | 1165.0 | 1395.0 | 1243.0 | 861.517297 | 326.669282 | 2.0 | 569.00 | 849.0 | 1137.50 | 1436.0 | 1243.0 | 821.985519 | 371.751796 | 3.0 | 555.0 | 833.0 | 1108.0 | 1430.0 | 1243.0 | 41.448109 | 8.122324 | 18.0 | 36.00 | 42.0 | 47.0 | 67.0 | 1243.0 | 57.622687 | 23.067360 | 10.0 | 46.00 | 58.0 | 73.50 | 97.0 | 1243.0 | 12.336283 | 6.314327 | 0.0 | 8.00 | 12.0 | 16.00 | 35.0 | 1243.0 | 5.577635 | 11.979090 | 0.0 | 0.0 | 0.0 | 0.0 | 49.0 | 1243.0 | 30.102904 | 0.292522 | 29.22 | 29.8900 | 30.120 | 30.3300 | 30.75 | 1243.0 | 28.242156 | 8.278958 | 1.0 | 21.0 | 29.0 | 34.00 | 52.0 | 1243.0 | 27.872084 | 7.799142 | 0.0 | 21.0 | 29.0 | 34.00 | 46.0 | 1243.0 | 20.218825 | 6.371894 | 9.0 | 16.0 | 19.0 | 24.0 | 41.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| SMF | 82.0 | 11.292683 | 30.616903 | -10.0 | -5.00 | -1.0 | 12.25 | 151.0 | 82.0 | 385.951220 | 7.525926 | 379.0 | 379.0 | 379.0 | 394.0 | 394.0 | 82.0 | 2521.0 | 0.0 | 2521.0 | 2521.0 | 2521.0 | 2521.0 | 2521.0 | 82.0 | 1026.963415 | 20.042206 | 1000.0 | 1019.0 | 1020.0 | 1052.0 | 1052.0 | 82.0 | 1038.256098 | 36.266779 | 992.0 | 1015.00 | 1037.0 | 1054.00 | 1171.0 | 82.0 | 1232.914634 | 15.285918 | 1214.0 | 1218.0 | 1234.0 | 1251.0 | 1251.0 | 82.0 | 41.768293 | 7.204763 | 25.0 | 37.00 | 41.5 | 46.0 | 61.0 | 82.0 | 55.878049 | 22.971475 | 10.0 | 44.25 | 57.0 | 70.00 | 96.0 | 82.0 | 12.182927 | 5.604513 | 0.0 | 7.25 | 12.0 | 16.75 | 25.0 | 82.0 | 4.195122 | 10.282958 | 0.0 | 0.0 | 0.0 | 0.0 | 35.0 | 82.0 | 30.083171 | 0.292751 | 29.22 | 29.9000 | 30.110 | 30.3000 | 30.74 | 82.0 | 30.219512 | 4.000075 | 20.0 | 28.0 | 30.0 | 32.00 | 42.0 | 82.0 | 30.646341 | 2.786085 | 24.0 | 28.0 | 31.0 | 32.00 | 38.0 | 82.0 | 18.878049 | 5.774337 | 11.0 | 15.0 | 18.0 | 22.0 | 38.0 |
| SRQ | 105.0 | 4.942857 | 39.103617 | -13.0 | -6.00 | -3.0 | 2.00 | 372.0 | 105.0 | 189.952381 | 7.836528 | 183.0 | 184.0 | 190.0 | 190.0 | 209.0 | 105.0 | 1041.0 | 0.0 | 1041.0 | 1041.0 | 1041.0 | 1041.0 | 1041.0 | 105.0 | 535.780952 | 58.645936 | 449.0 | 490.0 | 560.0 | 568.0 | 614.0 | 105.0 | 540.723810 | 71.747219 | 440.0 | 486.00 | 561.0 | 582.00 | 932.0 | 105.0 | 725.733333 | 56.251370 | 633.0 | 692.0 | 744.0 | 752.0 | 804.0 | 105.0 | 40.714286 | 8.015267 | 21.0 | 37.00 | 40.0 | 46.0 | 60.0 | 105.0 | 58.914286 | 24.412762 | 10.0 | 48.00 | 61.0 | 77.00 | 97.0 | 105.0 | 12.228571 | 6.498901 | 0.0 | 7.00 | 10.0 | 16.00 | 31.0 | 105.0 | 5.447619 | 11.931681 | 0.0 | 0.0 | 0.0 | 0.0 | 41.0 | 105.0 | 30.096571 | 0.307286 | 29.23 | 29.8300 | 30.130 | 30.3300 | 30.73 | 105.0 | 35.885714 | 9.020611 | 17.0 | 31.0 | 36.0 | 41.00 | 55.0 | 105.0 | 22.866667 | 7.037081 | 11.0 | 19.0 | 20.0 | 23.00 | 37.0 | 105.0 | 19.895238 | 6.139287 | 10.0 | 15.0 | 19.0 | 24.0 | 38.0 |
| STT | 62.0 | 0.467742 | 11.465869 | -10.0 | -5.75 | -3.0 | 0.00 | 43.0 | 62.0 | 234.451613 | 3.700587 | 228.0 | 232.0 | 232.5 | 238.0 | 243.0 | 62.0 | 1623.0 | 0.0 | 1623.0 | 1623.0 | 1623.0 | 1623.0 | 1623.0 | 62.0 | 516.838710 | 39.070006 | 492.0 | 492.0 | 515.0 | 515.0 | 680.0 | 62.0 | 517.306452 | 42.409243 | 485.0 | 501.25 | 510.0 | 514.00 | 723.0 | 62.0 | 809.354839 | 40.533369 | 746.0 | 790.0 | 807.0 | 807.0 | 975.0 | 62.0 | 39.403226 | 8.237180 | 22.0 | 34.25 | 39.5 | 45.0 | 61.0 | 62.0 | 55.629032 | 25.873104 | 10.0 | 48.00 | 60.0 | 71.50 | 97.0 | 62.0 | 12.693548 | 6.674121 | 0.0 | 8.25 | 12.0 | 16.75 | 31.0 | 62.0 | 7.241935 | 13.233942 | 0.0 | 0.0 | 0.0 | 0.0 | 41.0 | 62.0 | 30.126613 | 0.323571 | 29.26 | 29.8700 | 30.190 | 30.3475 | 30.73 | 62.0 | 47.483871 | 5.833037 | 20.0 | 45.0 | 47.5 | 51.00 | 55.0 | 62.0 | 17.919355 | 1.884348 | 12.0 | 17.0 | 18.0 | 19.00 | 23.0 | 62.0 | 26.661290 | 7.539934 | 14.0 | 21.0 | 27.0 | 33.5 | 40.0 |
| SYR | 389.0 | 5.511568 | 33.195267 | -15.0 | -7.00 | -5.0 | -1.00 | 262.0 | 389.0 | 82.293059 | 7.185788 | 69.0 | 76.0 | 80.0 | 90.0 | 98.0 | 389.0 | 209.0 | 0.0 | 209.0 | 209.0 | 209.0 | 209.0 | 209.0 | 389.0 | 853.347044 | 308.978823 | 395.0 | 605.0 | 989.0 | 1139.0 | 1327.0 | 389.0 | 858.858612 | 312.447328 | 408.0 | 600.00 | 997.0 | 1134.00 | 1366.0 | 389.0 | 935.640103 | 311.894079 | 464.0 | 697.0 | 1082.0 | 1215.0 | 1410.0 | 389.0 | 41.282776 | 7.971744 | 18.0 | 36.00 | 42.0 | 47.0 | 65.0 | 389.0 | 58.683805 | 23.231916 | 10.0 | 48.00 | 59.0 | 75.00 | 97.0 | 389.0 | 12.244216 | 6.089072 | 0.0 | 8.00 | 12.0 | 16.00 | 31.0 | 389.0 | 4.773779 | 11.230262 | 0.0 | 0.0 | 0.0 | 0.0 | 49.0 | 389.0 | 30.091465 | 0.290771 | 29.22 | 29.8800 | 30.110 | 30.3100 | 30.74 | 389.0 | 29.935733 | 8.991031 | 12.0 | 21.0 | 30.0 | 38.00 | 54.0 | 389.0 | 28.357326 | 6.647093 | 14.0 | 22.0 | 30.0 | 34.00 | 45.0 | 389.0 | 20.935733 | 6.678052 | 9.0 | 16.0 | 20.0 | 25.0 | 41.0 |
| TPA | 664.0 | 4.840361 | 34.281751 | -12.0 | -6.00 | -3.0 | 1.00 | 585.0 | 664.0 | 183.298193 | 5.470469 | 165.0 | 179.0 | 183.0 | 187.0 | 194.0 | 664.0 | 1005.0 | 0.0 | 1005.0 | 1005.0 | 1005.0 | 1005.0 | 1005.0 | 664.0 | 839.063253 | 290.194015 | 390.0 | 490.0 | 885.0 | 1079.0 | 1325.0 | 664.0 | 841.734940 | 294.483476 | 140.0 | 495.50 | 882.0 | 1092.50 | 1439.0 | 664.0 | 851.036145 | 378.232276 | 35.0 | 651.0 | 882.0 | 1130.0 | 1360.0 | 664.0 | 41.605422 | 7.947852 | 18.0 | 36.00 | 42.0 | 47.0 | 65.0 | 664.0 | 56.519578 | 23.818055 | 10.0 | 45.00 | 58.0 | 73.00 | 97.0 | 664.0 | 12.469880 | 6.102864 | 0.0 | 8.00 | 12.0 | 17.00 | 31.0 | 664.0 | 5.554217 | 11.731926 | 0.0 | 0.0 | 0.0 | 0.0 | 44.0 | 664.0 | 30.089744 | 0.298325 | 29.21 | 29.8700 | 30.120 | 30.3100 | 30.74 | 664.0 | 32.932229 | 7.714744 | 3.0 | 28.0 | 31.0 | 38.00 | 55.0 | 664.0 | 29.646084 | 7.312032 | 4.0 | 23.0 | 31.0 | 35.00 | 45.0 | 664.0 | 19.992470 | 6.836262 | 8.0 | 15.0 | 19.0 | 24.0 | 41.0 |
65 rows × 112 columns
In [ ]:
taxi.groupby(['DEST']).count() # show the counts of each feature for each destination
Out[ ]:
| MONTH | DAY_OF_MONTH | DAY_OF_WEEK | CARRIER_CODE | FLIGHT_NO | DEP_DELAY | SCHEDULED_DURATION | DISTANCE | SCHEDULED_DEPARTURE | ACTUAL_DEP_TIME | SCHEDULED_ARRIVAL | Temperature | Dew Point | Humidity | Wind | Wind Speed | Wind Gust | Pressure | Condition | FLT_SCH_ARRIVAL | FLT_SCH_DEPARTURE | TAXI_OUT | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DEST | ||||||||||||||||||||||
| ABQ | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 | 58 |
| ATL | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 | 795 |
| AUS | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 | 485 |
| BNA | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 | 366 |
| BOS | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 | 1243 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| SMF | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 | 82 |
| SRQ | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 |
| STT | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 | 62 |
| SYR | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 | 389 |
| TPA | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 | 664 |
65 rows × 22 columns
In [ ]:
pd.set_option('display.max_columns', 120) # configure dataframe to show all columns
condition = taxi.drop(columns=['MONTH', 'DAY_OF_MONTH', 'DAY_OF_WEEK']) # create new dataframe from taxi and drop the date columns
condition.groupby(['Condition']).describe() # creates dataframe grouped by Conditions, showing details on relevant columns' numerical data.
Out[ ]:
| DEP_DELAY | SCHEDULED_DURATION | DISTANCE | SCHEDULED_DEPARTURE | ACTUAL_DEP_TIME | SCHEDULED_ARRIVAL | Temperature | Humidity | Wind Speed | Wind Gust | Pressure | FLT_SCH_ARRIVAL | FLT_SCH_DEPARTURE | TAXI_OUT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | count | mean | std | min | 25% | 50% | 75% | max | |
| Condition | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Cloudy | 4992.0 | 5.316106 | 38.055821 | -22.0 | -6.00 | -3.0 | 0.00 | 1048.0 | 4992.0 | 225.112380 | 117.825273 | 57.0 | 125.00 | 189.5 | 365.00 | 697.0 | 4992.0 | 1264.958934 | 875.580354 | 94.0 | 483.00 | 1041.0 | 2248.00 | 4983.0 | 4992.0 | 825.221554 | 304.417077 | 301.0 | 531.75 | 857.0 | 1095.00 | 1439.0 | 4992.0 | 818.999199 | 311.664436 | 2.0 | 523.00 | 848.0 | 1092.00 | 1440.0 | 4992.0 | 909.312300 | 345.897879 | 1.0 | 662.00 | 917.0 | 1194.00 | 1439.0 | 4992.0 | 43.303486 | 7.217202 | 21.0 | 39.00 | 43.0 | 48.0 | 61.0 | 4992.0 | 63.158654 | 27.643813 | 10.0 | 52.00 | 70.0 | 85.25 | 97.0 | 4992.0 | 9.875401 | 4.390900 | 0.0 | 7.00 | 9.0 | 13.00 | 20.0 | 4992.0 | 0.990184 | 4.848259 | 0.0 | 0.0 | 0.0 | 0.0 | 30.0 | 4992.0 | 30.036973 | 3.143069e-01 | 29.22 | 29.810 | 30.020 | 30.2825 | 30.74 | 4992.0 | 30.476362 | 9.926571 | 0.0 | 25.00 | 30.0 | 37.00 | 54.0 | 4992.0 | 28.195913 | 8.576998 | 0.0 | 20.00 | 29.0 | 35.0 | 45.0 | 4992.0 | 20.258814 | 6.362420 | 7.0 | 16.00 | 19.0 | 24.00 | 41.0 |
| Cloudy / Windy | 341.0 | 18.695015 | 54.967806 | -15.0 | -6.00 | -3.0 | 10.00 | 372.0 | 341.0 | 215.105572 | 110.922525 | 57.0 | 125.00 | 183.0 | 334.00 | 424.0 | 341.0 | 1191.331378 | 821.225672 | 94.0 | 483.00 | 1005.0 | 1990.00 | 2586.0 | 341.0 | 1006.175953 | 262.500451 | 301.0 | 840.00 | 1089.0 | 1214.00 | 1439.0 | 341.0 | 995.310850 | 303.706103 | 43.0 | 824.00 | 1084.0 | 1231.00 | 1433.0 | 341.0 | 1003.803519 | 412.285780 | 1.0 | 876.00 | 1076.0 | 1339.00 | 1439.0 | 341.0 | 42.560117 | 5.188794 | 34.0 | 40.00 | 41.0 | 44.0 | 57.0 | 341.0 | 70.114370 | 15.997844 | 10.0 | 65.00 | 67.0 | 77.00 | 97.0 | 341.0 | 23.143695 | 2.774866 | 21.0 | 22.00 | 22.0 | 23.00 | 31.0 | 341.0 | 23.398827 | 13.667454 | 0.0 | 28.0 | 30.0 | 31.0 | 44.0 | 341.0 | 29.871408 | 3.133309e-01 | 29.29 | 29.610 | 29.890 | 30.1200 | 30.27 | 341.0 | 27.445748 | 7.211153 | 0.0 | 24.00 | 29.0 | 30.00 | 41.0 | 341.0 | 30.011730 | 7.867273 | 3.0 | 24.00 | 31.0 | 35.0 | 44.0 | 341.0 | 20.970674 | 7.001619 | 7.0 | 16.00 | 20.0 | 25.00 | 41.0 |
| Drizzle and Fog | 5.0 | -3.000000 | 5.700877 | -7.0 | -6.00 | -5.0 | -4.00 | 7.0 | 5.0 | 283.400000 | 149.106673 | 93.0 | 151.00 | 379.0 | 387.00 | 407.0 | 5.0 | 1663.400000 | 1110.715895 | 213.0 | 718.00 | 2378.0 | 2422.00 | 2586.0 | 5.0 | 570.800000 | 7.463243 | 560.0 | 569.00 | 570.0 | 575.00 | 580.0 | 5.0 | 567.800000 | 3.701351 | 565.0 | 565.00 | 567.0 | 568.00 | 574.0 | 5.0 | 746.200000 | 48.100936 | 673.0 | 726.00 | 767.0 | 768.00 | 797.0 | 5.0 | 46.000000 | 0.000000 | 46.0 | 46.00 | 46.0 | 46.0 | 46.0 | 5.0 | 0.000000 | 0.000000 | 0.0 | 0.00 | 0.0 | 0.00 | 0.0 | 5.0 | 6.000000 | 0.000000 | 6.0 | 6.00 | 6.0 | 6.00 | 6.0 | 5.0 | 0.000000 | 0.000000 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5.0 | 29.660000 | 3.972055e-15 | 29.66 | 29.660 | 29.660 | 29.6600 | 29.66 | 5.0 | 40.000000 | 0.000000 | 40.0 | 40.00 | 40.0 | 40.00 | 40.0 | 5.0 | 13.000000 | 0.000000 | 13.0 | 13.00 | 13.0 | 13.0 | 13.0 | 5.0 | 32.600000 | 5.128353 | 27.0 | 29.00 | 32.0 | 35.00 | 40.0 |
| Fair | 5038.0 | 6.032553 | 37.086923 | -18.0 | -6.00 | -3.0 | 1.00 | 830.0 | 5038.0 | 227.434895 | 119.711126 | 57.0 | 125.00 | 190.0 | 367.00 | 697.0 | 5038.0 | 1283.190155 | 889.593552 | 94.0 | 483.00 | 1069.0 | 2248.00 | 4983.0 | 5038.0 | 834.307265 | 319.986273 | 301.0 | 510.00 | 860.0 | 1130.00 | 1439.0 | 5038.0 | 832.908297 | 325.661777 | 3.0 | 508.00 | 859.5 | 1135.75 | 1440.0 | 5038.0 | 894.080389 | 371.688500 | 1.0 | 632.00 | 894.0 | 1225.00 | 1439.0 | 5038.0 | 38.084756 | 8.861102 | 19.0 | 32.00 | 36.0 | 44.0 | 61.0 | 5038.0 | 54.123660 | 15.445074 | 10.0 | 44.00 | 52.0 | 66.00 | 97.0 | 5038.0 | 11.679436 | 4.427325 | 0.0 | 8.00 | 12.0 | 15.00 | 20.0 | 5038.0 | 3.669909 | 9.032380 | 0.0 | 0.0 | 0.0 | 0.0 | 37.0 | 5038.0 | 30.262622 | 2.247688e-01 | 29.55 | 30.110 | 30.280 | 30.4200 | 30.75 | 5038.0 | 30.778881 | 10.108010 | 0.0 | 25.00 | 30.5 | 38.00 | 55.0 | 5038.0 | 28.127233 | 8.104287 | 0.0 | 21.00 | 30.0 | 35.0 | 45.0 | 5038.0 | 20.240969 | 6.507207 | 6.0 | 15.00 | 19.0 | 24.00 | 41.0 |
| Fair / Windy | 918.0 | 9.896514 | 55.643271 | -15.0 | -5.00 | -2.0 | 4.00 | 1276.0 | 918.0 | 224.440087 | 117.682002 | 59.0 | 127.25 | 188.0 | 357.75 | 675.0 | 918.0 | 1276.844227 | 878.432511 | 94.0 | 509.00 | 1069.0 | 2248.00 | 4983.0 | 918.0 | 704.971678 | 312.077716 | 301.0 | 479.00 | 560.0 | 1040.00 | 1439.0 | 918.0 | 703.887800 | 317.589702 | 17.0 | 475.00 | 555.5 | 1075.25 | 1435.0 | 918.0 | 813.333333 | 324.579349 | 3.0 | 617.00 | 701.5 | 1043.75 | 1439.0 | 918.0 | 33.820261 | 11.286946 | 17.0 | 25.00 | 32.0 | 40.0 | 64.0 | 918.0 | 48.150327 | 10.353788 | 24.0 | 43.00 | 48.0 | 54.00 | 68.0 | 918.0 | 23.289760 | 2.461242 | 21.0 | 22.00 | 23.0 | 24.00 | 36.0 | 918.0 | 29.519608 | 9.830468 | 0.0 | 30.0 | 32.0 | 33.0 | 46.0 | 918.0 | 30.232887 | 2.494650e-01 | 29.50 | 30.090 | 30.260 | 30.3600 | 30.63 | 918.0 | 32.397603 | 11.963497 | 0.0 | 21.00 | 33.0 | 40.00 | 53.0 | 918.0 | 25.255991 | 8.099359 | 3.0 | 19.00 | 23.0 | 34.0 | 45.0 | 918.0 | 21.265795 | 7.242576 | 8.0 | 16.00 | 20.0 | 25.00 | 41.0 |
| Fog | 147.0 | 2.639456 | 19.265252 | -13.0 | -5.00 | -3.0 | 2.50 | 132.0 | 147.0 | 208.448980 | 114.798703 | 71.0 | 112.00 | 182.0 | 337.00 | 412.0 | 147.0 | 1161.319728 | 848.563742 | 184.0 | 425.00 | 1005.0 | 1990.00 | 2586.0 | 147.0 | 618.448980 | 150.457621 | 389.0 | 450.00 | 677.0 | 710.00 | 1309.0 | 147.0 | 611.292517 | 151.109106 | 1.0 | 446.50 | 680.0 | 708.00 | 843.0 | 147.0 | 768.938776 | 156.354761 | 91.0 | 631.00 | 823.0 | 879.00 | 1035.0 | 147.0 | 48.659864 | 7.382408 | 33.0 | 46.00 | 52.0 | 55.0 | 55.0 | 147.0 | 10.000000 | 0.000000 | 10.0 | 10.00 | 10.0 | 10.00 | 10.0 | 147.0 | 10.632653 | 5.070843 | 3.0 | 6.00 | 8.0 | 16.00 | 20.0 | 147.0 | 0.000000 | 0.000000 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 147.0 | 29.760340 | 3.563983e-01 | 29.22 | 29.330 | 29.870 | 30.0100 | 30.28 | 147.0 | 27.972789 | 7.792643 | 13.0 | 21.00 | 26.0 | 32.00 | 44.0 | 147.0 | 25.965986 | 8.066008 | 10.0 | 21.00 | 21.0 | 34.0 | 42.0 | 147.0 | 24.965986 | 7.626930 | 10.0 | 18.00 | 25.0 | 30.00 | 41.0 |
| Fog / Windy | 28.0 | 25.892857 | 74.707003 | -11.0 | -2.25 | 0.5 | 28.50 | 390.0 | 28.0 | 207.964286 | 109.032609 | 83.0 | 124.75 | 170.0 | 302.00 | 404.0 | 28.0 | 1135.714286 | 830.919475 | 213.0 | 405.25 | 894.0 | 1717.00 | 2586.0 | 28.0 | 825.357143 | 182.387909 | 360.0 | 867.50 | 895.5 | 899.00 | 952.0 | 28.0 | 851.250000 | 176.075452 | 349.0 | 890.25 | 897.5 | 932.00 | 953.0 | 28.0 | 986.178571 | 180.062963 | 517.0 | 994.75 | 1032.0 | 1072.25 | 1164.0 | 28.0 | 52.535714 | 1.261455 | 52.0 | 52.00 | 52.0 | 52.0 | 56.0 | 28.0 | 10.000000 | 0.000000 | 10.0 | 10.00 | 10.0 | 10.00 | 10.0 | 28.0 | 23.500000 | 4.434712 | 21.0 | 22.00 | 22.0 | 22.00 | 36.0 | 28.0 | 4.928571 | 14.488638 | 0.0 | 0.0 | 0.0 | 0.0 | 46.0 | 28.0 | 29.276071 | 2.060446e-01 | 29.20 | 29.200 | 29.210 | 29.2100 | 29.86 | 28.0 | 24.464286 | 5.460173 | 7.0 | 24.00 | 24.0 | 28.00 | 28.0 | 28.0 | 35.892857 | 5.573345 | 21.0 | 35.00 | 35.0 | 40.0 | 40.0 | 28.0 | 16.928571 | 3.799889 | 10.0 | 14.75 | 16.5 | 18.50 | 25.0 |
| Heavy Rain | 54.0 | 35.611111 | 71.089743 | -9.0 | -2.00 | 9.0 | 27.25 | 325.0 | 54.0 | 228.518519 | 106.586618 | 81.0 | 145.00 | 206.0 | 314.25 | 417.0 | 54.0 | 1280.740741 | 790.174454 | 184.0 | 608.00 | 1051.5 | 1892.00 | 2586.0 | 54.0 | 909.962963 | 291.175689 | 420.0 | 779.25 | 1016.5 | 1139.00 | 1412.0 | 54.0 | 918.907407 | 311.962157 | 155.0 | 565.25 | 1017.0 | 1167.00 | 1216.0 | 54.0 | 1060.703704 | 321.161902 | 258.0 | 740.75 | 1203.5 | 1310.00 | 1439.0 | 54.0 | 49.518519 | 3.446304 | 37.0 | 48.00 | 51.0 | 52.0 | 55.0 | 54.0 | 10.000000 | 0.000000 | 10.0 | 10.00 | 10.0 | 10.00 | 10.0 | 54.0 | 12.148148 | 4.923595 | 3.0 | 12.00 | 14.0 | 16.00 | 17.0 | 54.0 | 1.907407 | 6.808065 | 0.0 | 0.0 | 0.0 | 0.0 | 26.0 | 54.0 | 29.852037 | 1.737204e-01 | 29.29 | 29.790 | 29.820 | 29.8800 | 30.12 | 54.0 | 34.981481 | 7.053678 | 2.0 | 31.00 | 37.0 | 37.00 | 42.0 | 54.0 | 32.648148 | 5.600396 | 2.0 | 29.50 | 32.5 | 36.0 | 42.0 | 54.0 | 27.037037 | 8.032864 | 12.0 | 21.00 | 26.0 | 34.50 | 41.0 |
| Heavy Rain / Windy | 6.0 | 1.166667 | 24.701552 | -19.0 | -9.75 | -6.5 | -1.75 | 50.0 | 6.0 | 222.666667 | 132.382275 | 81.0 | 143.00 | 171.0 | 334.75 | 390.0 | 6.0 | 1257.000000 | 978.368847 | 184.0 | 684.00 | 886.0 | 2092.25 | 2475.0 | 6.0 | 863.666667 | 24.848877 | 819.0 | 862.25 | 869.0 | 869.75 | 895.0 | 6.0 | 864.833333 | 8.908797 | 850.0 | 861.50 | 867.0 | 868.75 | 876.0 | 6.0 | 1026.333333 | 49.854455 | 956.0 | 989.50 | 1040.0 | 1065.00 | 1076.0 | 6.0 | 47.000000 | 0.000000 | 47.0 | 47.00 | 47.0 | 47.0 | 47.0 | 6.0 | 10.000000 | 0.000000 | 10.0 | 10.00 | 10.0 | 10.00 | 10.0 | 6.0 | 25.000000 | 0.000000 | 25.0 | 25.00 | 25.0 | 25.00 | 25.0 | 6.0 | 32.000000 | 0.000000 | 32.0 | 32.0 | 32.0 | 32.0 | 32.0 | 6.0 | 29.750000 | 0.000000e+00 | 29.75 | 29.750 | 29.750 | 29.7500 | 29.75 | 6.0 | 22.000000 | 0.000000 | 22.0 | 22.00 | 22.0 | 22.00 | 22.0 | 6.0 | 40.000000 | 0.000000 | 40.0 | 40.00 | 40.0 | 40.0 | 40.0 | 6.0 | 15.833333 | 3.430258 | 12.0 | 14.25 | 15.0 | 16.50 | 22.0 |
| Light Drizzle | 194.0 | 3.958763 | 30.807918 | -16.0 | -6.00 | -3.0 | 0.00 | 228.0 | 194.0 | 234.262887 | 134.940240 | 57.0 | 121.00 | 191.0 | 366.50 | 697.0 | 194.0 | 1338.381443 | 1009.767925 | 150.0 | 427.00 | 1055.0 | 2248.00 | 4983.0 | 194.0 | 683.649485 | 263.334459 | 301.0 | 486.25 | 629.0 | 762.25 | 1439.0 | 194.0 | 687.608247 | 269.968931 | 296.0 | 500.25 | 624.0 | 757.50 | 1430.0 | 194.0 | 750.283505 | 262.159934 | 2.0 | 642.00 | 785.5 | 892.00 | 1439.0 | 194.0 | 44.886598 | 3.068733 | 38.0 | 44.00 | 46.0 | 47.0 | 49.0 | 194.0 | 22.639175 | 29.649484 | 10.0 | 10.00 | 10.0 | 10.00 | 97.0 | 194.0 | 7.716495 | 3.363479 | 0.0 | 6.00 | 7.0 | 10.00 | 14.0 | 194.0 | 0.000000 | 0.000000 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 194.0 | 29.874433 | 2.677036e-01 | 29.54 | 29.670 | 29.835 | 30.1300 | 30.36 | 194.0 | 29.180412 | 10.507507 | 1.0 | 19.00 | 32.0 | 38.00 | 50.0 | 194.0 | 23.221649 | 7.179948 | 4.0 | 17.00 | 23.0 | 29.0 | 35.0 | 194.0 | 21.659794 | 6.907811 | 10.0 | 16.00 | 21.0 | 26.00 | 41.0 |
| Light Drizzle / Windy | 18.0 | -0.722222 | 12.512608 | -10.0 | -6.00 | -2.5 | -1.00 | 47.0 | 18.0 | 248.166667 | 96.359163 | 116.0 | 185.25 | 196.5 | 321.75 | 412.0 | 18.0 | 1436.444444 | 690.955879 | 427.0 | 1010.75 | 1079.0 | 1929.00 | 2586.0 | 18.0 | 699.500000 | 104.018805 | 616.0 | 667.50 | 685.0 | 688.75 | 1109.0 | 18.0 | 698.777778 | 103.757384 | 652.0 | 666.25 | 678.5 | 683.75 | 1112.0 | 18.0 | 891.000000 | 114.517915 | 798.0 | 851.00 | 874.5 | 883.25 | 1313.0 | 18.0 | 42.888889 | 0.471405 | 41.0 | 43.00 | 43.0 | 43.0 | 43.0 | 18.0 | 96.944444 | 0.235702 | 96.0 | 97.00 | 97.0 | 97.00 | 97.0 | 18.0 | 22.000000 | 0.000000 | 22.0 | 22.00 | 22.0 | 22.00 | 22.0 | 18.0 | 29.277778 | 7.306770 | 0.0 | 31.0 | 31.0 | 31.0 | 31.0 | 18.0 | 29.759444 | 2.357023e-03 | 29.75 | 29.760 | 29.760 | 29.7600 | 29.76 | 18.0 | 29.833333 | 2.407097 | 25.0 | 30.00 | 30.0 | 30.00 | 37.0 | 18.0 | 21.277778 | 4.041048 | 20.0 | 20.00 | 20.0 | 20.0 | 37.0 | 18.0 | 29.111111 | 7.291324 | 15.0 | 27.00 | 31.0 | 33.75 | 40.0 |
| Light Freezing Rain | 4.0 | 70.000000 | 140.748002 | -7.0 | -0.25 | 3.0 | 73.25 | 281.0 | 4.0 | 215.250000 | 121.817828 | 88.0 | 149.50 | 198.0 | 263.75 | 377.0 | 4.0 | 1326.250000 | 934.086497 | 288.0 | 780.00 | 1271.0 | 1817.25 | 2475.0 | 4.0 | 870.250000 | 361.190047 | 685.0 | 688.00 | 692.0 | 874.25 | 1412.0 | 4.0 | 580.250000 | 218.182454 | 253.0 | 578.50 | 687.5 | 689.25 | 693.0 | 4.0 | 695.500000 | 294.840635 | 258.0 | 651.75 | 819.0 | 862.75 | 886.0 | 4.0 | 32.750000 | 0.500000 | 32.0 | 32.75 | 33.0 | 33.0 | 33.0 | 4.0 | 58.750000 | 32.500000 | 10.0 | 58.75 | 75.0 | 75.00 | 75.0 | 4.0 | 12.250000 | 1.500000 | 10.0 | 12.25 | 13.0 | 13.00 | 13.0 | 4.0 | 0.000000 | 0.000000 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 4.0 | 29.917500 | 7.500000e-02 | 29.88 | 29.880 | 29.880 | 29.9175 | 30.03 | 4.0 | 24.250000 | 15.500000 | 1.0 | 24.25 | 32.0 | 32.00 | 32.0 | 4.0 | 16.750000 | 8.500000 | 4.0 | 16.75 | 21.0 | 21.0 | 21.0 | 4.0 | 30.000000 | 10.132456 | 15.0 | 28.50 | 34.0 | 35.50 | 37.0 |
| Light Rain | 1865.0 | 9.595710 | 39.942295 | -18.0 | -5.00 | -2.0 | 7.00 | 624.0 | 1865.0 | 227.034316 | 120.382157 | 57.0 | 122.00 | 189.0 | 366.00 | 697.0 | 1865.0 | 1280.980161 | 897.352892 | 94.0 | 427.00 | 1041.0 | 2248.00 | 4983.0 | 1865.0 | 876.163539 | 314.208821 | 301.0 | 562.00 | 929.0 | 1165.00 | 1439.0 | 1865.0 | 881.126542 | 319.224426 | 3.0 | 565.00 | 940.0 | 1164.00 | 1440.0 | 1865.0 | 925.996783 | 380.345040 | 1.0 | 659.00 | 995.0 | 1257.00 | 1439.0 | 1865.0 | 43.217694 | 5.974805 | 33.0 | 39.00 | 42.0 | 48.0 | 57.0 | 1865.0 | 40.334584 | 37.709239 | 10.0 | 10.00 | 10.0 | 86.00 | 97.0 | 1865.0 | 11.438070 | 4.954790 | 0.0 | 8.00 | 12.0 | 15.00 | 20.0 | 1865.0 | 3.079893 | 8.456690 | 0.0 | 0.0 | 0.0 | 0.0 | 33.0 | 1865.0 | 29.815845 | 2.164966e-01 | 29.21 | 29.700 | 29.810 | 29.9600 | 30.27 | 1865.0 | 31.615550 | 9.255011 | 0.0 | 27.00 | 31.0 | 37.00 | 54.0 | 1865.0 | 29.500804 | 7.873335 | 3.0 | 22.00 | 31.0 | 35.0 | 46.0 | 1865.0 | 22.221448 | 7.526047 | 7.0 | 16.00 | 21.0 | 27.00 | 41.0 |
| Light Rain / Windy | 288.0 | 6.236111 | 28.498178 | -18.0 | -6.00 | -3.0 | 3.00 | 195.0 | 288.0 | 205.538194 | 116.500745 | 59.0 | 109.25 | 174.5 | 301.75 | 685.0 | 288.0 | 1140.604167 | 872.408862 | 94.0 | 403.75 | 886.0 | 1807.00 | 4983.0 | 288.0 | 816.392361 | 231.451176 | 379.0 | 685.00 | 806.5 | 929.00 | 1439.0 | 288.0 | 797.628472 | 239.793518 | 1.0 | 677.75 | 800.5 | 918.00 | 1437.0 | 288.0 | 879.430556 | 275.219827 | 3.0 | 786.75 | 912.5 | 1039.50 | 1430.0 | 288.0 | 45.138889 | 5.044901 | 35.0 | 42.00 | 43.0 | 47.0 | 68.0 | 288.0 | 52.659722 | 38.211891 | 10.0 | 10.00 | 79.0 | 86.00 | 97.0 | 288.0 | 24.652778 | 3.613408 | 21.0 | 22.00 | 24.0 | 26.00 | 35.0 | 288.0 | 30.722222 | 11.702732 | 0.0 | 29.0 | 33.0 | 37.0 | 47.0 | 288.0 | 29.652778 | 2.576534e-01 | 29.22 | 29.400 | 29.700 | 29.8500 | 30.05 | 288.0 | 29.232639 | 9.351333 | 3.0 | 25.00 | 29.0 | 31.00 | 52.0 | 288.0 | 29.319444 | 9.710910 | 3.0 | 21.50 | 29.0 | 38.0 | 43.0 | 288.0 | 24.666667 | 7.777391 | 8.0 | 18.00 | 24.0 | 30.00 | 41.0 |
| Light Snow | 76.0 | 15.144737 | 56.914838 | -14.0 | -5.00 | -1.5 | 11.00 | 421.0 | 76.0 | 234.000000 | 114.427619 | 75.0 | 136.25 | 201.0 | 370.25 | 409.0 | 76.0 | 1343.065789 | 843.754488 | 187.0 | 636.00 | 1089.0 | 2291.50 | 2586.0 | 76.0 | 744.605263 | 273.215670 | 301.0 | 450.00 | 839.0 | 942.00 | 1200.0 | 76.0 | 740.802632 | 287.486163 | 98.0 | 448.50 | 845.5 | 938.00 | 1197.0 | 76.0 | 917.026316 | 278.646968 | 440.0 | 632.25 | 971.0 | 1138.50 | 1387.0 | 76.0 | 32.407895 | 2.536021 | 27.0 | 30.00 | 34.0 | 34.0 | 35.0 | 76.0 | 60.960526 | 32.082577 | 10.0 | 10.00 | 72.0 | 89.00 | 92.0 | 76.0 | 11.302632 | 4.647637 | 5.0 | 6.00 | 14.0 | 15.00 | 20.0 | 76.0 | 1.368421 | 5.844295 | 0.0 | 0.0 | 0.0 | 0.0 | 26.0 | 76.0 | 30.067237 | 2.554818e-01 | 29.47 | 29.960 | 30.190 | 30.2600 | 30.39 | 76.0 | 30.236842 | 10.180856 | 3.0 | 26.00 | 30.0 | 39.00 | 51.0 | 76.0 | 30.078947 | 7.006213 | 5.0 | 24.00 | 34.0 | 34.0 | 45.0 | 76.0 | 30.131579 | 8.959676 | 11.0 | 22.75 | 33.0 | 38.00 | 41.0 |
| Light Snow / Windy | 24.0 | 63.625000 | 79.949882 | -10.0 | 2.25 | 42.0 | 110.25 | 337.0 | 24.0 | 163.000000 | 101.585689 | 59.0 | 86.00 | 127.5 | 201.00 | 392.0 | 24.0 | 843.333333 | 758.745284 | 150.0 | 266.00 | 525.0 | 1077.75 | 2475.0 | 24.0 | 1028.208333 | 289.023390 | 677.0 | 728.75 | 1068.5 | 1308.50 | 1412.0 | 24.0 | 911.833333 | 445.625273 | 1.0 | 730.50 | 750.5 | 1381.00 | 1415.0 | 24.0 | 863.708333 | 466.783581 | 12.0 | 781.50 | 889.0 | 1269.75 | 1435.0 | 24.0 | 31.166667 | 4.678040 | 25.0 | 25.00 | 31.5 | 35.0 | 40.0 | 24.0 | 73.666667 | 15.493804 | 10.0 | 69.00 | 76.0 | 76.00 | 96.0 | 24.0 | 23.125000 | 1.918163 | 21.0 | 21.00 | 23.5 | 25.00 | 25.0 | 24.0 | 30.416667 | 1.976309 | 26.0 | 30.0 | 30.0 | 30.0 | 37.0 | 24.0 | 29.871250 | 1.844218e-01 | 29.47 | 29.890 | 29.890 | 30.0400 | 30.04 | 24.0 | 20.708333 | 7.116907 | 3.0 | 19.00 | 21.0 | 22.25 | 33.0 | 24.0 | 22.541667 | 8.657639 | 2.0 | 20.00 | 22.5 | 25.0 | 41.0 | 24.0 | 26.958333 | 8.824271 | 12.0 | 19.75 | 28.0 | 33.25 | 40.0 |
| Mostly Cloudy | 9122.0 | 4.814953 | 35.935362 | -20.0 | -6.00 | -3.0 | 0.00 | 1148.0 | 9122.0 | 226.227472 | 119.924721 | 57.0 | 125.00 | 189.0 | 367.00 | 697.0 | 9122.0 | 1269.826573 | 893.186270 | 94.0 | 483.00 | 1029.0 | 2248.00 | 4983.0 | 9122.0 | 837.198641 | 293.088139 | 301.0 | 550.00 | 886.0 | 1080.00 | 1439.0 | 9122.0 | 836.488489 | 298.025566 | 1.0 | 546.00 | 887.0 | 1089.00 | 1440.0 | 9122.0 | 923.147665 | 340.448918 | 1.0 | 674.00 | 975.0 | 1202.00 | 1439.0 | 9122.0 | 42.028503 | 7.189348 | 22.0 | 37.00 | 42.0 | 47.0 | 65.0 | 9122.0 | 63.675729 | 17.427126 | 10.0 | 53.00 | 63.0 | 76.00 | 97.0 | 9122.0 | 10.521158 | 4.846876 | 0.0 | 7.00 | 10.0 | 14.00 | 20.0 | 9122.0 | 1.505591 | 6.098434 | 0.0 | 0.0 | 0.0 | 0.0 | 35.0 | 9122.0 | 30.136221 | 2.708016e-01 | 29.21 | 29.950 | 30.150 | 30.3300 | 30.74 | 9122.0 | 31.783162 | 8.922077 | 0.0 | 27.00 | 31.0 | 38.00 | 54.0 | 9122.0 | 28.978075 | 8.146878 | 0.0 | 21.00 | 31.0 | 36.0 | 45.0 | 9122.0 | 20.469086 | 6.555405 | 5.0 | 16.00 | 19.0 | 24.00 | 41.0 |
| Mostly Cloudy / Windy | 1442.0 | 5.855756 | 28.663934 | -18.0 | -6.00 | -3.0 | 2.00 | 322.0 | 1442.0 | 220.796117 | 119.628926 | 59.0 | 123.00 | 186.0 | 356.50 | 685.0 | 1442.0 | 1238.634535 | 890.646853 | 94.0 | 441.00 | 1028.0 | 2153.00 | 4983.0 | 1442.0 | 748.915395 | 214.903402 | 301.0 | 570.00 | 720.0 | 899.00 | 1439.0 | 1442.0 | 752.773925 | 219.478478 | 74.0 | 570.25 | 728.5 | 910.00 | 1439.0 | 1442.0 | 886.452150 | 229.653620 | 9.0 | 728.25 | 880.0 | 1040.00 | 1439.0 | 1442.0 | 44.452150 | 7.422101 | 27.0 | 39.00 | 44.0 | 49.0 | 67.0 | 1442.0 | 58.596394 | 15.959897 | 10.0 | 48.00 | 55.0 | 64.00 | 97.0 | 1442.0 | 23.708738 | 2.848922 | 21.0 | 21.00 | 23.0 | 25.00 | 35.0 | 1442.0 | 27.993759 | 13.126591 | 0.0 | 28.0 | 31.0 | 35.0 | 49.0 | 1442.0 | 29.908322 | 1.938144e-01 | 29.23 | 29.790 | 29.890 | 30.0200 | 30.37 | 1442.0 | 30.692788 | 9.114238 | 1.0 | 25.00 | 30.0 | 34.00 | 55.0 | 1442.0 | 26.871012 | 8.907809 | 2.0 | 19.00 | 25.0 | 36.0 | 44.0 | 1442.0 | 21.651872 | 6.928866 | 7.0 | 16.00 | 20.0 | 26.00 | 41.0 |
| Partly Cloudy | 3209.0 | 5.227174 | 30.010947 | -18.0 | -6.00 | -3.0 | 1.00 | 360.0 | 3209.0 | 222.366781 | 119.638459 | 57.0 | 119.00 | 187.0 | 363.00 | 685.0 | 3209.0 | 1254.278591 | 890.523331 | 94.0 | 427.00 | 1029.0 | 2248.00 | 4983.0 | 3209.0 | 838.389529 | 297.523566 | 301.0 | 560.00 | 840.0 | 1109.00 | 1439.0 | 3209.0 | 834.641945 | 305.702657 | 4.0 | 555.00 | 831.0 | 1103.00 | 1440.0 | 3209.0 | 912.298847 | 345.147642 | 1.0 | 675.00 | 901.0 | 1192.00 | 1439.0 | 3209.0 | 41.373013 | 8.079879 | 22.0 | 35.00 | 42.0 | 48.0 | 56.0 | 3209.0 | 60.414148 | 18.406963 | 10.0 | 49.00 | 60.0 | 72.00 | 97.0 | 3209.0 | 10.746650 | 4.811374 | 0.0 | 8.00 | 10.0 | 15.00 | 20.0 | 3209.0 | 3.264257 | 8.605621 | 0.0 | 0.0 | 0.0 | 0.0 | 38.0 | 3209.0 | 30.141670 | 2.574206e-01 | 29.51 | 30.000 | 30.130 | 30.3100 | 30.74 | 3209.0 | 31.121845 | 9.505992 | 0.0 | 26.00 | 30.0 | 37.00 | 53.0 | 3209.0 | 28.066999 | 7.941231 | 0.0 | 20.00 | 29.0 | 34.0 | 45.0 | 3209.0 | 20.628856 | 6.976157 | 7.0 | 15.00 | 19.0 | 25.00 | 41.0 |
| Partly Cloudy / Windy | 582.0 | 15.950172 | 83.769000 | -11.0 | -5.00 | -2.0 | 10.00 | 1199.0 | 582.0 | 228.805842 | 127.154121 | 57.0 | 116.00 | 189.5 | 374.75 | 685.0 | 582.0 | 1292.400344 | 952.054159 | 94.0 | 427.00 | 1029.0 | 2422.00 | 4983.0 | 582.0 | 895.419244 | 238.841494 | 408.0 | 705.00 | 919.0 | 1065.00 | 1439.0 | 582.0 | 879.204467 | 251.972100 | 17.0 | 699.00 | 910.5 | 1061.00 | 1434.0 | 582.0 | 989.895189 | 306.904305 | 2.0 | 823.25 | 1042.0 | 1215.75 | 1439.0 | 582.0 | 40.580756 | 7.343280 | 19.0 | 37.00 | 40.0 | 45.0 | 67.0 | 582.0 | 49.414089 | 13.600218 | 27.0 | 40.00 | 48.0 | 57.00 | 86.0 | 582.0 | 24.225086 | 3.199482 | 21.0 | 22.00 | 23.0 | 26.00 | 36.0 | 582.0 | 30.522337 | 11.582021 | 0.0 | 31.0 | 33.0 | 36.0 | 47.0 | 582.0 | 29.983385 | 2.670681e-01 | 29.48 | 29.850 | 29.950 | 30.1400 | 30.67 | 582.0 | 30.702749 | 7.580387 | 1.0 | 27.00 | 30.0 | 36.00 | 47.0 | 582.0 | 30.998282 | 7.588945 | 2.0 | 28.00 | 32.0 | 37.0 | 45.0 | 582.0 | 22.781787 | 7.373405 | 9.0 | 17.00 | 22.0 | 28.00 | 41.0 |
| Rain | 351.0 | 14.495726 | 37.745605 | -13.0 | -4.00 | 0.0 | 17.50 | 283.0 | 351.0 | 231.165242 | 116.386406 | 59.0 | 134.00 | 194.0 | 365.00 | 685.0 | 351.0 | 1297.806268 | 872.571668 | 94.0 | 541.00 | 1069.0 | 2248.00 | 4983.0 | 351.0 | 929.364672 | 283.249165 | 301.0 | 722.50 | 965.0 | 1165.00 | 1370.0 | 351.0 | 943.860399 | 287.219827 | 296.0 | 729.00 | 985.0 | 1170.00 | 1369.0 | 351.0 | 1031.641026 | 349.125474 | 1.0 | 848.00 | 1138.0 | 1315.00 | 1439.0 | 351.0 | 45.045584 | 6.591178 | 33.0 | 40.00 | 46.0 | 51.0 | 54.0 | 351.0 | 21.598291 | 29.541369 | 10.0 | 10.00 | 10.0 | 10.00 | 97.0 | 351.0 | 11.193732 | 3.497275 | 5.0 | 8.00 | 12.0 | 14.00 | 18.0 | 351.0 | 3.019943 | 7.702849 | 0.0 | 0.0 | 0.0 | 0.0 | 25.0 | 351.0 | 29.935926 | 2.163758e-01 | 29.29 | 29.810 | 29.980 | 30.0900 | 30.21 | 351.0 | 31.173789 | 8.516605 | 0.0 | 28.00 | 30.0 | 40.00 | 51.0 | 351.0 | 29.997151 | 7.052253 | 4.0 | 24.00 | 33.0 | 35.0 | 43.0 | 351.0 | 24.014245 | 7.763086 | 10.0 | 18.00 | 22.0 | 30.00 | 41.0 |
| Rain / Windy | 25.0 | 3.800000 | 28.709754 | -12.0 | -7.00 | -5.0 | 0.00 | 131.0 | 25.0 | 206.160000 | 99.117641 | 78.0 | 137.00 | 182.0 | 233.00 | 401.0 | 25.0 | 1149.240000 | 729.917591 | 187.0 | 636.00 | 944.0 | 1598.00 | 2475.0 | 25.0 | 825.560000 | 33.810846 | 749.0 | 810.00 | 821.0 | 839.00 | 890.0 | 25.0 | 829.360000 | 32.666088 | 774.0 | 803.00 | 822.0 | 853.00 | 885.0 | 25.0 | 1002.920000 | 67.448079 | 858.0 | 962.00 | 999.0 | 1047.00 | 1131.0 | 25.0 | 45.000000 | 2.500000 | 42.0 | 42.00 | 47.0 | 47.0 | 47.0 | 25.0 | 10.000000 | 0.000000 | 10.0 | 10.00 | 10.0 | 10.00 | 10.0 | 25.0 | 24.680000 | 2.749545 | 23.0 | 23.00 | 23.0 | 29.00 | 29.0 | 25.0 | 37.120000 | 1.810157 | 35.0 | 35.0 | 38.0 | 39.0 | 39.0 | 25.0 | 29.739200 | 3.290390e-02 | 29.70 | 29.700 | 29.760 | 29.7700 | 29.77 | 25.0 | 27.160000 | 2.477902 | 17.0 | 28.00 | 28.0 | 28.00 | 28.0 | 25.0 | 36.560000 | 4.011234 | 26.0 | 34.00 | 34.0 | 40.0 | 43.0 | 25.0 | 24.400000 | 6.658328 | 15.0 | 19.00 | 22.0 | 28.00 | 38.0 |
| Snow | 2.0 | -4.000000 | 0.000000 | -4.0 | -4.00 | -4.0 | -4.00 | -4.0 | 2.0 | 290.500000 | 133.643182 | 196.0 | 243.25 | 290.5 | 337.75 | 385.0 | 2.0 | 1771.500000 | 965.200756 | 1089.0 | 1430.25 | 1771.5 | 2112.75 | 2454.0 | 2.0 | 777.500000 | 3.535534 | 775.0 | 776.25 | 777.5 | 778.75 | 780.0 | 2.0 | 773.500000 | 3.535534 | 771.0 | 772.25 | 773.5 | 774.75 | 776.0 | 2.0 | 978.000000 | 9.899495 | 971.0 | 974.50 | 978.0 | 981.50 | 985.0 | 2.0 | 26.000000 | 0.000000 | 26.0 | 26.00 | 26.0 | 26.0 | 26.0 | 2.0 | 86.000000 | 2.828427 | 84.0 | 85.00 | 86.0 | 87.00 | 88.0 | 2.0 | 16.500000 | 2.121320 | 15.0 | 15.75 | 16.5 | 17.25 | 18.0 | 2.0 | 0.000000 | 0.000000 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.0 | 30.370000 | 1.414214e-02 | 30.36 | 30.365 | 30.370 | 30.3750 | 30.38 | 2.0 | 17.000000 | 0.000000 | 17.0 | 17.00 | 17.0 | 17.00 | 17.0 | 2.0 | 24.000000 | 0.000000 | 24.0 | 24.00 | 24.0 | 24.0 | 24.0 | 2.0 | 35.000000 | 4.242641 | 32.0 | 33.50 | 35.0 | 36.50 | 38.0 |
| Wintry Mix | 83.0 | 12.337349 | 28.247287 | -10.0 | -4.00 | 0.0 | 15.50 | 149.0 | 83.0 | 243.036145 | 135.684574 | 59.0 | 115.50 | 223.0 | 375.50 | 685.0 | 83.0 | 1423.734940 | 1025.365123 | 94.0 | 426.00 | 1521.0 | 2465.00 | 4983.0 | 83.0 | 1000.072289 | 270.940493 | 523.0 | 732.50 | 1155.0 | 1214.00 | 1439.0 | 83.0 | 995.060241 | 281.011255 | 33.0 | 744.00 | 1153.0 | 1208.00 | 1419.0 | 83.0 | 939.493976 | 442.534644 | 1.0 | 799.50 | 966.0 | 1340.50 | 1432.0 | 83.0 | 34.457831 | 1.337099 | 32.0 | 33.00 | 34.0 | 36.0 | 36.0 | 83.0 | 71.903614 | 20.802565 | 10.0 | 62.00 | 75.0 | 89.00 | 97.0 | 83.0 | 9.192771 | 5.246271 | 3.0 | 5.00 | 5.0 | 13.50 | 20.0 | 83.0 | 2.240964 | 6.904559 | 0.0 | 0.0 | 0.0 | 0.0 | 24.0 | 83.0 | 29.970964 | 2.849160e-01 | 29.47 | 29.825 | 30.170 | 30.2200 | 30.22 | 83.0 | 30.228916 | 7.697521 | 12.0 | 24.50 | 28.0 | 38.00 | 41.0 | 83.0 | 30.096386 | 7.566960 | 11.0 | 25.00 | 29.0 | 31.0 | 46.0 | 83.0 | 29.265060 | 7.829096 | 10.0 | 23.00 | 30.0 | 35.50 | 41.0 |
| Wintry Mix / Windy | 4.0 | 54.750000 | 75.716026 | -2.0 | 10.00 | 28.0 | 72.75 | 165.0 | 4.0 | 276.250000 | 133.475029 | 150.0 | 167.25 | 274.0 | 383.00 | 407.0 | 4.0 | 1637.750000 | 1026.307418 | 740.0 | 755.00 | 1612.5 | 2495.25 | 2586.0 | 4.0 | 941.750000 | 73.035950 | 833.0 | 935.00 | 972.0 | 978.75 | 990.0 | 4.0 | 996.500000 | 10.661457 | 988.0 | 988.75 | 993.5 | 1001.25 | 1011.0 | 4.0 | 1113.000000 | 101.597244 | 983.0 | 1057.25 | 1133.5 | 1189.25 | 1202.0 | 4.0 | 34.500000 | 0.577350 | 34.0 | 34.00 | 34.5 | 35.0 | 35.0 | 4.0 | 53.000000 | 49.652123 | 10.0 | 10.00 | 53.0 | 96.00 | 96.0 | 4.0 | 22.500000 | 1.732051 | 21.0 | 21.00 | 22.5 | 24.00 | 24.0 | 4.0 | 29.500000 | 0.577350 | 29.0 | 29.0 | 29.5 | 30.0 | 30.0 | 4.0 | 29.485000 | 5.773503e-03 | 29.48 | 29.480 | 29.485 | 29.4900 | 29.49 | 4.0 | 32.000000 | 0.000000 | 32.0 | 32.00 | 32.0 | 32.00 | 32.0 | 4.0 | 38.000000 | 0.000000 | 38.0 | 38.00 | 38.0 | 38.0 | 38.0 | 4.0 | 39.000000 | 2.160247 | 36.0 | 38.25 | 39.5 | 40.25 | 41.0 |
Ordering the dataset by: date (month, day of month, day of week), carrier_code¶
In [ ]:
# Sorting values by date
taxi.sort_values(by=['MONTH', 'DAY_OF_WEEK', 'DAY_OF_MONTH'])
Out[ ]:
| MONTH | DAY_OF_MONTH | DAY_OF_WEEK | CARRIER_CODE | FLIGHT_NO | DEST | DEP_DELAY | SCHEDULED_DURATION | DISTANCE | SCHEDULED_DEPARTURE | ACTUAL_DEP_TIME | SCHEDULED_ARRIVAL | Temperature | Dew Point | Humidity | Wind | Wind Speed | Wind Gust | Pressure | Condition | FLT_SCH_ARRIVAL | FLT_SCH_DEPARTURE | TAXI_OUT | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 20511 | 1 | 6 | 1 | B6 | N952JB | FLL | -8 | 185 | 1069 | 301 | 293 | 486 | 33 | 29 | 85 | W | 10 | 0 | 29.93 | Cloudy | 1 | 4 | 31 |
| 20512 | 1 | 6 | 1 | B6 | N973JT | SJU | -7 | 223 | 1598 | 301 | 294 | 584 | 33 | 29 | 85 | W | 10 | 0 | 29.93 | Cloudy | 1 | 4 | 29 |
| 20513 | 1 | 6 | 1 | B6 | N982JB | LAX | -3 | 386 | 2475 | 330 | 327 | 536 | 33 | 29 | 85 | W | 10 | 0 | 29.93 | Cloudy | 10 | 24 | 25 |
| 20514 | 1 | 6 | 1 | DL | N110DU | SLC | -1 | 330 | 1990 | 330 | 329 | 540 | 33 | 29 | 85 | W | 10 | 0 | 29.93 | Cloudy | 10 | 24 | 34 |
| 20515 | 1 | 6 | 1 | AA | N176UW | PHX | -3 | 365 | 2153 | 345 | 342 | 590 | 33 | 29 | 85 | W | 10 | 0 | 29.93 | Cloudy | 10 | 24 | 31 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 18414 | 12 | 29 | 7 | B6 | N317JB | BOS | 18 | 70 | 187 | 1360 | 1378 | 1430 | 44 | 44 | 10 | E | 12 | 0 | 30.00 | Light Rain | 18 | 35 | 24 |
| 18415 | 12 | 29 | 7 | AA | N117AN | BOS | -5 | 76 | 187 | 1390 | 1385 | 26 | 44 | 44 | 10 | E | 12 | 0 | 30.00 | Light Rain | 22 | 19 | 22 |
| 18416 | 12 | 29 | 7 | B6 | N957JB | SJU | 0 | 225 | 1598 | 1412 | 1412 | 257 | 44 | 44 | 10 | E | 12 | 0 | 30.00 | Light Rain | 22 | 19 | 18 |
| 18417 | 12 | 29 | 7 | DL | N994AT | TPA | 244 | 190 | 1005 | 1169 | 1413 | 1359 | 44 | 44 | 10 | E | 12 | 0 | 30.00 | Light Rain | 22 | 19 | 10 |
| 18418 | 12 | 29 | 7 | B6 | N972JT | BQN | -9 | 224 | 1576 | 1438 | 1429 | 282 | 44 | 44 | 10 | E | 12 | 0 | 30.00 | Light Rain | 22 | 19 | 22 |
28818 rows × 23 columns
In [ ]:
# Sorting values by carrier code
taxi.sort_values(by='CARRIER_CODE')
Out[ ]:
| MONTH | DAY_OF_MONTH | DAY_OF_WEEK | CARRIER_CODE | FLIGHT_NO | DEST | DEP_DELAY | SCHEDULED_DURATION | DISTANCE | SCHEDULED_DEPARTURE | ACTUAL_DEP_TIME | SCHEDULED_ARRIVAL | Temperature | Dew Point | Humidity | Wind | Wind Speed | Wind Gust | Pressure | Condition | FLT_SCH_ARRIVAL | FLT_SCH_DEPARTURE | TAXI_OUT | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 21543 | 1 | 9 | 4 | 9E | N907XJ | RDU | -5 | 128 | 427 | 535 | 530 | 663 | 26 | 9 | 49 | NW | 12 | 22 | 30.73 | Fair | 48 | 20 | 24 |
| 18923 | 12 | 31 | 2 | 9E | N820AY | IAD | 37 | 100 | 228 | 1165 | 1202 | 1265 | 43 | 39 | 86 | SSW | 10 | 0 | 29.63 | Cloudy | 23 | 35 | 24 |
| 24783 | 1 | 19 | 7 | 9E | N8783E | BWI | -5 | 86 | 184 | 1160 | 1155 | 1246 | 36 | 18 | 48 | WNW | 16 | 0 | 29.89 | Fair | 38 | 28 | 14 |
| 9459 | 11 | 30 | 6 | 9E | N600LR | PIT | -8 | 106 | 340 | 454 | 446 | 560 | 32 | 21 | 64 | N | 10 | 0 | 30.09 | Mostly Cloudy | 36 | 31 | 28 |
| 24791 | 1 | 19 | 7 | 9E | N8974C | ORF | -3 | 107 | 290 | 1170 | 1167 | 1277 | 34 | 16 | 48 | WNW | 17 | 28 | 29.92 | Fair | 38 | 28 | 38 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 26031 | 1 | 23 | 4 | YX | N133HQ | CMH | -10 | 121 | 483 | 933 | 923 | 1054 | 42 | 27 | 55 | SSW | 5 | 0 | 30.33 | Cloudy | 30 | 39 | 22 |
| 26026 | 1 | 23 | 4 | YX | N404YX | IND | -11 | 143 | 665 | 930 | 919 | 1073 | 42 | 27 | 55 | SSW | 5 | 0 | 30.33 | Cloudy | 30 | 39 | 18 |
| 20165 | 1 | 4 | 6 | YX | N214JQ | BOS | -2 | 89 | 187 | 1260 | 1258 | 1349 | 47 | 42 | 83 | NW | 18 | 26 | 29.53 | Light Rain | 35 | 43 | 39 |
| 20166 | 1 | 4 | 6 | YX | N875RW | PIT | 14 | 117 | 340 | 1250 | 1264 | 1367 | 47 | 42 | 83 | NW | 18 | 26 | 29.53 | Light Rain | 30 | 27 | 35 |
| 20295 | 1 | 5 | 7 | YX | N201JQ | ROC | 52 | 95 | 264 | 615 | 667 | 710 | 42 | 25 | 51 | WNW | 22 | 36 | 29.83 | Mostly Cloudy / Windy | 32 | 19 | 23 |
28818 rows × 23 columns
Dropping columns (dates, categorical data) for k-Fold Cross-Validation¶
In [ ]:
taxiCV = taxi.drop(columns=['MONTH', 'DAY_OF_MONTH', 'DAY_OF_WEEK', 'CARRIER_CODE', 'FLIGHT_NO', 'DEST', 'Wind', 'Condition'])
taxiCV
Out[ ]:
| DEP_DELAY | SCHEDULED_DURATION | DISTANCE | SCHEDULED_DEPARTURE | ACTUAL_DEP_TIME | SCHEDULED_ARRIVAL | Temperature | Dew Point | Humidity | Wind Speed | Wind Gust | Pressure | FLT_SCH_ARRIVAL | FLT_SCH_DEPARTURE | TAXI_OUT | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | -1 | 124 | 636 | 324 | 323 | 448 | 48 | 34 | 58 | 25 | 38 | 29.86 | 9 | 17 | 14 |
| 1 | -7 | 371 | 2475 | 340 | 333 | 531 | 48 | 34 | 58 | 25 | 38 | 29.86 | 9 | 17 | 15 |
| 2 | 40 | 181 | 1069 | 301 | 341 | 482 | 48 | 34 | 58 | 25 | 38 | 29.86 | 9 | 17 | 22 |
| 3 | -2 | 168 | 944 | 345 | 343 | 513 | 48 | 34 | 58 | 25 | 38 | 29.86 | 9 | 17 | 12 |
| 4 | -4 | 139 | 760 | 360 | 356 | 499 | 46 | 32 | 58 | 24 | 35 | 29.91 | 9 | 17 | 13 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 28815 | 2 | 57 | 150 | 1370 | 1372 | 1427 | 39 | 38 | 96 | 6 | 0 | 30.18 | 20 | 32 | 19 |
| 28816 | 2 | 75 | 187 | 1390 | 1392 | 25 | 39 | 38 | 96 | 6 | 0 | 30.18 | 19 | 23 | 22 |
| 28817 | 283 | 392 | 2422 | 1125 | 1408 | 1337 | 39 | 38 | 96 | 6 | 0 | 30.18 | 19 | 23 | 21 |
| 28818 | 5 | 224 | 1598 | 1417 | 1422 | 261 | 39 | 38 | 96 | 6 | 0 | 30.18 | 19 | 23 | 13 |
| 28819 | -1 | 225 | 1576 | 1439 | 1438 | 284 | 39 | 38 | 96 | 6 | 0 | 30.18 | 19 | 23 | 15 |
28818 rows × 15 columns
k-Fold Cross-Validation (CV)¶
In [ ]:
X = taxiCV.iloc[:-1, 0:14] # set predicting variables (initially trying all of them except taxi out time, k = n) from taxiCV
y = taxiCV.iloc[:-1, 14] # set variable of what we want to predict (taxi out time)
# Define model evaluation method with 15 fold cross-validation
cv = RepeatedKFold(n_splits=15, n_repeats=3, random_state=1)
# Defining the model with 3 alphas of 0, 1, and 0.01 (λ), one for each n_repeat
taxi_model = RidgeCV(alphas=arange(0, 1, 0.01), cv=cv, scoring='neg_mean_absolute_error')
# Fitting the model
taxi_model.fit(X, y)
# Summarise chosen configuration
print('alpha: %f' % taxi_model.alpha_) # λ = 0.99
alpha: 0.990000
In [ ]:
# Using X and y from k-Fold CV above, split dataset with ratio of train to test of 90:10
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=1) # test_size set to 0.1 because we want 0.9 train_size, random_state can be any integer
In [ ]:
X_train # Show X_train
Out[ ]:
| DEP_DELAY | SCHEDULED_DURATION | DISTANCE | SCHEDULED_DEPARTURE | ACTUAL_DEP_TIME | SCHEDULED_ARRIVAL | Temperature | Dew Point | Humidity | Wind Speed | Wind Gust | Pressure | FLT_SCH_ARRIVAL | FLT_SCH_DEPARTURE | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12992 | -1 | 105 | 427 | 1030 | 1029 | 1135 | 31 | 17 | 57 | 3 | 0 | 30.71 | 32 | 32 |
| 27682 | -3 | 187 | 740 | 970 | 967 | 1097 | 41 | 25 | 53 | 18 | 0 | 29.83 | 28 | 29 |
| 16171 | -3 | 365 | 2153 | 345 | 342 | 590 | 35 | 31 | 85 | 8 | 0 | 30.14 | 11 | 21 |
| 15508 | 30 | 263 | 1521 | 1289 | 1319 | 52 | 27 | 15 | 61 | 10 | 0 | 30.63 | 32 | 35 |
| 4622 | -14 | 192 | 1089 | 485 | 471 | 677 | 40 | 27 | 60 | 8 | 0 | 30.26 | 36 | 30 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 10955 | -10 | 100 | 266 | 1320 | 1310 | 1420 | 39 | 25 | 57 | 15 | 30 | 30.02 | 29 | 32 |
| 17291 | -2 | 292 | 1626 | 1015 | 1013 | 1187 | 45 | 40 | 82 | 14 | 0 | 30.36 | 28 | 32 |
| 5192 | -5 | 412 | 2586 | 1199 | 1194 | 1431 | 34 | 5 | 30 | 10 | 0 | 30.46 | 40 | 26 |
| 12172 | -2 | 384 | 2475 | 1320 | 1318 | 84 | 50 | 50 | 10 | 14 | 0 | 29.77 | 26 | 28 |
| 235 | 33 | 188 | 1069 | 1130 | 1163 | 1318 | 49 | 30 | 48 | 12 | 0 | 30.21 | 40 | 24 |
25935 rows × 14 columns
In [ ]:
y_train # Show y_train
Out[ ]:
12992 26
27682 18
16171 21
15508 12
4622 26
..
10955 35
17291 9
5192 25
12172 14
235 23
Name: TAXI_OUT, Length: 25935, dtype: int64
In [ ]:
X_test # Show X_test
Out[ ]:
| DEP_DELAY | SCHEDULED_DURATION | DISTANCE | SCHEDULED_DEPARTURE | ACTUAL_DEP_TIME | SCHEDULED_ARRIVAL | Temperature | Dew Point | Humidity | Wind Speed | Wind Gust | Pressure | FLT_SCH_ARRIVAL | FLT_SCH_DEPARTURE | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1637 | -6 | 87 | 213 | 515 | 509 | 602 | 50 | 33 | 52 | 12 | 0 | 30.39 | 52 | 18 |
| 22484 | -3 | 265 | 1391 | 539 | 536 | 744 | 62 | 49 | 62 | 25 | 0 | 29.98 | 49 | 18 |
| 14604 | 103 | 85 | 187 | 1034 | 1137 | 1119 | 34 | 34 | 10 | 12 | 0 | 29.71 | 38 | 36 |
| 5945 | -11 | 379 | 2475 | 425 | 414 | 624 | 43 | 43 | 10 | 10 | 0 | 29.78 | 16 | 14 |
| 26858 | 0 | 125 | 427 | 516 | 516 | 641 | 40 | 35 | 83 | 13 | 0 | 29.83 | 47 | 17 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 4184 | 8 | 128 | 483 | 1220 | 1228 | 1348 | 30 | 7 | 38 | 9 | 0 | 30.43 | 29 | 44 |
| 938 | -11 | 180 | 1005 | 447 | 436 | 627 | 44 | 36 | 73 | 3 | 0 | 30.37 | 35 | 28 |
| 25913 | -7 | 395 | 2422 | 546 | 539 | 761 | 38 | 28 | 68 | 9 | 0 | 30.43 | 46 | 18 |
| 5549 | -8 | 83 | 266 | 1320 | 1312 | 1403 | 39 | 31 | 73 | 17 | 0 | 30.07 | 32 | 34 |
| 8351 | -8 | 188 | 1069 | 590 | 582 | 778 | 50 | 44 | 80 | 6 | 0 | 30.04 | 37 | 20 |
2882 rows × 14 columns
In [ ]:
y_test # Show y_test
Out[ ]:
1637 20
22484 33
14604 31
5945 19
26858 16
..
4184 14
938 10
25913 15
5549 21
8351 27
Name: TAXI_OUT, Length: 2882, dtype: int64
In [ ]:
print(X_train.shape,X_test.shape,y_train.shape,y_test.shape) # Show sizes of train and test data
(25935, 14) (2882, 14) (25935,) (2882,)
In [ ]:
# Create a linear regression object called lreg
lreg = LinearRegression()
# Perform the linear regression using X_train and y_train
lreg.fit(X_train, y_train)
# Make predictions based on the model
y_pred = lreg.predict(X_test)
# Calculate the mean squared error, **0.5 will square root the mean squared error
rmse = mean_squared_error(y_test,y_pred)**0.5
print(rmse) # rmse = 6.575824000116706
6.575824000116706
In [ ]:
# define model
ridge_mod = Ridge(alpha=0.05)
# fit model
ridge_mod.fit(X_train, y_train)
# make prediction
ridge_pred = ridge_mod.predict(X_test)
# Calculate the mean squared error
rmser = mean_squared_error(y_test,ridge_pred)**0.5
print(rmser) #rmser = 6.5758241217961 when alpha is 0.05)
6.5758241217961
In [ ]:
# define model
lasso_mod = Lasso(alpha=0.05)
# fit model
lasso_mod.fit(X_train, y_train)
# make prediction
lasso_pred = lasso_mod.predict(X_test)
# Calculate the mean squared error
rmsel = mean_squared_error(y_test,lasso_pred)**0.5
print(rmsel) #rmsel = 6.5813630250458015 when alpha is 0.05)
6.5813630250458015
In [ ]:
# define model
knnr = KNeighborsRegressor(n_neighbors=200)
# fit model
knnr.fit(X_train,y_train)
# make prediction
knn_pred = knnr.predict(X_test)
# Calculate the mean squared error
rmsek = mean_squared_error(y_test,knn_pred)**0.5
print(rmsek) #rmsek = 6.665877509387613 when n_neighbours is 200)
6.665877509387613
In [ ]:
# define model
sc1 = StandardScaler()
sc2 = StandardScaler()
x1 = X_train.copy()
x2 = X_test.copy()
# fit model
x1 = sc1.fit_transform(x1)
x2 = sc2.fit_transform(x2)
svr=SVR()
svr.fit(x1,y_train)
# make prediction
svr_pred = svr.predict(x2)
# Calculate the mean squared error
rmsesv = mean_squared_error(y_test,svr_pred)**0.5
print(rmsesv) #rmsesv = 6.4861562011648095
6.4861562011648095
In [ ]:
# define model
bay_mod = BayesianRidge()
# fit model
bay_mod.fit(X_train,y_train)
# make prediction
bay_pred = bay_mod.predict(X_test)
# Calculate the mean squared error
rmseb = mean_squared_error(y_test,bay_pred)**0.5
print(rmseb) #rmseb = 6.57981846296084
6.57981846296084
In [ ]:
# define model
rf_mod = RandomForestRegressor()
# fit model
rf_mod.fit(X_train,y_train)
#make prediction
rf_pred = rf_mod.predict(X_test)
# Calculate the mean squared error
rmserf = mean_squared_error(y_test,rf_pred)**0.5
print(rmserf) #rmserf = 5.664840253147916
5.664840253147916
In [ ]:
# lgbm = LGBMRegressor()
# lgbm.fit(X_train,y_train)
# lgbm_pred = lgbm.predict(X_test)
# # Calculate the mean squared error
# rmselgbm = mean_squared_error(y_test,lgbm_pred)**0.5
# print(rmselgbm) #rmselgbm = ?