{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Project: Analyzing Fuel Economy Data for 2008 and 2018\n", "\n", "--by Lu Tang" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Table of Contents\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fuel Economy Data is provided by the U.S. Environmental Protection Agency, Office of Mobile Sources, National Vehicle and Fuel Emissions Laboratory.\n", "\n", "What is Fuel Economy? Excerpt from Wikipedia page on Fuel Economy in Automobiles:\n", ">- The fuel economy of an automobile is the fuel efficiency relationship between the distance traveled and the amount of fuel consumed by the vehicle. Consumption can be expressed in terms of volume of fuel to travel a distance, or the distance travelled per unit volume of fuel consumed.\n", "\n", "This project will compare Fuel Economy Data for 2008 and 2018, and analyze the changes in vehicles and its fuel efficiency.\n", "\n", "Data Source\n", "https://www.epa.gov/compliance-and-fuel-economy-data/data-cars-used-testing-fuel-economy\n", "\n", "Data Download\n", "https://www.fueleconomy.gov/feg/download.shtml\n", "\n", "Documentation \n", "https://www.fueleconomy.gov/feg/EPAGreenGuide/GreenVehicleGuideDocumentation.pdf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Attribute Description\n", ">- `Model`-- Vehicle make and model\n", ">- `Disp`l-- Engine displacement - the size of an engine in liters\n", ">- `Cyl`-- The number of cylinders in a particular engine\n", ">- `Trans`-- Transmission Type and Number of Gears\n", ">- `Drive`-- Drive axle type (2WD = 2-wheel drive, 4WD = 4-wheel/all-wheel drive)\n", ">- `Fuel`--\tFuel Type\n", ">- `Cert Region`*--\tCertification Region Code\n", ">- `Sales Area`**--\tCertification Region Code\n", ">- `Stnd`--\tVehicle emissions standard code (View Vehicle Emissions Standards here)\n", ">- `Stnd Description`*-- Vehicle emissions standard description\n", ">- `Underhood ID`--\tThis is a 12-digit ID number that can be found on the underhood emission label of every vehicle. It's required by the EPA to designate its \"test group\" or \"engine family.\" This is explained more here\n", ">- `Veh Class`-- EPA Vehicle Class\n", ">- `Air Pollution Score`--\tAir pollution score (smog rating, scoring ranges from 1 (worst) to 10 (best)).\n", ">- `City MPG`-- Estimated city mpg (miles/gallon)\n", ">- `Hwy MPG`-- Estimated highway mpg (miles/gallon)\n", ">- `Cmb MPG`-- Estimated combined mpg (miles/gallon)\n", ">- `Greenhouse Gas Score`-- Greenhouse gas rating (Vehicles that score a 10 are the cleanest)\n", ">- `SmartWay`--\tYes, No, or Elite\n", ">- `Comb CO2`*-- Combined city/highway CO2 tailpipe emissions in grams per mile\n", ">- *Not included in 2008 dataset\n", ">- ** Not included in 2018 dataset" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The project will answer the following questions:\n", "\n", "Q1: Compare the distributions of greenhouse gas score in 2008 and 2018.\n", "\n", "Q2: How has the distribution of combined mpg changed from 2008 to 2018?\n", "\n", "Q3: Describe the correlation between displacement and combined mpg\n", "\n", "Q4: Describe the correlation between greenhouse gas score and combined mpg.\n", "\n", "Q5: Are more unique models using alternative sources of fuel? By how much?\n", "\n", "Q6: How much have vehicle classes improved in fuel economy?\n", "\n", "Q7: What are the characteristics of SmartWay vehicles? Have they changed over time?\n", "\n", "Q8: For all of the models that were produced in 2008 that are still being produced now, how much has the mpg improved and which vehicle improved the most?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Data Wrangling" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Step1. Assessing Data" ] }, { "cell_type": "code", "execution_count": 1, "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", "
ModelDisplCylTransDriveFuelSales AreaStndUnderhood IDVeh ClassAir Pollution ScoreFE Calc ApprCity MPGHwy MPGCmb MPGUnadj Cmb MPGGreenhouse Gas ScoreSmartWay
0ACURA MDX3.7(6 cyl)Auto-S54WDGasolineCAU28HNXT03.7PKRSUV7Drv15201722.05274no
\n", "
" ], "text/plain": [ " Model Displ Cyl Trans Drive Fuel Sales Area Stnd \\\n", "0 ACURA MDX 3.7 (6 cyl) Auto-S5 4WD Gasoline CA U2 \n", "\n", " Underhood ID Veh Class Air Pollution Score FE Calc Appr City MPG Hwy MPG \\\n", "0 8HNXT03.7PKR SUV 7 Drv 15 20 \n", "\n", " Cmb MPG Unadj Cmb MPG Greenhouse Gas Score SmartWay \n", "0 17 22.0527 4 no " ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Load data for 2008\n", "import pandas as pd\n", "df_08=pd.read_csv('all_alpha_08.csv')\n", "df_08.head(1)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "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", "
ModelDisplCylTransDriveFuelCert RegionStndStnd DescriptionUnderhood IDVeh ClassAir Pollution ScoreCity MPGHwy MPGCmb MPGGreenhouse Gas ScoreSmartWayComb CO2
0ACURA RDX3.56.0SemiAuto-62WDGasolineFAT3B125Federal Tier 3 Bin 125JHNXT03.5GV3small SUV32028235No386
\n", "
" ], "text/plain": [ " Model Displ Cyl Trans Drive Fuel Cert Region Stnd \\\n", "0 ACURA RDX 3.5 6.0 SemiAuto-6 2WD Gasoline FA T3B125 \n", "\n", " Stnd Description Underhood ID Veh Class Air Pollution Score \\\n", "0 Federal Tier 3 Bin 125 JHNXT03.5GV3 small SUV 3 \n", "\n", " City MPG Hwy MPG Cmb MPG Greenhouse Gas Score SmartWay Comb CO2 \n", "0 20 28 23 5 No 386 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Load data for 2018\n", "df_18=pd.read_csv('all_alpha_18.csv')\n", "df_18.head(1)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 2404 entries, 0 to 2403\n", "Data columns (total 18 columns):\n", "Model 2404 non-null object\n", "Displ 2404 non-null float64\n", "Cyl 2205 non-null object\n", "Trans 2205 non-null object\n", "Drive 2311 non-null object\n", "Fuel 2404 non-null object\n", "Sales Area 2404 non-null object\n", "Stnd 2404 non-null object\n", "Underhood ID 2404 non-null object\n", "Veh Class 2404 non-null object\n", "Air Pollution Score 2404 non-null object\n", "FE Calc Appr 2205 non-null object\n", "City MPG 2205 non-null object\n", "Hwy MPG 2205 non-null object\n", "Cmb MPG 2205 non-null object\n", "Unadj Cmb MPG 2205 non-null float64\n", "Greenhouse Gas Score 2205 non-null object\n", "SmartWay 2404 non-null object\n", "dtypes: float64(2), object(16)\n", "memory usage: 338.1+ KB\n" ] } ], "source": [ "df_08.info()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1611 entries, 0 to 1610\n", "Data columns (total 18 columns):\n", "Model 1611 non-null object\n", "Displ 1609 non-null float64\n", "Cyl 1609 non-null float64\n", "Trans 1611 non-null object\n", "Drive 1611 non-null object\n", "Fuel 1611 non-null object\n", "Cert Region 1611 non-null object\n", "Stnd 1611 non-null object\n", "Stnd Description 1611 non-null object\n", "Underhood ID 1611 non-null object\n", "Veh Class 1611 non-null object\n", "Air Pollution Score 1611 non-null int64\n", "City MPG 1611 non-null object\n", "Hwy MPG 1611 non-null object\n", "Cmb MPG 1611 non-null object\n", "Greenhouse Gas Score 1611 non-null int64\n", "SmartWay 1611 non-null object\n", "Comb CO2 1611 non-null object\n", "dtypes: float64(2), int64(2), object(14)\n", "memory usage: 226.6+ KB\n" ] } ], "source": [ "df_18.info()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(25, 0)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sum(df_08.duplicated()), sum(df_18.duplicated())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysis\n", "> Columns and datatypes in two datasets are not consistent, and there are missing data and duplicated data too" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Step 2. Cleaning Columns, filter, drop nulls and dedupe." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Step 2_1. Drop extraneous columns\n", "Drop features that aren't consistent (not present in both datasets) or aren't relevant to our questions. Use pandas' drop function." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['Model', 'Displ', 'Cyl', 'Trans', 'Drive', 'Fuel', 'Sales Area', 'Stnd',\n", " 'Underhood ID', 'Veh Class', 'Air Pollution Score', 'FE Calc Appr',\n", " 'City MPG', 'Hwy MPG', 'Cmb MPG', 'Unadj Cmb MPG',\n", " 'Greenhouse Gas Score', 'SmartWay'],\n", " dtype='object')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# view columns in 2008 dataset\n", "df_08.columns" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['Model', 'Displ', 'Cyl', 'Trans', 'Drive', 'Fuel', 'Cert Region',\n", " 'Stnd', 'Stnd Description', 'Underhood ID', 'Veh Class',\n", " 'Air Pollution Score', 'City MPG', 'Hwy MPG', 'Cmb MPG',\n", " 'Greenhouse Gas Score', 'SmartWay', 'Comb CO2'],\n", " dtype='object')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# view columns in 2018 dataset\n", "df_18.columns" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# drop columns from 2008 dataset\n", "df_08.drop(['Stnd', 'Underhood ID', 'FE Calc Appr', 'Unadj Cmb MPG'],axis=1, inplace=True)\n", "\n", "# drop columns from 2018 dataset\n", "df_18.drop(['Stnd', 'Stnd Description', 'Underhood ID', 'Comb CO2'],axis=1, inplace=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Step 2_2. Rename columns" ] }, { "cell_type": "code", "execution_count": 9, "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", "
ModelDisplCylTransDriveFuelCert RegionVeh ClassAir Pollution ScoreCity MPGHwy MPGCmb MPGGreenhouse Gas ScoreSmartWay
0ACURA MDX3.7(6 cyl)Auto-S54WDGasolineCASUV71520174no
\n", "
" ], "text/plain": [ " Model Displ Cyl Trans Drive Fuel Cert Region Veh Class \\\n", "0 ACURA MDX 3.7 (6 cyl) Auto-S5 4WD Gasoline CA SUV \n", "\n", " Air Pollution Score City MPG Hwy MPG Cmb MPG Greenhouse Gas Score SmartWay \n", "0 7 15 20 17 4 no " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# rename Sales Area to Cert Region\n", "df_08.rename({'Sales Area':'Cert Region'}, axis=1, inplace=True)\n", "\n", "# confirm changes\n", "df_08.head(1)" ] }, { "cell_type": "code", "execution_count": 10, "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", "
modeldisplcyltransdrivefuelcert_regionveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
0ACURA MDX3.7(6 cyl)Auto-S54WDGasolineCASUV71520174no
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel cert_region veh_class \\\n", "0 ACURA MDX 3.7 (6 cyl) Auto-S5 4WD Gasoline CA SUV \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score smartway \n", "0 7 15 20 17 4 no " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# replace spaces with underscores and lowercase labels for 2008 dataset\n", "df_08.rename(columns=lambda x:x.strip().lower().replace(' ','_'), inplace=True)\n", "\n", "# confirm changes\n", "df_08.head(1)" ] }, { "cell_type": "code", "execution_count": 11, "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", "
modeldisplcyltransdrivefuelcert_regionveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
0ACURA RDX3.56.0SemiAuto-62WDGasolineFAsmall SUV32028235No
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel cert_region veh_class \\\n", "0 ACURA RDX 3.5 6.0 SemiAuto-6 2WD Gasoline FA small SUV \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score smartway \n", "0 3 20 28 23 5 No " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# replace spaces with underscores and lowercase labels for 2018 dataset\n", "df_18.rename(columns=lambda x:x.strip().lower().replace(' ','_'), inplace=True)\n", "\n", "# confirm changes\n", "df_18.head(1)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# confirm column labels for 2008 and 2018 datasets are identical \n", "(df_08.columns==df_18.columns).all()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Step 2_3. Filter data by Certification Region to compare with the same standard\n", "\n", "For consistency, only compare cars certified by California standards. Filter both datasets using query to select only rows where cert_region is CA. Then, drop the cert_region columns, since it will no longer provide any useful information (all value are 'CA')." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "FA 1157\n", "CA 1084\n", "FC 163\n", "Name: cert_region, dtype: int64" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check the unique value in cert_region for 2008 data\n", "df_08['cert_region'].value_counts()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "FA 813\n", "CA 798\n", "Name: cert_region, dtype: int64" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check the unique value in cert_region for 2018 data\n", "df_18['cert_region'].value_counts()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# filter datasets for rows following California standards\n", "df_08 = df_08[df_08['cert_region']=='CA']\n", "# using query method (same as above)\n", "df_18 = df_18.query('cert_region == \"CA\"')" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "CA 1084\n", "Name: cert_region, dtype: int64" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# confirm only certification region is California\n", "df_08['cert_region'].value_counts()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "CA 798\n", "Name: cert_region, dtype: int64" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# confirm only certification region is California\n", "df_18['cert_region'].value_counts()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# drop certification region columns form both datasets\n", "df_08.drop('cert_region', axis=1, inplace=True)\n", "df_18.drop('cert_region', axis=1, inplace=True)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((1084, 13), (798, 13))" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check the columns and row number after the change \n", "df_08.shape, df_18.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Step 2_4. Cleaning data with Missing Values" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "model 0\n", "displ 0\n", "cyl 75\n", "trans 75\n", "drive 37\n", "fuel 0\n", "veh_class 0\n", "air_pollution_score 0\n", "city_mpg 75\n", "hwy_mpg 75\n", "cmb_mpg 75\n", "greenhouse_gas_score 75\n", "smartway 0\n", "dtype: int64" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# view missing value count for each feature in 2008\n", "df_08.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "model 0\n", "displ 1\n", "cyl 1\n", "trans 0\n", "drive 0\n", "fuel 0\n", "veh_class 0\n", "air_pollution_score 0\n", "city_mpg 0\n", "hwy_mpg 0\n", "cmb_mpg 0\n", "greenhouse_gas_score 0\n", "smartway 0\n", "dtype: int64" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# view missing value count for each feature in 2018\n", "df_18.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "# As the number of missing data is less than 7%, and each car is different, so filling missing value can be inaccurate\n", "# in this case we can drop rows with any null values in both datasets\n", "df_08.dropna(inplace=True)\n", "df_18.dropna(inplace=True)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# checks if any of columns in 2008 have null values - should print False\n", "df_08.isnull().sum().any()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# checks if any of columns in 2018 have null values - should print False\n", "df_18.isnull().sum().any()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Step 2_5. Dedupe Data" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(23, 3)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# print number of duplicates in 2008 and 2018 datasets\n", "sum(df_08.duplicated()), sum(df_18.duplicated())" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "# drop duplicates in both datasets\n", "df_08.drop_duplicates(inplace=True)\n", "df_18.drop_duplicates(inplace=True)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0, 0)" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# print number of duplicates again to confirm dedupe - should both be 0\n", "df_08.duplicated().sum(), df_18.duplicated().sum()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "# save progress for the next section\n", "df_08.to_csv('data_08_v1.csv', index=False)\n", "df_18.to_csv('data_18_v1.csv', index=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Step 3. Fix Datatypes" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "# Load data\n", "df_08=pd.read_csv('data_08_v1.csv')\n", "df_18=pd.read_csv('data_18_v1.csv')" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 986 entries, 0 to 985\n", "Data columns (total 13 columns):\n", "model 986 non-null object\n", "displ 986 non-null float64\n", "cyl 986 non-null object\n", "trans 986 non-null object\n", "drive 986 non-null object\n", "fuel 986 non-null object\n", "veh_class 986 non-null object\n", "air_pollution_score 986 non-null object\n", "city_mpg 986 non-null object\n", "hwy_mpg 986 non-null object\n", "cmb_mpg 986 non-null object\n", "greenhouse_gas_score 986 non-null object\n", "smartway 986 non-null object\n", "dtypes: float64(1), object(12)\n", "memory usage: 100.2+ KB\n" ] } ], "source": [ "# check datatype in 2008 dataset\n", "df_08.info()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 794 entries, 0 to 793\n", "Data columns (total 13 columns):\n", "model 794 non-null object\n", "displ 794 non-null float64\n", "cyl 794 non-null float64\n", "trans 794 non-null object\n", "drive 794 non-null object\n", "fuel 794 non-null object\n", "veh_class 794 non-null object\n", "air_pollution_score 794 non-null int64\n", "city_mpg 794 non-null object\n", "hwy_mpg 794 non-null object\n", "cmb_mpg 794 non-null object\n", "greenhouse_gas_score 794 non-null int64\n", "smartway 794 non-null object\n", "dtypes: float64(2), int64(2), object(9)\n", "memory usage: 80.7+ KB\n" ] } ], "source": [ "# check datatype in 2018 dataset\n", "df_18.info()" ] }, { "cell_type": "code", "execution_count": 32, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
0ACURA MDX3.7(6 cyl)Auto-S54WDGasolineSUV71520174no
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel veh_class \\\n", "0 ACURA MDX 3.7 (6 cyl) Auto-S5 4WD Gasoline SUV \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score smartway \n", "0 7 15 20 17 4 no " ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_08.head(1)" ] }, { "cell_type": "code", "execution_count": 33, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
0ACURA RDX3.56.0SemiAuto-62WDGasolinesmall SUV32028235No
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel veh_class \\\n", "0 ACURA RDX 3.5 6.0 SemiAuto-6 2WD Gasoline small SUV \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score smartway \n", "0 3 20 28 23 5 No " ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_18.head(1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Step 3_1. Fix `cyl` datatypes" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(6 cyl) 409\n", "(4 cyl) 283\n", "(8 cyl) 199\n", "(5 cyl) 48\n", "(12 cyl) 30\n", "(10 cyl) 14\n", "(2 cyl) 2\n", "(16 cyl) 1\n", "Name: cyl, dtype: int64" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# check value counts for the 2008 cyl column\n", "df_08['cyl'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[This](https://stackoverflow.com/questions/35376387/extract-int-from-string-in-pandas) explains how to extract ints from strings in Pandas." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "# Extract number from strings in the 2008 cyl column using regular expressions\n", "df_08['cyl'] = df_08['cyl'].str.extract('(\\d+)').astype(int)\n", "\n", "# Alternative way, without regular expressions, but only works in a certain format\n", "\n", "# df_08['cyl']=(df_08['cyl'].str.split(' ',n=1, expand=True).iloc[:,0].str[1:].astype(int))" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "6 409\n", "4 283\n", "8 199\n", "5 48\n", "12 30\n", "10 14\n", "2 2\n", "16 1\n", "Name: cyl, dtype: int64" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check value counts for 2008 cyl column again to confirm the change\n", "df_08['cyl'].value_counts()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4.0 365\n", "6.0 246\n", "8.0 153\n", "3.0 18\n", "12.0 9\n", "5.0 2\n", "16.0 1\n", "Name: cyl, dtype: int64" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_18['cyl'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**For the column 'cyl' in 2018 dataset is already only number and the data type is float**" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "# Convert floats to ints in the 2018 cyl column.\n", "df_18['cyl']=df_18['cyl'].astype(int)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Step 3_2. Fix ` air_pollution_score` datatypes" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "515 7\n", "646 9.5\n", "134 6\n", "368 6\n", "893 7\n", "603 6\n", "193 6\n", "586 6\n", "757 6\n", "221 6\n", "Name: air_pollution_score, dtype: object" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_08['air_pollution_score'].sample(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Try using Pandas to_numeric or astype function to convert the 2008 air_pollution_score column to float -- this won't work" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "# df_08['air_pollution_score'] = df_08['air_pollution_score'].astype(float)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Figuring out the issue\n", "> According to the error after running the above code, the air pollution score value in one of the rows is \"6/4\" " ] }, { "cell_type": "code", "execution_count": 41, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
582MERCEDES-BENZ C3003.06Auto-L72WDethanol/gassmall car6/413/1819/2515/217/6no
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel veh_class \\\n", "582 MERCEDES-BENZ C300 3.0 6 Auto-L7 2WD ethanol/gas small car \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score smartway \n", "582 6/4 13/18 19/25 15/21 7/6 no " ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Find out the row(s) that contain '6/4'\n", "df_08[df_08.air_pollution_score == '6/4']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**It's not just the air pollution score!**\n", "\n", "The mpg columns and greenhouse gas scores also seem to have the same problem - maybe that's why these were all saved as strings! According to [this link](http://www.fueleconomy.gov/feg/findacarhelp.shtml#airPollutionScore), which I found from the PDF documentation:\n", "\n", " \"If a vehicle can operate on more than one type of fuel, an estimate is provided for each fuel type.\"\n", " \n", "So all vehicles with more than one fuel type, or hybrids, like the one above (it uses ethanol AND gas) will have a string that holds two values - one for each. This is a little tricky, so I'm going to show you how to do it with the 2008 dataset, and then you'll try it with the 2018 dataset." ] }, { "cell_type": "code", "execution_count": 42, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
582MERCEDES-BENZ C3003.06Auto-L72WDethanol/gassmall car6/413/1819/2515/217/6no
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel veh_class \\\n", "582 MERCEDES-BENZ C300 3.0 6 Auto-L7 2WD ethanol/gas small car \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score smartway \n", "582 6/4 13/18 19/25 15/21 7/6 no " ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# First, let's get all the hybrids in 2008\n", "hb_08 = df_08[df_08['fuel'].str.contains('/')]\n", "hb_08.head()" ] }, { "cell_type": "code", "execution_count": 43, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
52BMW 330e2.04SemiAuto-82WDGasoline/Electricitysmall car328/6634/7830/7110Yes
78BMW 530e2.04SemiAuto-82WDGasoline/Electricitysmall car727/7031/7529/7210Elite
79BMW 530e2.04SemiAuto-84WDGasoline/Electricitysmall car727/6631/6828/6710Elite
92BMW 740e2.04SemiAuto-84WDGasoline/Electricitylarge car325/6229/6827/649Yes
189CHEVROLET Impala3.66SemiAuto-62WDEthanol/Gaslarge car514/1820/2816/224No
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel \\\n", "52 BMW 330e 2.0 4 SemiAuto-8 2WD Gasoline/Electricity \n", "78 BMW 530e 2.0 4 SemiAuto-8 2WD Gasoline/Electricity \n", "79 BMW 530e 2.0 4 SemiAuto-8 4WD Gasoline/Electricity \n", "92 BMW 740e 2.0 4 SemiAuto-8 4WD Gasoline/Electricity \n", "189 CHEVROLET Impala 3.6 6 SemiAuto-6 2WD Ethanol/Gas \n", "\n", " veh_class air_pollution_score city_mpg hwy_mpg cmb_mpg \\\n", "52 small car 3 28/66 34/78 30/71 \n", "78 small car 7 27/70 31/75 29/72 \n", "79 small car 7 27/66 31/68 28/67 \n", "92 large car 3 25/62 29/68 27/64 \n", "189 large car 5 14/18 20/28 16/22 \n", "\n", " greenhouse_gas_score smartway \n", "52 10 Yes \n", "78 10 Elite \n", "79 10 Elite \n", "92 9 Yes \n", "189 4 No " ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# hybrids in 2018\n", "hb_18 = df_18[df_18['fuel'].str.contains('/')]\n", "hb_18.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Strategy\n", "> Take each hybrid row and split them into two new rows - one with values for the first fuel type (values before the \"/\"), and the other with values for the second fuel type (values after the \"/\"). " ] }, { "cell_type": "code", "execution_count": 44, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
582MERCEDES-BENZ C3003.06Auto-L72WDethanol/gassmall car6/413/1819/2515/217/6no
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel veh_class \\\n", "582 MERCEDES-BENZ C300 3.0 6 Auto-L7 2WD ethanol/gas small car \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score smartway \n", "582 6/4 13/18 19/25 15/21 7/6 no " ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# create two copies of the 2008 hybrids dataframe\n", "df1 = hb_08.copy() # data on first fuel type of each hybrid vehicle\n", "df2 = hb_08.copy() # data on second fuel type of each hybrid vehicle\n", "\n", "# Each one should look like this\n", "df1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For this next part, we're going use Pandas' apply function. See the docs [here](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html)." ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "# columns to split by \"/\"\n", "split_columns = ['fuel', 'air_pollution_score', 'city_mpg', 'hwy_mpg', 'cmb_mpg', 'greenhouse_gas_score']\n", "\n", "# apply split function to each column of each dataframe copy\n", "for c in split_columns:\n", " df1[c] = df1[c].apply(lambda x: x.split(\"/\")[0])\n", " df2[c] = df2[c].apply(lambda x: x.split(\"/\")[1])" ] }, { "cell_type": "code", "execution_count": 46, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
582MERCEDES-BENZ C3003.06Auto-L72WDethanolsmall car61319157no
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel veh_class \\\n", "582 MERCEDES-BENZ C300 3.0 6 Auto-L7 2WD ethanol small car \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score smartway \n", "582 6 13 19 15 7 no " ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# this dataframe holds info for the FIRST fuel type of the hybrid, aka the values before the \"/\"s\n", "df1" ] }, { "cell_type": "code", "execution_count": 47, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
582MERCEDES-BENZ C3003.06Auto-L72WDgassmall car41825216no
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel veh_class \\\n", "582 MERCEDES-BENZ C300 3.0 6 Auto-L7 2WD gas small car \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score smartway \n", "582 4 18 25 21 6 no " ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# this dataframe holds info for the SECOND fuel type of the hybrid, aka the values after the \"/\"s\n", "df2" ] }, { "cell_type": "code", "execution_count": 48, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
582MERCEDES-BENZ C3003.06Auto-L72WDethanolsmall car61319157no
582MERCEDES-BENZ C3003.06Auto-L72WDgassmall car41825216no
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel veh_class \\\n", "582 MERCEDES-BENZ C300 3.0 6 Auto-L7 2WD ethanol small car \n", "582 MERCEDES-BENZ C300 3.0 6 Auto-L7 2WD gas small car \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score smartway \n", "582 6 13 19 15 7 no \n", "582 4 18 25 21 6 no " ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# combine dataframes to add to the original dataframe\n", "new_rows = df1.append(df2)\n", "\n", "# now we have separate rows for each fuel type of each vehicle!\n", "new_rows" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "# drop the original hybrid rows\n", "df_08.drop(hb_08.index, inplace=True)\n", "\n", "# add in our newly separated rows\n", "df_08 = df_08.append(new_rows, ignore_index=True)" ] }, { "cell_type": "code", "execution_count": 50, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
\n", "
" ], "text/plain": [ "Empty DataFrame\n", "Columns: [model, displ, cyl, trans, drive, fuel, veh_class, air_pollution_score, city_mpg, hwy_mpg, cmb_mpg, greenhouse_gas_score, smartway]\n", "Index: []" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# check that all the original hybrid rows with \"/\"s are gone\n", "df_08[df_08['fuel'].str.contains('/')]" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(987, 13)" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# check the number of rows after changing\n", "df_08.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Repeat this process for the 2018 dataset***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Split values for `fuel`, `city_mpg`, `hwy_mpg`, `cmb_mpg`**\n", "\n", "We don't need to split for `air_pollution_score` or `greenhouse_gas_score` here because these columns are already ints in the 2018 dataset." ] }, { "cell_type": "code", "execution_count": 52, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
\n", "
" ], "text/plain": [ "Empty DataFrame\n", "Columns: [model, displ, cyl, trans, drive, fuel, veh_class, air_pollution_score, city_mpg, hwy_mpg, cmb_mpg, greenhouse_gas_score, smartway]\n", "Index: []" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# create two copies of the 2018 hybrids dataframe, hb_18\n", "df1 = hb_18.copy()\n", "df2 = hb_18.copy()\n", "\n", "# list of columns to split\n", "split_columns = ['fuel', 'city_mpg', 'hwy_mpg', 'cmb_mpg']\n", "\n", "# apply split function to each column of each dataframe copy\n", "for c in split_columns:\n", " df1[c] = df1[c].apply(lambda x: x.split('/')[0])\n", " df2[c] = df2[c].apply(lambda x: x.split('/')[1])\n", "\n", "# append the two dataframes\n", "new_rows = df1.append(df2)\n", "\n", "# drop each hybrid row from the original 2018 dataframe\n", "# do this by using Pandas drop function with hb_18's index (the rows with '/')\n", "df_18.drop(hb_18.index, inplace=True)\n", "\n", "# append new_rows to df_18\n", "df_18 = df_18.append(new_rows)\n", "\n", "# check that they're gone\n", "df_18[df_18['fuel'].str.contains('/')]" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(832, 13)" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# check the number of rows after changing\n", "df_18.shape" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "# convert string to float for 2008 air pollution column\n", "df_08['air_pollution_score']=df_08['air_pollution_score'].astype(float)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "# convert int to float for 2018 air pollution column\n", "df_18['air_pollution_score']=df_18['air_pollution_score'].astype(float)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Step 3_3. Fix `city_mpg`, `hwy_mpg`, `cmb_mpg` datatypes" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "# convert mpg columns to floats\n", "mpg_columns = ['city_mpg', 'hwy_mpg', 'cmb_mpg']\n", "for c in mpg_columns:\n", " df_08[c] = df_08[c].astype(float)\n", " df_18[c] = df_18[c].astype(float)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Step 3_4 Fix `greenhouse_gas_score` datatypes" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "# Convert strings to ints in the 2008 column.\n", "df_08['greenhouse_gas_score']=df_08['greenhouse_gas_score'].astype(int)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# double check if the two dataset have the same datatype\n", "(df_08.dtypes == df_18.dtypes).all()" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [], "source": [ "# Save your final CLEAN datasets as new files\n", "df_08.to_csv('clean_08.csv', index=False)\n", "df_18.to_csv('clean_18.csv', index=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## Exploratory Data Analysis" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "# import library for visualization\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "# Load cleaned data\n", "df_08=pd.read_csv('clean_08.csv')\n", "df_18=pd.read_csv('clean_18.csv')" ] }, { "cell_type": "code", "execution_count": 62, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
0ACURA MDX3.76Auto-S54WDGasolineSUV7.015.020.017.04no
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel veh_class \\\n", "0 ACURA MDX 3.7 6 Auto-S5 4WD Gasoline SUV \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score \\\n", "0 7.0 15.0 20.0 17.0 4 \n", "\n", " smartway \n", "0 no " ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# view the data\n", "df_08.head(1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Q1: Compare the distributions of greenhouse gas score in 2008 and 2018." ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAD/BJREFUeJzt3XGs3WV9x/H3Z+Actk4gyE0tzcqSzok2ot4QNpLldiyzwrLiHywQh0VZ6h/ocGuyVf/RxJDwh+gm20iqMGrW0RHEtBHmZJ03xD9QKRILdsRGOyx0rQ5WKBpd8bs/7q/xCpfe23PuOYf7nPcruTnnPPf5nef75Jz7ub/z3N/vd1NVSJLa9SujLkCSNFgGvSQ1zqCXpMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxp4+6AIBzzjmnVq9e3dO2zz//PMuWLVvcgl7hnPN4cM7joZ8579mz50dV9fr5+r0ign716tU89NBDPW07PT3N1NTU4hb0Cuecx4NzHg/9zDnJfy2kn0s3ktQ4g16SGmfQS1LjDHpJapxBL0mNM+glqXEGvSQ1zqCXpMYZ9JLUuFfEmbGSXmrvk0e5dsu9Qx/3wE2XD31MDZZ79JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktS4eYM+yaokX02yL8ljSW7o2j+e5Mkkj3Rfl83a5iNJ9id5PMk7BzkBSdLJLeRfCR4HNlfVw0leC+xJcn/3vU9X1Sdnd05yAXAV8GbgDcC/J/mtqnphMQuXJC3MvHv0VXWoqh7u7j8H7ANWnmSTDcCOqvppVX0f2A9ctBjFSpJOXapq4Z2T1cADwFuAvwSuBZ4FHmJmr/+ZJH8HPFhV/9Rtcxvwr1V194ueaxOwCWBiYuIdO3bs6GkCx44dY/ny5T1tu1Q55/Fw5OmjHP7J8Mddu/J1wx+0M46vcz9zXrdu3Z6qmpyv30KWbgBIshz4AvDhqno2ya3AJ4Dqbm8G3g9kjs1f8tukqrYCWwEmJydrampqoaX8kunpaXrddqlyzuPhlu07uXnvgn9EF82B90wNfcwTxvF1HsacF3TUTZJXMRPy26vqHoCqOlxVL1TVz4HP8ovlmYPAqlmbnwc8tXglS5JOxUKOuglwG7Cvqj41q33FrG7vBh7t7u8Crkry6iTnA2uAbyxeyZKkU7GQz4WXANcAe5M80rV9FLg6yYXMLMscAD4AUFWPJbkL+A4zR+xc7xE3kjQ68wZ9VX2Nudfd7zvJNjcCN/ZRlyRpkXhmrCQ1zqCXpMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mNM+glqXEGvSQ1zqCXpMYZ9JLUOINekho3b9AnWZXkq0n2JXksyQ1d+9lJ7k/y3e72rK49ST6TZH+Sbyd5+6AnIUl6eQvZoz8ObK6qNwEXA9cnuQDYAuyuqjXA7u4xwLuANd3XJuDWRa9akrRg8wZ9VR2qqoe7+88B+4CVwAZgW9dtG3BFd38D8Pma8SBwZpIVi165JGlBUlUL75ysBh4A3gI8UVVnzvreM1V1VpIvATdV1de69t3AX1fVQy96rk3M7PEzMTHxjh07dvQ0gWPHjrF8+fKetl2qnPN4OPL0UQ7/ZPjjrl35uuEP2hnH17mfOa9bt25PVU3O1+/0hT5hkuXAF4APV9WzSV626xxtL/ltUlVbga0Ak5OTNTU1tdBSfsn09DS9brtUOefxcMv2ndy8d8E/oovmwHumhj7mCeP4Og9jzgs66ibJq5gJ+e1VdU/XfPjEkkx3e6RrPwismrX5ecBTi1OuJOlULeSomwC3Afuq6lOzvrUL2Njd3wjsnNX+3u7om4uBo1V1aBFrliSdgoV8LrwEuAbYm+SRru2jwE3AXUmuA54Aruy+dx9wGbAf+DHwvkWtWJJ0SuYN+u6Pqi+3IH/pHP0LuL7PuiRJi8QzYyWpcQa9JDXOoJekxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mNM+glqXEGvSQ1zqCXpMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1Lh5/zm4NO5Wb7l3JONuXjuSYdUg9+glqXHu0Uv6JaP6BANwx/plIxu7Ze7RS1LjDHpJapxBL0mNM+glqXEGvSQ1bt6gT3J7kiNJHp3V9vEkTyZ5pPu6bNb3PpJkf5LHk7xzUIVLkhZmIXv0dwDr52j/dFVd2H3dB5DkAuAq4M3dNv+Q5LTFKlaSdOrmDfqqegB4eoHPtwHYUVU/rarvA/uBi/qoT5LUp35OmPpgkvcCDwGbq+oZYCXw4Kw+B7u2l0iyCdgEMDExwfT0dE9FHDt2rOdtlyrnPFyb1x4fybgTZ4xu7FHxvT0YvQb9rcAngOpubwbeD2SOvjXXE1TVVmArwOTkZE1NTfVUyPT0NL1uu1Q55+G6dmTXujnOzXvH6+T1O9Yv8709AD0ddVNVh6vqhar6OfBZfrE8cxBYNavrecBT/ZUoSepHT0GfZMWsh+8GThyRswu4Ksmrk5wPrAG+0V+JkqR+zPu5MMmdwBRwTpKDwMeAqSQXMrMscwD4AEBVPZbkLuA7wHHg+qp6YTClS5IWYt6gr6qr52i+7ST9bwRu7KcoSdLi8cxYSWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mNM+glqXEGvSQ1zqCXpMadPuoCpIXY++RRrt1y76jLkJYk9+glqXEGvSQ1zqCXpMYZ9JLUOINekhpn0EtS4+YN+iS3JzmS5NFZbWcnuT/Jd7vbs7r2JPlMkv1Jvp3k7YMsXpI0v4Xs0d8BrH9R2xZgd1WtAXZ3jwHeBazpvjYBty5OmZKkXs0b9FX1APD0i5o3ANu6+9uAK2a1f75mPAicmWTFYhUrSTp1va7RT1TVIYDu9tyufSXwg1n9DnZtkqQRWexLIGSOtpqzY7KJmeUdJiYmmJ6e7mnAY8eO9bztUjWOc544AzavPT7qMoZqHOc8ju/tYcy516A/nGRFVR3qlmaOdO0HgVWz+p0HPDXXE1TVVmArwOTkZE1NTfVUyPT0NL1uu1SN45xv2b6Tm/eO16WZNq89PnZzvmP9srF7bw/j57nXpZtdwMbu/kZg56z293ZH31wMHD2xxCNJGo15dxeS3AlMAeckOQh8DLgJuCvJdcATwJVd9/uAy4D9wI+B9w2gZknSKZg36Kvq6pf51qVz9C3g+n6LkiQtHs+MlaTGGfSS1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcQa9JDVuvC6kob6t3nLvSMbdvHYkw0pNcI9ekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIaZ9BLUuMMeklqnNe6kfSKsffJo1w7guspHbjp8qGPOUwG/RI0qh8GSUuTSzeS1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcX0dXpnkAPAc8AJwvKomk5wN/AuwGjgA/ElVPdNfmZKkXi3GHv26qrqwqia7x1uA3VW1BtjdPZYkjcgglm42ANu6+9uAKwYwhiRpgfoN+gK+kmRPkk1d20RVHQLobs/tcwxJUh9SVb1vnLyhqp5Kci5wP/AhYFdVnTmrzzNVddYc224CNgFMTEy8Y8eOHT3VcOzYMZYvX97TtkvVkaePcvgno65iuCbOwDmPgVHNee3K1w1/0E4/GbZu3bo9s5bNX1Zff4ytqqe62yNJvghcBBxOsqKqDiVZARx5mW23AlsBJicna2pqqqcapqen6XXbpeqW7Tu5ee94XaZo89rjznkMjGrOB94zNfQxTxhGhvW8dJNkWZLXnrgP/CHwKLAL2Nh12wjs7LdISVLv+vnVOQF8McmJ5/nnqvpykm8CdyW5DngCuLL/MiVJveo56Kvqe8Bb52j/H+DSfoqSJC0ez4yVpMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIaZ9BLUuMMeklq3JL/rwZ7nzzKtVvuHcnYB266fCTjStKpcI9ekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNW7JH145SqtHdFjn5rUjGVbSEuUevSQ1zqCXpMa5dCNp7I1qGRbgjvXLBj6Ge/SS1DiDXpIaZ9BLUuMMeklq3MCCPsn6JI8n2Z9ky6DGkSSd3ECCPslpwN8D7wIuAK5OcsEgxpIkndyg9ugvAvZX1feq6mfADmDDgMaSJJ3EoIJ+JfCDWY8Pdm2SpCFLVS3+kyZXAu+sqj/rHl8DXFRVH5rVZxOwqXv4RuDxHoc7B/hRH+UuRc55PDjn8dDPnH+jql4/X6dBnRl7EFg16/F5wFOzO1TVVmBrvwMleaiqJvt9nqXEOY8H5zwehjHnQS3dfBNYk+T8JL8KXAXsGtBYkqSTGMgefVUdT/JB4N+A04Dbq+qxQYwlSTq5gV3UrKruA+4b1PPP0vfyzxLknMeDcx4PA5/zQP4YK0l65fASCJLUuCUd9ON2mYUkq5J8Ncm+JI8luWHUNQ1DktOSfCvJl0Zdy7AkOTPJ3Un+s3u9f2fUNQ1Skr/o3tOPJrkzya+NuqZBSHJ7kiNJHp3VdnaS+5N8t7s9a7HHXbJBP6aXWTgObK6qNwEXA9ePwZwBbgD2jbqIIftb4MtV9dvAW2l4/klWAn8OTFbVW5g5gOOq0VY1MHcA61/UtgXYXVVrgN3d40W1ZIOeMbzMQlUdqqqHu/vPMfPD3/QZx0nOAy4HPjfqWoYlya8DvwfcBlBVP6uq/x1tVQN3OnBGktOB1/Ci825aUVUPAE+/qHkDsK27vw24YrHHXcpBP9aXWUiyGngb8PXRVjJwfwP8FfDzURcyRL8J/BD4x27J6nNJBv//5kakqp4EPgk8ARwCjlbVV0Zb1VBNVNUhmNmZA85d7AGWctBnjraxOIQoyXLgC8CHq+rZUdczKEn+CDhSVXtGXcuQnQ68Hbi1qt4GPM8APs6/UnRr0huA84E3AMuS/Oloq2rLUg76eS+z0KIkr2Im5LdX1T2jrmfALgH+OMkBZpbmfj/JP422pKE4CBysqhOf1u5mJvhb9QfA96vqh1X1f8A9wO+OuKZhOpxkBUB3e2SxB1jKQT92l1lIEmbWbfdV1adGXc+gVdVHquq8qlrNzOv7H1XV/J5eVf038IMkb+yaLgW+M8KSBu0J4OIkr+ne45fS8B+f57AL2Njd3wjsXOwBBnZm7KCN6WUWLgGuAfYmeaRr+2h3FrLa8iFge7cT8z3gfSOuZ2Cq6utJ7gYeZubIsm/R6BmySe4EpoBzkhwEPgbcBNyV5DpmfulduejjemasJLVtKS/dSJIWwKCXpMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalx/w8Ay4zQYWkIZgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df_08['greenhouse_gas_score'].hist()" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAADmZJREFUeJzt3W9sXfV9x/H3d6TbaLIVUIqVJtHcSREra1SgFmJDmpwxrUCqhT1gAjEaGJv3gDI6RZrSPqHSVCkPRrdV6pCywkhVRoaAiQiiriirhSatrAlFBJohIuqBIUvK6Cim1Tp33z3wiWJHTvzn/jnX37xfknXP+fl3z+97f/L95Pjne04iM5Ek1fUzbRcgSeotg16SijPoJak4g16SijPoJak4g16SijPoJak4g16SijPoJam4VW0XALB27docHh5uu4yOvPfee6xevbrtMgaG8zGX83GKczFXJ/Nx6NChtzLzgwv1G4igHx4e5uDBg22X0ZHx8XFGR0fbLmNgOB9zOR+nOBdzdTIfEfEfi+nn0o0kFWfQS1JxBr0kFWfQS1JxBr0kFWfQS1JxBr0kFWfQS1JxBr0kFTcQV8ZKCxne+VRrY0/s2tra2FI3eEYvScUZ9JJUnEEvScUZ9JJUnEEvScUZ9JJUnEEvScUZ9JJUnEEvScUZ9JJUnEEvScUZ9JJUnEEvScUZ9JJUnEEvScUZ9JJUnEEvScUZ9JJUnEEvScUZ9JJUnEEvScUZ9JJU3IJBHxEbI+KbEXEkIl6KiLub9osi4umIeKV5vLBpj4j4UkQcjYgXIuKKXr8ISdKZLeaMfhrYkZkfAa4C7oyIS4GdwIHM3AQcaPYBrgM2NV9jwH1dr1qStGgLBn1mHsvM55rtd4EjwHpgG7Cn6bYHuKHZ3gZ8NWd8C7ggItZ1vXJJ0qIsaY0+IoaBy4FngaHMPAYz/xgAFzfd1gOvz3raZNMmSWrBqsV2jIg1wGPAZzLzhxFxxq7ztOU8xxtjZmmHoaEhxsfHF1vKQJqamlrxr6Gbuj0fOzZPd+1YS9WN1+HPxynOxVz9mI9FBX1EvI+ZkH8oMx9vmo9HxLrMPNYszZxo2ieBjbOevgF48/RjZuZuYDfAyMhIjo6OLu8VDIjx8XFW+mvopm7Px207n+rasZZq4pbRjo/hz8cpzsVc/ZiPxXzqJoD7gSOZ+cVZ39oHbG+2twNPzGr/VPPpm6uAd04u8UiS+m8xZ/RXA7cChyPi+abtc8Au4JGIuAN4Dbix+d5+4HrgKPAj4PauVixJWpIFgz4z/4X5190BrpmnfwJ3dliXJKlLvDJWkooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekopb1XYBWrrhnU+1NvbErq2tjS1peTyjl6TiPKPXkiz2t4kdm6e5rcXfPCSd4hm9JBVn0EtScQa9JBVn0EtScQa9JBVn0EtScQa9JBVn0EtScQsGfUQ8EBEnIuLFWW2fj4g3IuL55uv6Wd/7bEQcjYiXI+ITvSpckrQ4izmjfxC4dp72v8zMy5qv/QARcSlwE/CrzXP+JiLO61axkqSlWzDoM/MZ4O1FHm8bsDcz/yczvwccBa7soD5JUoc6WaP/dES80CztXNi0rQden9VnsmmTJLUkMnPhThHDwJOZ+dFmfwh4C0jgz4F1mfkHEfFl4F8z82tNv/uB/Zn52DzHHAPGAIaGhj6+d+/errygtkxNTbFmzZq+jHX4jXf6Mk4nhs6H4z9uu4ru2Lz+Ax0fo58/H4POuZirk/nYsmXLocwcWajfsu5emZnHT25HxN8CTza7k8DGWV03AG+e4Ri7gd0AIyMjOTo6upxSBsb4+Dj9eg0r4a6QOzZPc+/hGjdHnbhltONj9PPnY9A5F3P1Yz6WtXQTEetm7f4ucPITOfuAmyLi5yLiw8Am4N86K1GS1IkFT7ki4mFgFFgbEZPAPcBoRFzGzNLNBPDHAJn5UkQ8AnwXmAbuzMyf9qZ0SdJiLBj0mXnzPM33n6X/F4AvdFKUJKl7vDJWkooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekooz6CWpOINekopb1XYB0qAb3vlUx8fYsXma25Z4nIldWzseVwLP6CWpPINekooz6CWpOINekopbMOgj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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df_18['greenhouse_gas_score'].hist()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysis\n", ">- Green gas score is getting lower in 2018" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Q2: How has the distribution of combined mpg changed from 2008 to 2018?" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df_08['cmb_mpg'].hist()" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df_18['cmb_mpg'].hist()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysis\n", "> combined mpg (mile per gallon) is becoming less in 2018" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Q3: Describe the correlation between displacement and combined mpg" ] }, { "cell_type": "code", "execution_count": 67, "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", "
displcmb_mpg
displ1.000000-0.818799
cmb_mpg-0.8187991.000000
\n", "
" ], "text/plain": [ " displ cmb_mpg\n", "displ 1.000000 -0.818799\n", "cmb_mpg -0.818799 1.000000" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_08[['displ','cmb_mpg']].corr()" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Correlation between displacement and combined mpg for 2008')" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df_08.plot(x='cmb_mpg', y='displ', kind='scatter')\n", "plt.title(\"Correlation between displacement and combined mpg for 2008\")" ] }, { "cell_type": "code", "execution_count": 69, "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", "
displcmb_mpg
displ1.00000-0.57488
cmb_mpg-0.574881.00000
\n", "
" ], "text/plain": [ " displ cmb_mpg\n", "displ 1.00000 -0.57488\n", "cmb_mpg -0.57488 1.00000" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_18[['displ','cmb_mpg']].corr()" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Correlation between displacement and combined mpg for 2018')" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df_18.plot(x='cmb_mpg', y='displ', kind='scatter')\n", "plt.title(\"Correlation between displacement and combined mpg for 2018\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysis\n", ">- For both 2008 and 2018, the two variables, displacement and combined mpg are negitively correlated\n", ">- The correlation rate is less in 2018 (-0.57488), compared with 2008 (-0.818799)\n", ">- We can conclude that bigger the size of the engine, the less cmb_mpg (miles per gallon) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Q4: Describe the correlation between greenhouse gas score and combined mpg." ] }, { "cell_type": "code", "execution_count": 71, "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", "
greenhouse_gas_scorecmb_mpg
greenhouse_gas_score1.0000000.947607
cmb_mpg0.9476071.000000
\n", "
" ], "text/plain": [ " greenhouse_gas_score cmb_mpg\n", "greenhouse_gas_score 1.000000 0.947607\n", "cmb_mpg 0.947607 1.000000" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_08[['greenhouse_gas_score','cmb_mpg']].corr()" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df_08.plot(x='cmb_mpg', y='greenhouse_gas_score', kind='scatter')" ] }, { "cell_type": "code", "execution_count": 73, "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", "
greenhouse_gas_scorecmb_mpg
greenhouse_gas_score1.0000000.814982
cmb_mpg0.8149821.000000
\n", "
" ], "text/plain": [ " greenhouse_gas_score cmb_mpg\n", "greenhouse_gas_score 1.000000 0.814982\n", "cmb_mpg 0.814982 1.000000" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_18[['greenhouse_gas_score','cmb_mpg']].corr()" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df_18.plot(x='cmb_mpg', y='greenhouse_gas_score', kind='scatter')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysis \n", "> Positive correlation. The higher the green score, the higher the cmb_mpg " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Q5: Are more unique models using alternative sources of fuel? By how much?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First look at what the sources of fuel are and which ones are alternative sources." ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Gasoline 984\n", "gas 1\n", "CNG 1\n", "ethanol 1\n", "Name: fuel, dtype: int64" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_08.fuel.value_counts()" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "Gasoline 749\n", "Ethanol 26\n", "Gas 26\n", "Diesel 19\n", "Electricity 12\n", "Name: fuel, dtype: int64" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_18.fuel.value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looks like the alternative sources of fuel available in 2008 are CNG and ethanol, and those in 2018 are ethanol and electricity. " ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# how many unique models used alternative sources of fuel in 2008\n", "alt_08 = df_08.query('fuel in [\"CNG\", \"ethanol\"]').model.nunique()\n", "alt_08" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "26" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# how many unique models used alternative sources of fuel in 2018\n", "alt_18 = df_18.query('fuel in [\"Ethanol\", \"Electricity\"]').model.nunique()\n", "alt_18" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since 2008, the number of unique models using alternative sources of fuel increased by 24. We can also look at proportions." ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(377, 357)" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# total unique models each year\n", "total_08 = df_08.model.nunique()\n", "total_18 = df_18.model.nunique()\n", "total_08, total_18" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.005305039787798408, 0.07282913165266107)" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prop_08 = alt_08/total_08\n", "prop_18 = alt_18/total_18\n", "prop_08, prop_18" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# visualize the proportion of Unique Models in using alternative sources of fuel in 2008 and 2018\n", "plt.bar([\"2008\", \"2018\"], [prop_08, prop_18])\n", "plt.title(\"Proportion of Unique Models Using Alternative Fuels\")\n", "plt.xlabel(\"Year\")\n", "plt.ylabel(\"Proportion of Unique Models\");" ] }, { "cell_type": "code", "execution_count": 82, "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
388HONDA Civic1.84Auto-L52WDCNGsmall car9.524.036.028.09yes
985MERCEDES-BENZ C3003.06Auto-L72WDethanolsmall car6.013.019.015.07no
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel veh_class \\\n", "388 HONDA Civic 1.8 4 Auto-L5 2WD CNG small car \n", "985 MERCEDES-BENZ C300 3.0 6 Auto-L7 2WD ethanol small car \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score \\\n", "388 9.5 24.0 36.0 28.0 9 \n", "985 6.0 13.0 19.0 15.0 7 \n", "\n", " smartway \n", "388 yes \n", "985 no " ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# subset the dataframe with only the model using alternative fuel, CNG and ethanol for 2008\n", "df_alt_08=df_08.query('fuel in [\"CNG\", \"ethanol\"]')\n", "df_alt_08" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(38, 13)\n" ] }, { "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", "
modeldisplcyltransdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
760CHEVROLET Impala3.66SemiAuto-62WDEthanollarge car5.014.020.016.04No
\n", "
" ], "text/plain": [ " model displ cyl trans drive fuel veh_class \\\n", "760 CHEVROLET Impala 3.6 6 SemiAuto-6 2WD Ethanol large car \n", "\n", " air_pollution_score city_mpg hwy_mpg cmb_mpg greenhouse_gas_score \\\n", "760 5.0 14.0 20.0 16.0 4 \n", "\n", " smartway \n", "760 No " ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# subset the dataframe with only the model using alternative fuel, Ethanol and Electricity for 2018\n", "df_alt_18=df_18.query('fuel in [\"Ethanol\", \"Electricity\"]')\n", "print(df_alt_18.shape)\n", "df_alt_18.head(1)" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "displ 2.40\n", "cyl 5.00\n", "air_pollution_score 7.75\n", "city_mpg 18.50\n", "hwy_mpg 27.50\n", "cmb_mpg 21.50\n", "greenhouse_gas_score 8.00\n", "dtype: float64" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_alt_08.mean()" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "([0, 1, 2, 3, 4, 5, 6], )" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plotting the mean value for 2008 alternative fuel\n", "plt.bar(x=df_alt_08.mean().index, height=df_alt_08.mean(),width=0.5)\n", "plt.title(\"Alternative Fuels in 2008\")\n", "plt.xticks(rotation =45)" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "displ 3.536842\n", "cyl 5.763158\n", "air_pollution_score 4.157895\n", "city_mpg 32.447368\n", "hwy_mpg 35.736842\n", "cmb_mpg 33.631579\n", "greenhouse_gas_score 5.552632\n", "dtype: float64" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calculate the mean values\n", "df_alt_18.mean()" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "([0, 1, 2, 3, 4, 5, 6], )" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plotting the mean value for 2018 alternative fuel\n", "plt.bar(x=df_alt_18.mean().index, height=df_alt_18.mean(),width=0.5,color='g')\n", "plt.title(\"Alternative Fuels in 2018\")\n", "plt.xticks(rotation =45)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Q6: How much have vehicle classes improved in fuel economy? " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the average fuel economy for each vehicle class for both years." ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "veh_class\n", "SUV 18.471429\n", "large car 18.509091\n", "midsize car 21.601449\n", "minivan 19.117647\n", "pickup 16.277108\n", "small car 21.105105\n", "station wagon 22.366667\n", "van 14.952381\n", "Name: cmb_mpg, dtype: float64" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "veh_08 = df_08.groupby('veh_class').cmb_mpg.mean()\n", "veh_08" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "veh_class\n", "large car 23.409091\n", "midsize car 27.884058\n", "minivan 20.800000\n", "pickup 18.589744\n", "small SUV 24.074074\n", "small car 25.421053\n", "special purpose 18.500000\n", "standard SUV 18.197674\n", "station wagon 27.529412\n", "Name: cmb_mpg, dtype: float64" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "veh_18 = df_18.groupby('veh_class').cmb_mpg.mean()\n", "veh_18" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "veh_class\n", "SUV NaN\n", "large car 4.900000\n", "midsize car 6.282609\n", "minivan 1.682353\n", "pickup 2.312635\n", "small SUV NaN\n", "small car 4.315948\n", "special purpose NaN\n", "standard SUV NaN\n", "station wagon 5.162745\n", "van NaN\n", "Name: cmb_mpg, dtype: float64" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# how much they've increased by for each vehicle class\n", "inc = veh_18 - veh_08\n", "inc" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# only plot the classes that exist in both years\n", "inc.dropna(inplace=True)\n", "plt.subplots(figsize=(8, 5))\n", "plt.bar(inc.index, inc)\n", "plt.title('Improvements in Fuel Economy from 2008 to 2018 by Vehicle Class')\n", "plt.xlabel('Vehicle Class')\n", "plt.ylabel('Increase in Average Combined MPG');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Q7: What are the characteristics of SmartWay vehicles? Have they changed over time?" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "no 607\n", "yes 380\n", "Name: smartway, dtype: int64" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# smartway labels for 2008\n", "df_08.smartway.value_counts()" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [], "source": [ "# get all smartway vehicles in 2008\n", "smart_08 = df_08.query('smartway == \"yes\"')" ] }, { "cell_type": "code", "execution_count": 94, "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", "
displcylair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_score
count380.000000380.000000380.000000380.000000380.000000380.000000380.000000
mean2.6028954.8263167.36578920.98421128.41315823.7368426.868421
std0.6234361.0020251.1481953.4426723.0751943.0603790.827338
min1.3000004.0000006.00000017.00000022.00000020.0000006.000000
25%2.2750004.0000007.00000019.00000026.00000022.0000006.000000
50%2.4000004.0000007.00000020.00000028.00000023.0000007.000000
75%3.0000006.0000007.00000022.00000030.00000025.0000007.000000
max5.0000008.0000009.50000048.00000045.00000046.00000010.000000
\n", "
" ], "text/plain": [ " displ cyl air_pollution_score city_mpg hwy_mpg \\\n", "count 380.000000 380.000000 380.000000 380.000000 380.000000 \n", "mean 2.602895 4.826316 7.365789 20.984211 28.413158 \n", "std 0.623436 1.002025 1.148195 3.442672 3.075194 \n", "min 1.300000 4.000000 6.000000 17.000000 22.000000 \n", "25% 2.275000 4.000000 7.000000 19.000000 26.000000 \n", "50% 2.400000 4.000000 7.000000 20.000000 28.000000 \n", "75% 3.000000 6.000000 7.000000 22.000000 30.000000 \n", "max 5.000000 8.000000 9.500000 48.000000 45.000000 \n", "\n", " cmb_mpg greenhouse_gas_score \n", "count 380.000000 380.000000 \n", "mean 23.736842 6.868421 \n", "std 3.060379 0.827338 \n", "min 20.000000 6.000000 \n", "25% 22.000000 6.000000 \n", "50% 23.000000 7.000000 \n", "75% 25.000000 7.000000 \n", "max 46.000000 10.000000 " ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# explore smartway vehicles in 2008\n", "smart_08.describe()" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "No 724\n", "Yes 91\n", "Elite 17\n", "Name: smartway, dtype: int64" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# smartway labels for 2018\n", "df_18.smartway.value_counts()" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [], "source": [ "# get all smartway vehicles in 2018\n", "smart_18 = df_18.query('smartway in [\"Yes\", \"Elite\"]')" ] }, { "cell_type": "code", "execution_count": 97, "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", "
displcylair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_score
count108.000000108.000000108.000000108.000000108.000000108.000000108.000000
mean1.7879633.9351855.21296334.90740741.47222237.3611117.925926
std0.4080310.4163291.79849816.43198213.09523614.8484291.197378
min1.2000003.0000003.00000025.00000027.00000026.0000007.000000
25%1.5000004.0000003.00000028.00000036.00000031.0000007.000000
50%1.7000004.0000005.50000028.50000037.00000032.0000007.000000
75%2.0000004.0000007.00000031.25000040.25000035.0000009.000000
max3.5000006.0000007.000000113.00000099.000000106.00000010.000000
\n", "
" ], "text/plain": [ " displ cyl air_pollution_score city_mpg hwy_mpg \\\n", "count 108.000000 108.000000 108.000000 108.000000 108.000000 \n", "mean 1.787963 3.935185 5.212963 34.907407 41.472222 \n", "std 0.408031 0.416329 1.798498 16.431982 13.095236 \n", "min 1.200000 3.000000 3.000000 25.000000 27.000000 \n", "25% 1.500000 4.000000 3.000000 28.000000 36.000000 \n", "50% 1.700000 4.000000 5.500000 28.500000 37.000000 \n", "75% 2.000000 4.000000 7.000000 31.250000 40.250000 \n", "max 3.500000 6.000000 7.000000 113.000000 99.000000 \n", "\n", " cmb_mpg greenhouse_gas_score \n", "count 108.000000 108.000000 \n", "mean 37.361111 7.925926 \n", "std 14.848429 1.197378 \n", "min 26.000000 7.000000 \n", "25% 31.000000 7.000000 \n", "50% 32.000000 7.000000 \n", "75% 35.000000 9.000000 \n", "max 106.000000 10.000000 " ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "smart_18.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysis\n", ">- In 2018, there are Elite as a new type of SmartWay drive, and compared with 2008, city_mpg, hwy_mpg, cmb_mpg and greenhouse_gas_score all increased in 2018, while air_pollution_score decreased, and vehicles with SmartWay in 2018 have smaller size of engine and smaller number of cyliners, we can conclude that SmartWay helps fuel efficiency and the technology has improved over time " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Q8: For all of the models that were produced in 2008 that are still being produced now, how much has the mpg improved and which vehicle improved the most?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Q8_1. Create combined dataset" ] }, { "cell_type": "code", "execution_count": 98, "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", "
model_2008displ_2008cyl_2008trans_2008drive_2008fuel_2008veh_class_2008air_pollut_2008city_mpg_2008hwy_mpg_2008cmb_mpg_2008greenhouse_2008smartway_2008
0ACURA MDX3.76Auto-S54WDGasolineSUV7.015.020.017.04no
\n", "
" ], "text/plain": [ " model_2008 displ_2008 cyl_2008 trans_2008 drive_2008 fuel_2008 \\\n", "0 ACURA MDX 3.7 6 Auto-S5 4WD Gasoline \n", "\n", " veh_class_2008 air_pollut_2008 city_mpg_2008 hwy_mpg_2008 cmb_mpg_2008 \\\n", "0 SUV 7.0 15.0 20.0 17.0 \n", "\n", " greenhouse_2008 smartway_2008 \n", "0 4 no " ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# rename 2008 columns\n", "df_08.rename(columns=lambda x: x[:10] + \"_2008\", inplace=True)\n", "\n", "# view to check names\n", "df_08.head(1)" ] }, { "cell_type": "code", "execution_count": 99, "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", "
model_2008displ_2008cyl_2008trans_2008drive_2008fuel_2008veh_class_2008air_pollut_2008city_mpg_2008hwy_mpg_2008...transdrivefuelveh_classair_pollution_scorecity_mpghwy_mpgcmb_mpggreenhouse_gas_scoresmartway
0ACURA RDX2.34Auto-S54WDGasolineSUV7.017.022.0...SemiAuto-62WDGasolinesmall SUV3.020.028.023.05No
1ACURA RDX2.34Auto-S54WDGasolineSUV7.017.022.0...SemiAuto-64WDGasolinesmall SUV3.019.027.022.04No
2AUDI A32.04Man-62WDGasolinestation wagon7.021.029.0...AMS-64WDGasolinesmall car7.024.031.027.06No
3AUDI A32.04Man-62WDGasolinestation wagon7.021.029.0...AMS-72WDGasolinesmall car7.026.035.029.06No
4AUDI A32.04Auto-S62WDGasolinestation wagon7.022.029.0...AMS-64WDGasolinesmall car7.024.031.027.06No
\n", "

5 rows × 26 columns

\n", "
" ], "text/plain": [ " model_2008 displ_2008 cyl_2008 trans_2008 drive_2008 fuel_2008 \\\n", "0 ACURA RDX 2.3 4 Auto-S5 4WD Gasoline \n", "1 ACURA RDX 2.3 4 Auto-S5 4WD Gasoline \n", "2 AUDI A3 2.0 4 Man-6 2WD Gasoline \n", "3 AUDI A3 2.0 4 Man-6 2WD Gasoline \n", "4 AUDI A3 2.0 4 Auto-S6 2WD Gasoline \n", "\n", " veh_class_2008 air_pollut_2008 city_mpg_2008 hwy_mpg_2008 ... \\\n", "0 SUV 7.0 17.0 22.0 ... \n", "1 SUV 7.0 17.0 22.0 ... \n", "2 station wagon 7.0 21.0 29.0 ... \n", "3 station wagon 7.0 21.0 29.0 ... \n", "4 station wagon 7.0 22.0 29.0 ... \n", "\n", " trans drive fuel veh_class air_pollution_score city_mpg \\\n", "0 SemiAuto-6 2WD Gasoline small SUV 3.0 20.0 \n", "1 SemiAuto-6 4WD Gasoline small SUV 3.0 19.0 \n", "2 AMS-6 4WD Gasoline small car 7.0 24.0 \n", "3 AMS-7 2WD Gasoline small car 7.0 26.0 \n", "4 AMS-6 4WD Gasoline small car 7.0 24.0 \n", "\n", " hwy_mpg cmb_mpg greenhouse_gas_score smartway \n", "0 28.0 23.0 5 No \n", "1 27.0 22.0 4 No \n", "2 31.0 27.0 6 No \n", "3 35.0 29.0 6 No \n", "4 31.0 27.0 6 No \n", "\n", "[5 rows x 26 columns]" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# merge datasets\n", "df_combined = df_08.merge(df_18, left_on='model_2008', right_on='model', how='inner')\n", "\n", "# view to check merge\n", "df_combined.head()" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['model_2008', 'displ_2008', 'cyl_2008', 'trans_2008', 'drive_2008',\n", " 'fuel_2008', 'veh_class_2008', 'air_pollut_2008', 'city_mpg_2008',\n", " 'hwy_mpg_2008', 'cmb_mpg_2008', 'greenhouse_2008', 'smartway_2008',\n", " 'model', 'displ', 'cyl', 'trans', 'drive', 'fuel', 'veh_class',\n", " 'air_pollution_score', 'city_mpg', 'hwy_mpg', 'cmb_mpg',\n", " 'greenhouse_gas_score', 'smartway'],\n", " dtype='object')" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_combined.columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Q8_2. Create a new dataframe, `model_mpg`, that contain the mean combined mpg values in 2008 and 2018 for each unique model\n", "\n", "To do this, group by `model` and find the mean `cmb_mpg_2008` and mean `cmb_mpg` for each." ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [], "source": [ "df = df_combined" ] }, { "cell_type": "code", "execution_count": 102, "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", "
cmb_mpg_2008cmb_mpg
model
ACURA RDX19.00000022.5
AUDI A323.33333328.0
AUDI A421.00000027.0
\n", "
" ], "text/plain": [ " cmb_mpg_2008 cmb_mpg\n", "model \n", "ACURA RDX 19.000000 22.5\n", "AUDI A3 23.333333 28.0\n", "AUDI A4 21.000000 27.0" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_mpg = df.groupby('model').mean()[['cmb_mpg_2008', 'cmb_mpg']]\n", "model_mpg.head(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Q8_3. Create a new column, `mpg_change`, with the change in mpg\n", "Subtract the mean mpg in 2008 from that in 2018 to get the change in mpg" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(72, 3)\n" ] }, { "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", "
cmb_mpg_2008cmb_mpgmpg_change
model
ACURA RDX19.00000022.53.500000
AUDI A323.33333328.04.666667
AUDI A421.00000027.06.000000
\n", "
" ], "text/plain": [ " cmb_mpg_2008 cmb_mpg mpg_change\n", "model \n", "ACURA RDX 19.000000 22.5 3.500000\n", "AUDI A3 23.333333 28.0 4.666667\n", "AUDI A4 21.000000 27.0 6.000000" ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_mpg['mpg_change'] = model_mpg['cmb_mpg'] - model_mpg['cmb_mpg_2008']\n", "print(model_mpg.shape)\n", "model_mpg.head(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Q8_4. Find the vehicle that improved the most\n", "Find the max mpg change, and then use query or indexing to see what model it is!" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "16.53333333333334" ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "max_change = model_mpg['mpg_change'].max()\n", "max_change" ] }, { "cell_type": "code", "execution_count": 105, "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", "
cmb_mpg_2008cmb_mpgmpg_change
model
VOLVO XC 9015.66666732.216.533333
\n", "
" ], "text/plain": [ " cmb_mpg_2008 cmb_mpg mpg_change\n", "model \n", "VOLVO XC 90 15.666667 32.2 16.533333" ] }, "execution_count": 105, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_mpg[model_mpg['mpg_change'] == max_change]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pandas also has a useful [`idxmax`](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.idxmax.html) function you can use to find the index of the row containing a column's maximum value!" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'VOLVO XC 90'" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "idx = model_mpg.mpg_change.idxmax()\n", "idx" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "cmb_mpg_2008 15.666667\n", "cmb_mpg 32.200000\n", "mpg_change 16.533333\n", "Name: VOLVO XC 90, dtype: float64" ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_mpg.loc[idx]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysis:\n", ">- VOLVO XC 90 is the model that has improved the most, with maximus increase in combine mile per gallon of 16.53." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "## Conclusions\n", "\n", "This project analyzes two dataset, 2008 and 2018. Data cleaning is a big portion in this project as the dataset we downloaded from EPA (Environmental Protection Agency) website is not cleaned, and many columns and data types are not consistent in the two year data. We also did comprehensive analysis to answer the questions we have posted, and visualized some of the conclusions.\n", "\n", "**Summarize some of the featured findings:**\n", "\n", ">- Although the proportion of unique models using alternative fuels increased largely in 2018, Green gas score and the combined mpg (mile per gallon) decreased in 2018\n", ">- Compared with 2008, the midsize car improved the most for fuel efficiency, followed by station wagon and large car. Although most cars are small car, the changes in small cars is not significant.\n", ">- Vehicles with SmartWay drive are more fuel efficiency, and the technique in SmartWay drive has improved over time, smaller size of engine, smaller number of cyliner, while lower pollution score, higher average mile per gallon and higher Greenhouse Gas Score.\n", ">- 72 car models have imporved mile per gallon, and among those, VOLVO XC 90 is the model that has improved the most, with maximus increase in combine mile per gallon of 16.53.\n", "\n", "**Limitation of the project**\n", ">- This project focuses on data cleaning and analyzing changes on fuel efficiency over time. Statistical test and data modeling are not employed for this project." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" } }, "nbformat": 4, "nbformat_minor": 2 }