{ "cells": [ { "cell_type": "code", "execution_count": 3, "id": "d0b99ebe", "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "id": "18b71e0d", "metadata": {}, "outputs": [], "source": [ "# 2 main datatypes\n", "series = pd.Series([\"BMW\", \"Toyota\", \"Honda\"])" ] }, { "cell_type": "code", "execution_count": 3, "id": "5fd5c8ea", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 BMW\n", "1 Toyota\n", "2 Honda\n", "dtype: object" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series" ] }, { "cell_type": "code", "execution_count": 4, "id": "8293df83", "metadata": {}, "outputs": [], "source": [ "# series = 1-dimensional" ] }, { "cell_type": "code", "execution_count": 5, "id": "7ce01316", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 Red\n", "1 Blue\n", "2 White\n", "dtype: object" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "colours = pd.Series([\"Red\", \"Blue\", \"White\"])\n", "colours" ] }, { "cell_type": "code", "execution_count": 6, "id": "3df244ef", "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", "
Car makeColur
0BMWRed
1ToyotaBlue
2HondaWhite
\n", "
" ], "text/plain": [ " Car make Colur\n", "0 BMW Red\n", "1 Toyota Blue\n", "2 Honda White" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# DataFrame = 2-dimensional\n", "car_data = pd.DataFrame({\"Car make\": series, \"Colur\": colours})\n", "car_data" ] }, { "cell_type": "code", "execution_count": 6, "id": "e6269eb7", "metadata": {}, "outputs": [], "source": [ "# Import data\n", "car_sales = pd.read_csv(\"car-sales.csv\")" ] }, { "cell_type": "code", "execution_count": 8, "id": "5ed55160", "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", "
MakeColourOdometer (KM)DoorsPrice
0ToyotaWhite1500434$4,000.00
1HondaRed878994$5,000.00
2ToyotaBlue325493$7,000.00
3BMWBlack111795$22,000.00
4NissanWhite2130954$3,500.00
5ToyotaGreen992134$4,500.00
6HondaBlue456984$7,500.00
7HondaBlue547384$7,000.00
8ToyotaWhite600004$6,250.00
9NissanWhite316004$9,700.00
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "0 Toyota White 150043 4 $4,000.00\n", "1 Honda Red 87899 4 $5,000.00\n", "2 Toyota Blue 32549 3 $7,000.00\n", "3 BMW Black 11179 5 $22,000.00\n", "4 Nissan White 213095 4 $3,500.00\n", "5 Toyota Green 99213 4 $4,500.00\n", "6 Honda Blue 45698 4 $7,500.00\n", "7 Honda Blue 54738 4 $7,000.00\n", "8 Toyota White 60000 4 $6,250.00\n", "9 Nissan White 31600 4 $9,700.00" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales" ] }, { "cell_type": "code", "execution_count": 9, "id": "118c9363", "metadata": {}, "outputs": [], "source": [ "# Exporting a dataframe\n", "# car_sales.to_csv(\"exported.csv\", index=False)" ] }, { "cell_type": "markdown", "id": "0be3c88e", "metadata": {}, "source": [ "## Describe data" ] }, { "cell_type": "code", "execution_count": 10, "id": "f6ae0796", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Make object\n", "Colour object\n", "Odometer (KM) int64\n", "Doors int64\n", "Price object\n", "dtype: object" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Attribute\n", "car_sales.dtypes\n", "\n", "# Function\n", "#car_sales.to_csv()" ] }, { "cell_type": "code", "execution_count": 11, "id": "d55320ea", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['Make', 'Colour', 'Odometer (KM)', 'Doors', 'Price'], dtype='object')" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.columns" ] }, { "cell_type": "code", "execution_count": 7, "id": "92b983d1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['Make', 'Colour', 'Odometer (KM)', 'Doors', 'Price'], dtype='object')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_columns = car_sales.columns\n", "car_columns" ] }, { "cell_type": "code", "execution_count": 14, "id": "92937e49", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RangeIndex(start=0, stop=10, step=1)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.index" ] }, { "cell_type": "code", "execution_count": 15, "id": "922a7259", "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", "
MakeColourOdometer (KM)DoorsPrice
0ToyotaWhite1500434$4,000.00
1HondaRed878994$5,000.00
2ToyotaBlue325493$7,000.00
3BMWBlack111795$22,000.00
4NissanWhite2130954$3,500.00
5ToyotaGreen992134$4,500.00
6HondaBlue456984$7,500.00
7HondaBlue547384$7,000.00
8ToyotaWhite600004$6,250.00
9NissanWhite316004$9,700.00
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "0 Toyota White 150043 4 $4,000.00\n", "1 Honda Red 87899 4 $5,000.00\n", "2 Toyota Blue 32549 3 $7,000.00\n", "3 BMW Black 11179 5 $22,000.00\n", "4 Nissan White 213095 4 $3,500.00\n", "5 Toyota Green 99213 4 $4,500.00\n", "6 Honda Blue 45698 4 $7,500.00\n", "7 Honda Blue 54738 4 $7,000.00\n", "8 Toyota White 60000 4 $6,250.00\n", "9 Nissan White 31600 4 $9,700.00" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales" ] }, { "cell_type": "code", "execution_count": 16, "id": "f46a652c", "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", "
Odometer (KM)Doors
count10.00000010.000000
mean78601.4000004.000000
std61983.4717350.471405
min11179.0000003.000000
25%35836.2500004.000000
50%57369.0000004.000000
75%96384.5000004.000000
max213095.0000005.000000
\n", "
" ], "text/plain": [ " Odometer (KM) Doors\n", "count 10.000000 10.000000\n", "mean 78601.400000 4.000000\n", "std 61983.471735 0.471405\n", "min 11179.000000 3.000000\n", "25% 35836.250000 4.000000\n", "50% 57369.000000 4.000000\n", "75% 96384.500000 4.000000\n", "max 213095.000000 5.000000" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.describe()" ] }, { "cell_type": "code", "execution_count": 17, "id": "79387319", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 10 entries, 0 to 9\n", "Data columns (total 5 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Make 10 non-null object\n", " 1 Colour 10 non-null object\n", " 2 Odometer (KM) 10 non-null int64 \n", " 3 Doors 10 non-null int64 \n", " 4 Price 10 non-null object\n", "dtypes: int64(2), object(3)\n", "memory usage: 528.0+ bytes\n" ] } ], "source": [ "car_sales.info()" ] }, { "cell_type": "code", "execution_count": 21, "id": "cbfd8da3", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_18146/4073448239.py:1: FutureWarning: Dropping of nuisance columns in DataFrame reductions (with 'numeric_only=None') is deprecated; in a future version this will raise TypeError. Select only valid columns before calling the reduction.\n", " car_sales.mean()\n" ] }, { "data": { "text/plain": [ "Odometer (KM) 78601.4\n", "Doors 4.0\n", "dtype: float64" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.mean()" ] }, { "cell_type": "code", "execution_count": 22, "id": "73ea13e4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "376500.0" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_prices = pd.Series([3000, 1500, 1125000])\n", "car_prices.mean()" ] }, { "cell_type": "code", "execution_count": 23, "id": "8b05884d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Make ToyotaHondaToyotaBMWNissanToyotaHondaHondaToyo...\n", "Colour WhiteRedBlueBlackWhiteGreenBlueBlueWhiteWhite\n", "Odometer (KM) 786014\n", "Doors 40\n", "Price $4,000.00$5,000.00$7,000.00$22,000.00$3,500.00...\n", "dtype: object" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.sum()" ] }, { "cell_type": "code", "execution_count": 24, "id": "4ddbed66", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "40" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales[\"Doors\"].sum()" ] }, { "cell_type": "code", "execution_count": 25, "id": "0fdb1df3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(car_sales)" ] }, { "cell_type": "code", "execution_count": 26, "id": "72af5003", "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", "
MakeColourOdometer (KM)DoorsPrice
0ToyotaWhite1500434$4,000.00
1HondaRed878994$5,000.00
2ToyotaBlue325493$7,000.00
3BMWBlack111795$22,000.00
4NissanWhite2130954$3,500.00
5ToyotaGreen992134$4,500.00
6HondaBlue456984$7,500.00
7HondaBlue547384$7,000.00
8ToyotaWhite600004$6,250.00
9NissanWhite316004$9,700.00
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "0 Toyota White 150043 4 $4,000.00\n", "1 Honda Red 87899 4 $5,000.00\n", "2 Toyota Blue 32549 3 $7,000.00\n", "3 BMW Black 11179 5 $22,000.00\n", "4 Nissan White 213095 4 $3,500.00\n", "5 Toyota Green 99213 4 $4,500.00\n", "6 Honda Blue 45698 4 $7,500.00\n", "7 Honda Blue 54738 4 $7,000.00\n", "8 Toyota White 60000 4 $6,250.00\n", "9 Nissan White 31600 4 $9,700.00" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales" ] }, { "cell_type": "markdown", "id": "33cfa487", "metadata": {}, "source": [ "## Viewing and selecting data" ] }, { "cell_type": "code", "execution_count": 8, "id": "23567f48", "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", "
MakeColourOdometer (KM)DoorsPrice
0ToyotaWhite1500434$4,000.00
1HondaRed878994$5,000.00
2ToyotaBlue325493$7,000.00
3BMWBlack111795$22,000.00
4NissanWhite2130954$3,500.00
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "0 Toyota White 150043 4 $4,000.00\n", "1 Honda Red 87899 4 $5,000.00\n", "2 Toyota Blue 32549 3 $7,000.00\n", "3 BMW Black 11179 5 $22,000.00\n", "4 Nissan White 213095 4 $3,500.00" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.head()" ] }, { "cell_type": "code", "execution_count": 28, "id": "fe1ea0d4", "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", "
MakeColourOdometer (KM)DoorsPrice
0ToyotaWhite1500434$4,000.00
1HondaRed878994$5,000.00
2ToyotaBlue325493$7,000.00
3BMWBlack111795$22,000.00
4NissanWhite2130954$3,500.00
5ToyotaGreen992134$4,500.00
6HondaBlue456984$7,500.00
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "0 Toyota White 150043 4 $4,000.00\n", "1 Honda Red 87899 4 $5,000.00\n", "2 Toyota Blue 32549 3 $7,000.00\n", "3 BMW Black 11179 5 $22,000.00\n", "4 Nissan White 213095 4 $3,500.00\n", "5 Toyota Green 99213 4 $4,500.00\n", "6 Honda Blue 45698 4 $7,500.00" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.head(7)" ] }, { "cell_type": "code", "execution_count": 29, "id": "a05981ea", "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", "
MakeColourOdometer (KM)DoorsPrice
5ToyotaGreen992134$4,500.00
6HondaBlue456984$7,500.00
7HondaBlue547384$7,000.00
8ToyotaWhite600004$6,250.00
9NissanWhite316004$9,700.00
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "5 Toyota Green 99213 4 $4,500.00\n", "6 Honda Blue 45698 4 $7,500.00\n", "7 Honda Blue 54738 4 $7,000.00\n", "8 Toyota White 60000 4 $6,250.00\n", "9 Nissan White 31600 4 $9,700.00" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.tail()" ] }, { "cell_type": "code", "execution_count": 9, "id": "d3f41528", "metadata": {}, "outputs": [], "source": [ "# .loc & .iloc\n", "animals = pd.Series([\"cat\", \"dog\", \"bird\", \"panda\", \"snake\"],\n", " index=[0,3, 9, 8, 3])" ] }, { "cell_type": "code", "execution_count": 31, "id": "b849ece1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 cat\n", "3 dog\n", "9 bird\n", "8 panda\n", "3 snake\n", "dtype: object" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "animals" ] }, { "cell_type": "code", "execution_count": 10, "id": "7aaabb07", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3 dog\n", "3 snake\n", "dtype: object" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "animals.loc[3]" ] }, { "cell_type": "code", "execution_count": 11, "id": "d3305a05", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'bird'" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "animals.loc[9]" ] }, { "cell_type": "code", "execution_count": 12, "id": "bc0c43a5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Make BMW\n", "Colour Black\n", "Odometer (KM) 11179\n", "Doors 5\n", "Price $22,000.00\n", "Name: 3, dtype: object" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# loc refers to index\n", "car_sales.loc[3]" ] }, { "cell_type": "code", "execution_count": 15, "id": "c0600348", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'panda'" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# .iloc refers to position\n", "animals.iloc[3]" ] }, { "cell_type": "code", "execution_count": 14, "id": "f77b2a57", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 cat\n", "3 dog\n", "9 bird\n", "8 panda\n", "3 snake\n", "dtype: object" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "animals" ] }, { "cell_type": "code", "execution_count": 16, "id": "99050e3c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 cat\n", "3 dog\n", "9 bird\n", "dtype: object" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "animals.iloc[:3]" ] }, { "cell_type": "code", "execution_count": 17, "id": "a9e018ad", "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", "
MakeColourOdometer (KM)DoorsPrice
0ToyotaWhite1500434$4,000.00
1HondaRed878994$5,000.00
2ToyotaBlue325493$7,000.00
3BMWBlack111795$22,000.00
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "0 Toyota White 150043 4 $4,000.00\n", "1 Honda Red 87899 4 $5,000.00\n", "2 Toyota Blue 32549 3 $7,000.00\n", "3 BMW Black 11179 5 $22,000.00" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.loc[:3]" ] }, { "cell_type": "code", "execution_count": 19, "id": "cedd32fb", "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", "
MakeColourOdometer (KM)DoorsPrice
0ToyotaWhite1500434$4,000.00
1HondaRed878994$5,000.00
2ToyotaBlue325493$7,000.00
3BMWBlack111795$22,000.00
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "0 Toyota White 150043 4 $4,000.00\n", "1 Honda Red 87899 4 $5,000.00\n", "2 Toyota Blue 32549 3 $7,000.00\n", "3 BMW Black 11179 5 $22,000.00" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.head(4)" ] }, { "cell_type": "code", "execution_count": 20, "id": "1d2be05c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 Toyota\n", "1 Honda\n", "2 Toyota\n", "3 BMW\n", "4 Nissan\n", "5 Toyota\n", "6 Honda\n", "7 Honda\n", "8 Toyota\n", "9 Nissan\n", "Name: Make, dtype: object" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales[\"Make\"]" ] }, { "cell_type": "code", "execution_count": 21, "id": "4962a1fc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 White\n", "1 Red\n", "2 Blue\n", "3 Black\n", "4 White\n", "5 Green\n", "6 Blue\n", "7 Blue\n", "8 White\n", "9 White\n", "Name: Colour, dtype: object" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales[\"Colour\"]" ] }, { "cell_type": "code", "execution_count": 22, "id": "d4043529", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 Toyota\n", "1 Honda\n", "2 Toyota\n", "3 BMW\n", "4 Nissan\n", "5 Toyota\n", "6 Honda\n", "7 Honda\n", "8 Toyota\n", "9 Nissan\n", "Name: Make, dtype: object" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales[\"Make\"]" ] }, { "cell_type": "code", "execution_count": 23, "id": "7acbc784", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 Toyota\n", "1 Honda\n", "2 Toyota\n", "3 BMW\n", "4 Nissan\n", "5 Toyota\n", "6 Honda\n", "7 Honda\n", "8 Toyota\n", "9 Nissan\n", "Name: Make, dtype: object" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.Make" ] }, { "cell_type": "code", "execution_count": 25, "id": "f6d2bca3", "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", "
MakeColourOdometer (KM)DoorsPrice
0ToyotaWhite1500434$4,000.00
2ToyotaBlue325493$7,000.00
5ToyotaGreen992134$4,500.00
8ToyotaWhite600004$6,250.00
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "0 Toyota White 150043 4 $4,000.00\n", "2 Toyota Blue 32549 3 $7,000.00\n", "5 Toyota Green 99213 4 $4,500.00\n", "8 Toyota White 60000 4 $6,250.00" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales[car_sales[\"Make\"] == \"Toyota\"]" ] }, { "cell_type": "code", "execution_count": 27, "id": "a9bbcefc", "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", "
MakeColourOdometer (KM)DoorsPrice
0ToyotaWhite1500434$4,000.00
4NissanWhite2130954$3,500.00
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "0 Toyota White 150043 4 $4,000.00\n", "4 Nissan White 213095 4 $3,500.00" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales[car_sales[\"Odometer (KM)\"] > 100000]" ] }, { "cell_type": "code", "execution_count": 28, "id": "b2a8ee80", "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", "
Doors345
Make
BMW001
Honda030
Nissan020
Toyota130
\n", "
" ], "text/plain": [ "Doors 3 4 5\n", "Make \n", "BMW 0 0 1\n", "Honda 0 3 0\n", "Nissan 0 2 0\n", "Toyota 1 3 0" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.crosstab(car_sales[\"Make\"], car_sales[\"Doors\"])" ] }, { "cell_type": "code", "execution_count": 29, "id": "aa0d76c3", "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", "
Odometer (KM)Doors
Make
BMW11179.0000005.00
Honda62778.3333334.00
Nissan122347.5000004.00
Toyota85451.2500003.75
\n", "
" ], "text/plain": [ " Odometer (KM) Doors\n", "Make \n", "BMW 11179.000000 5.00\n", "Honda 62778.333333 4.00\n", "Nissan 122347.500000 4.00\n", "Toyota 85451.250000 3.75" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Groupby\n", "car_sales.groupby([\"Make\"]).mean()" ] }, { "cell_type": "code", "execution_count": 33, "id": "52390ea4", "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 34, "id": "e7fdeb36", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "car_sales[\"Odometer (KM)\"].plot()" ] }, { "cell_type": "code", "execution_count": 35, "id": "fc72e078", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "car_sales[\"Odometer (KM)\"].hist()" ] }, { "cell_type": "code", "execution_count": 36, "id": "b30e787b", "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "no numeric data to plot", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "Input \u001b[0;32mIn [36]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mcar_sales\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mPrice\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m~/Documents/learning/machine_learning_course/sample_project/env/lib/python3.10/site-packages/pandas/plotting/_core.py:972\u001b[0m, in \u001b[0;36mPlotAccessor.__call__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 969\u001b[0m label_name \u001b[38;5;241m=\u001b[39m label_kw \u001b[38;5;129;01mor\u001b[39;00m data\u001b[38;5;241m.\u001b[39mcolumns\n\u001b[1;32m 970\u001b[0m data\u001b[38;5;241m.\u001b[39mcolumns \u001b[38;5;241m=\u001b[39m label_name\n\u001b[0;32m--> 972\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mplot_backend\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkind\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkind\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m~/Documents/learning/machine_learning_course/sample_project/env/lib/python3.10/site-packages/pandas/plotting/_matplotlib/__init__.py:71\u001b[0m, in \u001b[0;36mplot\u001b[0;34m(data, kind, **kwargs)\u001b[0m\n\u001b[1;32m 69\u001b[0m kwargs[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124max\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mgetattr\u001b[39m(ax, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mleft_ax\u001b[39m\u001b[38;5;124m\"\u001b[39m, ax)\n\u001b[1;32m 70\u001b[0m plot_obj \u001b[38;5;241m=\u001b[39m PLOT_CLASSES[kind](data, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m---> 71\u001b[0m \u001b[43mplot_obj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgenerate\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m plot_obj\u001b[38;5;241m.\u001b[39mdraw()\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m plot_obj\u001b[38;5;241m.\u001b[39mresult\n", "File \u001b[0;32m~/Documents/learning/machine_learning_course/sample_project/env/lib/python3.10/site-packages/pandas/plotting/_matplotlib/core.py:327\u001b[0m, in \u001b[0;36mMPLPlot.generate\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 325\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mgenerate\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 326\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_args_adjust()\n\u001b[0;32m--> 327\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compute_plot_data\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 328\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_setup_subplots()\n\u001b[1;32m 329\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_make_plot()\n", "File \u001b[0;32m~/Documents/learning/machine_learning_course/sample_project/env/lib/python3.10/site-packages/pandas/plotting/_matplotlib/core.py:506\u001b[0m, in \u001b[0;36mMPLPlot._compute_plot_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 504\u001b[0m \u001b[38;5;66;03m# no non-numeric frames or series allowed\u001b[39;00m\n\u001b[1;32m 505\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_empty:\n\u001b[0;32m--> 506\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mno numeric data to plot\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 508\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata \u001b[38;5;241m=\u001b[39m numeric_data\u001b[38;5;241m.\u001b[39mapply(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_convert_to_ndarray)\n", "\u001b[0;31mTypeError\u001b[0m: no numeric data to plot" ] } ], "source": [ "car_sales[\"Price\"].plot()" ] }, { "cell_type": "code", "execution_count": 37, "id": "bb9b5864", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_4212/3108854531.py:1: FutureWarning: The default value of regex will change from True to False in a future version.\n", " car_sales[\"Price\"] = car_sales[\"Price\"].str.replace('[\\$\\,\\.]','').astype(int)\n" ] } ], "source": [ "car_sales[\"Price\"] = car_sales[\"Price\"].str.replace('[\\$\\,\\.]','').astype(int)" ] }, { "cell_type": "code", "execution_count": 38, "id": "37128899", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 400000\n", "1 500000\n", "2 700000\n", "3 2200000\n", "4 350000\n", "5 450000\n", "6 750000\n", "7 700000\n", "8 625000\n", "9 970000\n", "Name: Price, dtype: int64" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales[\"Price\"]" ] }, { "cell_type": "code", "execution_count": 39, "id": "962db850", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "car_sales[\"Price\"].plot()" ] }, { "cell_type": "markdown", "id": "4413ac95", "metadata": {}, "source": [ "## Manipulating Data" ] }, { "cell_type": "code", "execution_count": 40, "id": "69eba555", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 toyota\n", "1 honda\n", "2 toyota\n", "3 bmw\n", "4 nissan\n", "5 toyota\n", "6 honda\n", "7 honda\n", "8 toyota\n", "9 nissan\n", "Name: Make, dtype: object" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales[\"Make\"].str.lower()" ] }, { "cell_type": "code", "execution_count": 41, "id": "ad6ee6b8", "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", "
MakeColourOdometer (KM)DoorsPrice
0ToyotaWhite1500434400000
1HondaRed878994500000
2ToyotaBlue325493700000
3BMWBlack1117952200000
4NissanWhite2130954350000
5ToyotaGreen992134450000
6HondaBlue456984750000
7HondaBlue547384700000
8ToyotaWhite600004625000
9NissanWhite316004970000
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "0 Toyota White 150043 4 400000\n", "1 Honda Red 87899 4 500000\n", "2 Toyota Blue 32549 3 700000\n", "3 BMW Black 11179 5 2200000\n", "4 Nissan White 213095 4 350000\n", "5 Toyota Green 99213 4 450000\n", "6 Honda Blue 45698 4 750000\n", "7 Honda Blue 54738 4 700000\n", "8 Toyota White 60000 4 625000\n", "9 Nissan White 31600 4 970000" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales" ] }, { "cell_type": "code", "execution_count": 42, "id": "cbbf9d5b", "metadata": {}, "outputs": [], "source": [ "car_sales[\"Make\"] = car_sales[\"Make\"].str.lower()" ] }, { "cell_type": "code", "execution_count": 43, "id": "98b177e9", "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", "
MakeColourOdometer (KM)DoorsPrice
0toyotaWhite1500434400000
1hondaRed878994500000
2toyotaBlue325493700000
3bmwBlack1117952200000
4nissanWhite2130954350000
5toyotaGreen992134450000
6hondaBlue456984750000
7hondaBlue547384700000
8toyotaWhite600004625000
9nissanWhite316004970000
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "0 toyota White 150043 4 400000\n", "1 honda Red 87899 4 500000\n", "2 toyota Blue 32549 3 700000\n", "3 bmw Black 11179 5 2200000\n", "4 nissan White 213095 4 350000\n", "5 toyota Green 99213 4 450000\n", "6 honda Blue 45698 4 750000\n", "7 honda Blue 54738 4 700000\n", "8 toyota White 60000 4 625000\n", "9 nissan White 31600 4 970000" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales" ] }, { "cell_type": "code", "execution_count": 44, "id": "65b2f115", "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", "
MakeColourOdometer (KM)DoorsPrice
0toyotaWhite1500434400000
1hondaRed878994500000
2toyotaBlue325493700000
3bmwBlack1117952200000
4nissanWhite2130954350000
5toyotaGreen992134450000
6hondaBlue456984750000
7hondaBlue547384700000
8toyotaWhite600004625000
9nissanWhite316004970000
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price\n", "0 toyota White 150043 4 400000\n", "1 honda Red 87899 4 500000\n", "2 toyota Blue 32549 3 700000\n", "3 bmw Black 11179 5 2200000\n", "4 nissan White 213095 4 350000\n", "5 toyota Green 99213 4 450000\n", "6 honda Blue 45698 4 750000\n", "7 honda Blue 54738 4 700000\n", "8 toyota White 60000 4 625000\n", "9 nissan White 31600 4 970000" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales" ] }, { "cell_type": "code", "execution_count": 46, "id": "bd67bc4a", "metadata": {}, "outputs": [], "source": [ "car_sales_missing = pd.read_csv(\"car-sales-missing-data.csv\")" ] }, { "cell_type": "code", "execution_count": 47, "id": "63f67964", "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", "
MakeColourOdometerDoorsPrice
0ToyotaWhite150043.04.0$4,000
1HondaRed87899.04.0$5,000
2ToyotaBlueNaN3.0$7,000
3BMWBlack11179.05.0$22,000
4NissanWhite213095.04.0$3,500
5ToyotaGreenNaN4.0$4,500
6HondaNaNNaN4.0$7,500
7HondaBlueNaN4.0NaN
8ToyotaWhite60000.0NaNNaN
9NaNWhite31600.04.0$9,700
\n", "
" ], "text/plain": [ " Make Colour Odometer Doors Price\n", "0 Toyota White 150043.0 4.0 $4,000\n", "1 Honda Red 87899.0 4.0 $5,000\n", "2 Toyota Blue NaN 3.0 $7,000\n", "3 BMW Black 11179.0 5.0 $22,000\n", "4 Nissan White 213095.0 4.0 $3,500\n", "5 Toyota Green NaN 4.0 $4,500\n", "6 Honda NaN NaN 4.0 $7,500\n", "7 Honda Blue NaN 4.0 NaN\n", "8 Toyota White 60000.0 NaN NaN\n", "9 NaN White 31600.0 4.0 $9,700" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales_missing" ] }, { "cell_type": "code", "execution_count": 48, "id": "97464074", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "92302.66666666667" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales_missing[\"Odometer\"].mean()" ] }, { "cell_type": "code", "execution_count": 49, "id": "8ba91fcd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 150043.000000\n", "1 87899.000000\n", "2 92302.666667\n", "3 11179.000000\n", "4 213095.000000\n", "5 92302.666667\n", "6 92302.666667\n", "7 92302.666667\n", "8 60000.000000\n", "9 31600.000000\n", "Name: Odometer, dtype: float64" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales_missing[\"Odometer\"].fillna(car_sales_missing[\"Odometer\"].mean())" ] }, { "cell_type": "code", "execution_count": 50, "id": "4b053d9f", "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", "
MakeColourOdometerDoorsPrice
0ToyotaWhite150043.04.0$4,000
1HondaRed87899.04.0$5,000
2ToyotaBlueNaN3.0$7,000
3BMWBlack11179.05.0$22,000
4NissanWhite213095.04.0$3,500
5ToyotaGreenNaN4.0$4,500
6HondaNaNNaN4.0$7,500
7HondaBlueNaN4.0NaN
8ToyotaWhite60000.0NaNNaN
9NaNWhite31600.04.0$9,700
\n", "
" ], "text/plain": [ " Make Colour Odometer Doors Price\n", "0 Toyota White 150043.0 4.0 $4,000\n", "1 Honda Red 87899.0 4.0 $5,000\n", "2 Toyota Blue NaN 3.0 $7,000\n", "3 BMW Black 11179.0 5.0 $22,000\n", "4 Nissan White 213095.0 4.0 $3,500\n", "5 Toyota Green NaN 4.0 $4,500\n", "6 Honda NaN NaN 4.0 $7,500\n", "7 Honda Blue NaN 4.0 NaN\n", "8 Toyota White 60000.0 NaN NaN\n", "9 NaN White 31600.0 4.0 $9,700" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales_missing" ] }, { "cell_type": "code", "execution_count": 52, "id": "8bc146ad", "metadata": {}, "outputs": [], "source": [ "car_sales_missing[\"Odometer\"].fillna(car_sales_missing[\"Odometer\"].mean(),\n", " inplace=True)" ] }, { "cell_type": "code", "execution_count": 53, "id": "8f6a17f8", "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", "
MakeColourOdometerDoorsPrice
0ToyotaWhite150043.0000004.0$4,000
1HondaRed87899.0000004.0$5,000
2ToyotaBlue92302.6666673.0$7,000
3BMWBlack11179.0000005.0$22,000
4NissanWhite213095.0000004.0$3,500
5ToyotaGreen92302.6666674.0$4,500
6HondaNaN92302.6666674.0$7,500
7HondaBlue92302.6666674.0NaN
8ToyotaWhite60000.000000NaNNaN
9NaNWhite31600.0000004.0$9,700
\n", "
" ], "text/plain": [ " Make Colour Odometer Doors Price\n", "0 Toyota White 150043.000000 4.0 $4,000\n", "1 Honda Red 87899.000000 4.0 $5,000\n", "2 Toyota Blue 92302.666667 3.0 $7,000\n", "3 BMW Black 11179.000000 5.0 $22,000\n", "4 Nissan White 213095.000000 4.0 $3,500\n", "5 Toyota Green 92302.666667 4.0 $4,500\n", "6 Honda NaN 92302.666667 4.0 $7,500\n", "7 Honda Blue 92302.666667 4.0 NaN\n", "8 Toyota White 60000.000000 NaN NaN\n", "9 NaN White 31600.000000 4.0 $9,700" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales_missing" ] }, { "cell_type": "code", "execution_count": 54, "id": "7059b936", "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", "
MakeColourOdometerDoorsPrice
0ToyotaWhite150043.0000004.0$4,000
1HondaRed87899.0000004.0$5,000
2ToyotaBlue92302.6666673.0$7,000
3BMWBlack11179.0000005.0$22,000
4NissanWhite213095.0000004.0$3,500
5ToyotaGreen92302.6666674.0$4,500
\n", "
" ], "text/plain": [ " Make Colour Odometer Doors Price\n", "0 Toyota White 150043.000000 4.0 $4,000\n", "1 Honda Red 87899.000000 4.0 $5,000\n", "2 Toyota Blue 92302.666667 3.0 $7,000\n", "3 BMW Black 11179.000000 5.0 $22,000\n", "4 Nissan White 213095.000000 4.0 $3,500\n", "5 Toyota Green 92302.666667 4.0 $4,500" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales_missing.dropna()" ] }, { "cell_type": "code", "execution_count": 55, "id": "36e52a55", "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", "
MakeColourOdometerDoorsPrice
0ToyotaWhite150043.0000004.0$4,000
1HondaRed87899.0000004.0$5,000
2ToyotaBlue92302.6666673.0$7,000
3BMWBlack11179.0000005.0$22,000
4NissanWhite213095.0000004.0$3,500
5ToyotaGreen92302.6666674.0$4,500
6HondaNaN92302.6666674.0$7,500
7HondaBlue92302.6666674.0NaN
8ToyotaWhite60000.000000NaNNaN
9NaNWhite31600.0000004.0$9,700
\n", "
" ], "text/plain": [ " Make Colour Odometer Doors Price\n", "0 Toyota White 150043.000000 4.0 $4,000\n", "1 Honda Red 87899.000000 4.0 $5,000\n", "2 Toyota Blue 92302.666667 3.0 $7,000\n", "3 BMW Black 11179.000000 5.0 $22,000\n", "4 Nissan White 213095.000000 4.0 $3,500\n", "5 Toyota Green 92302.666667 4.0 $4,500\n", "6 Honda NaN 92302.666667 4.0 $7,500\n", "7 Honda Blue 92302.666667 4.0 NaN\n", "8 Toyota White 60000.000000 NaN NaN\n", "9 NaN White 31600.000000 4.0 $9,700" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales_missing" ] }, { "cell_type": "code", "execution_count": 56, "id": "48a80b90", "metadata": {}, "outputs": [], "source": [ "car_sales_missing.dropna(inplace=True)" ] }, { "cell_type": "code", "execution_count": 57, "id": "23c87cea", "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", "
MakeColourOdometerDoorsPrice
0ToyotaWhite150043.0000004.0$4,000
1HondaRed87899.0000004.0$5,000
2ToyotaBlue92302.6666673.0$7,000
3BMWBlack11179.0000005.0$22,000
4NissanWhite213095.0000004.0$3,500
5ToyotaGreen92302.6666674.0$4,500
\n", "
" ], "text/plain": [ " Make Colour Odometer Doors Price\n", "0 Toyota White 150043.000000 4.0 $4,000\n", "1 Honda Red 87899.000000 4.0 $5,000\n", "2 Toyota Blue 92302.666667 3.0 $7,000\n", "3 BMW Black 11179.000000 5.0 $22,000\n", "4 Nissan White 213095.000000 4.0 $3,500\n", "5 Toyota Green 92302.666667 4.0 $4,500" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales_missing" ] }, { "cell_type": "code", "execution_count": 68, "id": "07ef69f1", "metadata": {}, "outputs": [], "source": [ "car_sales_missing = pd.read_csv(\"car-sales-missing-data.csv\")" ] }, { "cell_type": "code", "execution_count": 69, "id": "1392f357", "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", "
MakeColourOdometerDoorsPrice
0ToyotaWhite150043.04.0$4,000
1HondaRed87899.04.0$5,000
2ToyotaBlueNaN3.0$7,000
3BMWBlack11179.05.0$22,000
4NissanWhite213095.04.0$3,500
5ToyotaGreenNaN4.0$4,500
6HondaNaNNaN4.0$7,500
7HondaBlueNaN4.0NaN
8ToyotaWhite60000.0NaNNaN
9NaNWhite31600.04.0$9,700
\n", "
" ], "text/plain": [ " Make Colour Odometer Doors Price\n", "0 Toyota White 150043.0 4.0 $4,000\n", "1 Honda Red 87899.0 4.0 $5,000\n", "2 Toyota Blue NaN 3.0 $7,000\n", "3 BMW Black 11179.0 5.0 $22,000\n", "4 Nissan White 213095.0 4.0 $3,500\n", "5 Toyota Green NaN 4.0 $4,500\n", "6 Honda NaN NaN 4.0 $7,500\n", "7 Honda Blue NaN 4.0 NaN\n", "8 Toyota White 60000.0 NaN NaN\n", "9 NaN White 31600.0 4.0 $9,700" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales_missing" ] }, { "cell_type": "code", "execution_count": 70, "id": "2c141c98", "metadata": {}, "outputs": [], "source": [ "car_sales_missing_dropped = car_sales_missing.dropna()" ] }, { "cell_type": "code", "execution_count": 71, "id": "620ef1af", "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", "
MakeColourOdometerDoorsPrice
0ToyotaWhite150043.04.0$4,000
1HondaRed87899.04.0$5,000
3BMWBlack11179.05.0$22,000
4NissanWhite213095.04.0$3,500
\n", "
" ], "text/plain": [ " Make Colour Odometer Doors Price\n", "0 Toyota White 150043.0 4.0 $4,000\n", "1 Honda Red 87899.0 4.0 $5,000\n", "3 BMW Black 11179.0 5.0 $22,000\n", "4 Nissan White 213095.0 4.0 $3,500" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales_missing_dropped" ] }, { "cell_type": "code", "execution_count": 72, "id": "781e9bf0", "metadata": {}, "outputs": [], "source": [ "car_sales_missing_dropped.to_csv(\"car-sales-missing-dropped.csv\")" ] }, { "cell_type": "code", "execution_count": 75, "id": "9bccd7ca", "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", "
MakeColourOdometer (KM)DoorsPriceSeats
0toyotaWhite15004344000005.0
1hondaRed8789945000005.0
2toyotaBlue3254937000005.0
3bmwBlack11179522000005.0
4nissanWhite21309543500005.0
5toyotaGreen992134450000NaN
6hondaBlue456984750000NaN
7hondaBlue547384700000NaN
8toyotaWhite600004625000NaN
9nissanWhite316004970000NaN
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price Seats\n", "0 toyota White 150043 4 400000 5.0\n", "1 honda Red 87899 4 500000 5.0\n", "2 toyota Blue 32549 3 700000 5.0\n", "3 bmw Black 11179 5 2200000 5.0\n", "4 nissan White 213095 4 350000 5.0\n", "5 toyota Green 99213 4 450000 NaN\n", "6 honda Blue 45698 4 750000 NaN\n", "7 honda Blue 54738 4 700000 NaN\n", "8 toyota White 60000 4 625000 NaN\n", "9 nissan White 31600 4 970000 NaN" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Column from series\n", "seats_column = pd.Series([5, 5, 5, 5, 5,])\n", "\n", "# New column called seats\n", "car_sales[\"Seats\"] = seats_column\n", "car_sales" ] }, { "cell_type": "code", "execution_count": 76, "id": "c4f2c1e4", "metadata": {}, "outputs": [], "source": [ "car_sales[\"Seats\"].fillna(5, inplace=True)" ] }, { "cell_type": "code", "execution_count": 77, "id": "8de131a3", "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", "
MakeColourOdometer (KM)DoorsPriceSeats
0toyotaWhite15004344000005.0
1hondaRed8789945000005.0
2toyotaBlue3254937000005.0
3bmwBlack11179522000005.0
4nissanWhite21309543500005.0
5toyotaGreen9921344500005.0
6hondaBlue4569847500005.0
7hondaBlue5473847000005.0
8toyotaWhite6000046250005.0
9nissanWhite3160049700005.0
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price Seats\n", "0 toyota White 150043 4 400000 5.0\n", "1 honda Red 87899 4 500000 5.0\n", "2 toyota Blue 32549 3 700000 5.0\n", "3 bmw Black 11179 5 2200000 5.0\n", "4 nissan White 213095 4 350000 5.0\n", "5 toyota Green 99213 4 450000 5.0\n", "6 honda Blue 45698 4 750000 5.0\n", "7 honda Blue 54738 4 700000 5.0\n", "8 toyota White 60000 4 625000 5.0\n", "9 nissan White 31600 4 970000 5.0" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales" ] }, { "cell_type": "code", "execution_count": 80, "id": "8b823fad", "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", "
MakeColourOdometer (KM)DoorsPriceSeatsFuel per 100KM
0toyotaWhite15004344000005.07.5
1hondaRed8789945000005.09.2
2toyotaBlue3254937000005.05.0
3bmwBlack11179522000005.09.6
4nissanWhite21309543500005.08.7
5toyotaGreen9921344500005.04.7
6hondaBlue4569847500005.07.6
7hondaBlue5473847000005.08.7
8toyotaWhite6000046250005.03.0
9nissanWhite3160049700005.04.5
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price Seats Fuel per 100KM\n", "0 toyota White 150043 4 400000 5.0 7.5\n", "1 honda Red 87899 4 500000 5.0 9.2\n", "2 toyota Blue 32549 3 700000 5.0 5.0\n", "3 bmw Black 11179 5 2200000 5.0 9.6\n", "4 nissan White 213095 4 350000 5.0 8.7\n", "5 toyota Green 99213 4 450000 5.0 4.7\n", "6 honda Blue 45698 4 750000 5.0 7.6\n", "7 honda Blue 54738 4 700000 5.0 8.7\n", "8 toyota White 60000 4 625000 5.0 3.0\n", "9 nissan White 31600 4 970000 5.0 4.5" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Column from Python list\n", "fuel_economy = [7.5, 9.2, 5.0, 9.6, 8.7, 4.7, 7.6, 8.7, 3.0, 4.5]\n", "car_sales[\"Fuel per 100KM\"] = fuel_economy\n", "car_sales" ] }, { "cell_type": "code", "execution_count": 84, "id": "9a181add", "metadata": {}, "outputs": [], "source": [ "car_sales[\"Total fuel used (L)\"] = car_sales[\"Odometer (KM)\"]/100 * car_sales[\"Fuel per 100KM\"]" ] }, { "cell_type": "code", "execution_count": 85, "id": "20131395", "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", "
MakeColourOdometer (KM)DoorsPriceSeatsFuel per 100KMTotal fuel usedTotal fuel used (L)
0toyotaWhite15004344000005.07.511253.22511253.225
1hondaRed8789945000005.09.28086.7088086.708
2toyotaBlue3254937000005.05.01627.4501627.450
3bmwBlack11179522000005.09.61073.1841073.184
4nissanWhite21309543500005.08.718539.26518539.265
5toyotaGreen9921344500005.04.74663.0114663.011
6hondaBlue4569847500005.07.63473.0483473.048
7hondaBlue5473847000005.08.74762.2064762.206
8toyotaWhite6000046250005.03.01800.0001800.000
9nissanWhite3160049700005.04.51422.0001422.000
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price Seats Fuel per 100KM \\\n", "0 toyota White 150043 4 400000 5.0 7.5 \n", "1 honda Red 87899 4 500000 5.0 9.2 \n", "2 toyota Blue 32549 3 700000 5.0 5.0 \n", "3 bmw Black 11179 5 2200000 5.0 9.6 \n", "4 nissan White 213095 4 350000 5.0 8.7 \n", "5 toyota Green 99213 4 450000 5.0 4.7 \n", "6 honda Blue 45698 4 750000 5.0 7.6 \n", "7 honda Blue 54738 4 700000 5.0 8.7 \n", "8 toyota White 60000 4 625000 5.0 3.0 \n", "9 nissan White 31600 4 970000 5.0 4.5 \n", "\n", " Total fuel used Total fuel used (L) \n", "0 11253.225 11253.225 \n", "1 8086.708 8086.708 \n", "2 1627.450 1627.450 \n", "3 1073.184 1073.184 \n", "4 18539.265 18539.265 \n", "5 4663.011 4663.011 \n", "6 3473.048 3473.048 \n", "7 4762.206 4762.206 \n", "8 1800.000 1800.000 \n", "9 1422.000 1422.000 " ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales" ] }, { "cell_type": "code", "execution_count": 86, "id": "d9f81e85", "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", "
MakeColourOdometer (KM)DoorsPriceSeatsFuel per 100KMTotal fuel usedTotal fuel used (L)Number of wheels
0toyotaWhite15004344000005.07.511253.22511253.2254
1hondaRed8789945000005.09.28086.7088086.7084
2toyotaBlue3254937000005.05.01627.4501627.4504
3bmwBlack11179522000005.09.61073.1841073.1844
4nissanWhite21309543500005.08.718539.26518539.2654
5toyotaGreen9921344500005.04.74663.0114663.0114
6hondaBlue4569847500005.07.63473.0483473.0484
7hondaBlue5473847000005.08.74762.2064762.2064
8toyotaWhite6000046250005.03.01800.0001800.0004
9nissanWhite3160049700005.04.51422.0001422.0004
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price Seats Fuel per 100KM \\\n", "0 toyota White 150043 4 400000 5.0 7.5 \n", "1 honda Red 87899 4 500000 5.0 9.2 \n", "2 toyota Blue 32549 3 700000 5.0 5.0 \n", "3 bmw Black 11179 5 2200000 5.0 9.6 \n", "4 nissan White 213095 4 350000 5.0 8.7 \n", "5 toyota Green 99213 4 450000 5.0 4.7 \n", "6 honda Blue 45698 4 750000 5.0 7.6 \n", "7 honda Blue 54738 4 700000 5.0 8.7 \n", "8 toyota White 60000 4 625000 5.0 3.0 \n", "9 nissan White 31600 4 970000 5.0 4.5 \n", "\n", " Total fuel used Total fuel used (L) Number of wheels \n", "0 11253.225 11253.225 4 \n", "1 8086.708 8086.708 4 \n", "2 1627.450 1627.450 4 \n", "3 1073.184 1073.184 4 \n", "4 18539.265 18539.265 4 \n", "5 4663.011 4663.011 4 \n", "6 3473.048 3473.048 4 \n", "7 4762.206 4762.206 4 \n", "8 1800.000 1800.000 4 \n", "9 1422.000 1422.000 4 " ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create a column from a single value\n", "car_sales[\"Number of wheels\"] = 4\n", "car_sales" ] }, { "cell_type": "code", "execution_count": 87, "id": "6859af53", "metadata": {}, "outputs": [], "source": [ "car_sales[\"Passed road safety\"] = True" ] }, { "cell_type": "code", "execution_count": 88, "id": "a289dd85", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Make object\n", "Colour object\n", "Odometer (KM) int64\n", "Doors int64\n", "Price int64\n", "Seats float64\n", "Fuel per 100KM float64\n", "Total fuel used float64\n", "Total fuel used (L) float64\n", "Number of wheels int64\n", "Passed road safety bool\n", "dtype: object" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.dtypes" ] }, { "cell_type": "code", "execution_count": 90, "id": "a7c11bc0", "metadata": {}, "outputs": [], "source": [ "car_sales = car_sales.drop(\"Total fuel used\", axis=1)" ] }, { "cell_type": "code", "execution_count": 91, "id": "15d32814", "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", "
MakeColourOdometer (KM)DoorsPriceSeatsFuel per 100KMTotal fuel used (L)Number of wheelsPassed road safety
0toyotaWhite15004344000005.07.511253.2254True
1hondaRed8789945000005.09.28086.7084True
2toyotaBlue3254937000005.05.01627.4504True
3bmwBlack11179522000005.09.61073.1844True
4nissanWhite21309543500005.08.718539.2654True
5toyotaGreen9921344500005.04.74663.0114True
6hondaBlue4569847500005.07.63473.0484True
7hondaBlue5473847000005.08.74762.2064True
8toyotaWhite6000046250005.03.01800.0004True
9nissanWhite3160049700005.04.51422.0004True
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price Seats Fuel per 100KM \\\n", "0 toyota White 150043 4 400000 5.0 7.5 \n", "1 honda Red 87899 4 500000 5.0 9.2 \n", "2 toyota Blue 32549 3 700000 5.0 5.0 \n", "3 bmw Black 11179 5 2200000 5.0 9.6 \n", "4 nissan White 213095 4 350000 5.0 8.7 \n", "5 toyota Green 99213 4 450000 5.0 4.7 \n", "6 honda Blue 45698 4 750000 5.0 7.6 \n", "7 honda Blue 54738 4 700000 5.0 8.7 \n", "8 toyota White 60000 4 625000 5.0 3.0 \n", "9 nissan White 31600 4 970000 5.0 4.5 \n", "\n", " Total fuel used (L) Number of wheels Passed road safety \n", "0 11253.225 4 True \n", "1 8086.708 4 True \n", "2 1627.450 4 True \n", "3 1073.184 4 True \n", "4 18539.265 4 True \n", "5 4663.011 4 True \n", "6 3473.048 4 True \n", "7 4762.206 4 True \n", "8 1800.000 4 True \n", "9 1422.000 4 True " ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales" ] }, { "cell_type": "code", "execution_count": 92, "id": "34c60bf4", "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", "
MakeColourOdometer (KM)DoorsPriceSeatsFuel per 100KMTotal fuel used (L)Number of wheelsPassed road safety
1hondaRed8789945000005.09.28086.7084True
9nissanWhite3160049700005.04.51422.0004True
7hondaBlue5473847000005.08.74762.2064True
2toyotaBlue3254937000005.05.01627.4504True
3bmwBlack11179522000005.09.61073.1844True
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price Seats Fuel per 100KM \\\n", "1 honda Red 87899 4 500000 5.0 9.2 \n", "9 nissan White 31600 4 970000 5.0 4.5 \n", "7 honda Blue 54738 4 700000 5.0 8.7 \n", "2 toyota Blue 32549 3 700000 5.0 5.0 \n", "3 bmw Black 11179 5 2200000 5.0 9.6 \n", "\n", " Total fuel used (L) Number of wheels Passed road safety \n", "1 8086.708 4 True \n", "9 1422.000 4 True \n", "7 4762.206 4 True \n", "2 1627.450 4 True \n", "3 1073.184 4 True " ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales.sample(frac=0.5)" ] }, { "cell_type": "code", "execution_count": 95, "id": "6ae2e87d", "metadata": {}, "outputs": [], "source": [ "car_sales_shuffled = car_sales.sample(frac=1)" ] }, { "cell_type": "code", "execution_count": 96, "id": "46c3d98c", "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", "
MakeColourOdometer (KM)DoorsPriceSeatsFuel per 100KMTotal fuel used (L)Number of wheelsPassed road safety
0toyotaWhite15004344000005.07.511253.2254True
8toyotaWhite6000046250005.03.01800.0004True
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price Seats Fuel per 100KM \\\n", "0 toyota White 150043 4 400000 5.0 7.5 \n", "8 toyota White 60000 4 625000 5.0 3.0 \n", "\n", " Total fuel used (L) Number of wheels Passed road safety \n", "0 11253.225 4 True \n", "8 1800.000 4 True " ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales_shuffled.sample(frac=0.2)" ] }, { "cell_type": "code", "execution_count": 98, "id": "bf846d5d", "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", "
MakeColourOdometer (KM)DoorsPriceSeatsFuel per 100KMTotal fuel used (L)Number of wheelsPassed road safety
0nissanWhite21309543500005.08.718539.2654True
1hondaBlue5473847000005.08.74762.2064True
2nissanWhite3160049700005.04.51422.0004True
3toyotaBlue3254937000005.05.01627.4504True
4hondaBlue4569847500005.07.63473.0484True
5toyotaWhite6000046250005.03.01800.0004True
6hondaRed8789945000005.09.28086.7084True
7bmwBlack11179522000005.09.61073.1844True
8toyotaWhite15004344000005.07.511253.2254True
9toyotaGreen9921344500005.04.74663.0114True
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price Seats Fuel per 100KM \\\n", "0 nissan White 213095 4 350000 5.0 8.7 \n", "1 honda Blue 54738 4 700000 5.0 8.7 \n", "2 nissan White 31600 4 970000 5.0 4.5 \n", "3 toyota Blue 32549 3 700000 5.0 5.0 \n", "4 honda Blue 45698 4 750000 5.0 7.6 \n", "5 toyota White 60000 4 625000 5.0 3.0 \n", "6 honda Red 87899 4 500000 5.0 9.2 \n", "7 bmw Black 11179 5 2200000 5.0 9.6 \n", "8 toyota White 150043 4 400000 5.0 7.5 \n", "9 toyota Green 99213 4 450000 5.0 4.7 \n", "\n", " Total fuel used (L) Number of wheels Passed road safety \n", "0 18539.265 4 True \n", "1 4762.206 4 True \n", "2 1422.000 4 True \n", "3 1627.450 4 True \n", "4 3473.048 4 True \n", "5 1800.000 4 True \n", "6 8086.708 4 True \n", "7 1073.184 4 True \n", "8 11253.225 4 True \n", "9 4663.011 4 True " ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales = car_sales_shuffled.reset_index(drop=True)\n", "car_sales" ] }, { "cell_type": "code", "execution_count": 99, "id": "b9220ca6", "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", "
MakeColourOdometer (KM)DoorsPriceSeatsFuel per 100KMTotal fuel used (L)Number of wheelsPassed road safety
0nissanWhite21309543500005.08.718539.2654True
1hondaBlue5473847000005.08.74762.2064True
2nissanWhite3160049700005.04.51422.0004True
3toyotaBlue3254937000005.05.01627.4504True
4hondaBlue4569847500005.07.63473.0484True
5toyotaWhite6000046250005.03.01800.0004True
6hondaRed8789945000005.09.28086.7084True
7bmwBlack11179522000005.09.61073.1844True
8toyotaWhite15004344000005.07.511253.2254True
9toyotaGreen9921344500005.04.74663.0114True
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price Seats Fuel per 100KM \\\n", "0 nissan White 213095 4 350000 5.0 8.7 \n", "1 honda Blue 54738 4 700000 5.0 8.7 \n", "2 nissan White 31600 4 970000 5.0 4.5 \n", "3 toyota Blue 32549 3 700000 5.0 5.0 \n", "4 honda Blue 45698 4 750000 5.0 7.6 \n", "5 toyota White 60000 4 625000 5.0 3.0 \n", "6 honda Red 87899 4 500000 5.0 9.2 \n", "7 bmw Black 11179 5 2200000 5.0 9.6 \n", "8 toyota White 150043 4 400000 5.0 7.5 \n", "9 toyota Green 99213 4 450000 5.0 4.7 \n", "\n", " Total fuel used (L) Number of wheels Passed road safety \n", "0 18539.265 4 True \n", "1 4762.206 4 True \n", "2 1422.000 4 True \n", "3 1627.450 4 True \n", "4 3473.048 4 True \n", "5 1800.000 4 True \n", "6 8086.708 4 True \n", "7 1073.184 4 True \n", "8 11253.225 4 True \n", "9 4663.011 4 True " ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales" ] }, { "cell_type": "code", "execution_count": 100, "id": "bdcc6512", "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", "
MakeColourOdometer (KM)DoorsPriceSeatsFuel per 100KMTotal fuel used (L)Number of wheelsPassed road safety
0nissanWhite133184.37543500005.08.718539.2654True
1hondaBlue34211.25047000005.08.74762.2064True
2nissanWhite19750.00049700005.04.51422.0004True
3toyotaBlue20343.12537000005.05.01627.4504True
4hondaBlue28561.25047500005.07.63473.0484True
5toyotaWhite37500.00046250005.03.01800.0004True
6hondaRed54936.87545000005.09.28086.7084True
7bmwBlack6986.875522000005.09.61073.1844True
8toyotaWhite93776.87544000005.07.511253.2254True
9toyotaGreen62008.12544500005.04.74663.0114True
\n", "
" ], "text/plain": [ " Make Colour Odometer (KM) Doors Price Seats Fuel per 100KM \\\n", "0 nissan White 133184.375 4 350000 5.0 8.7 \n", "1 honda Blue 34211.250 4 700000 5.0 8.7 \n", "2 nissan White 19750.000 4 970000 5.0 4.5 \n", "3 toyota Blue 20343.125 3 700000 5.0 5.0 \n", "4 honda Blue 28561.250 4 750000 5.0 7.6 \n", "5 toyota White 37500.000 4 625000 5.0 3.0 \n", "6 honda Red 54936.875 4 500000 5.0 9.2 \n", "7 bmw Black 6986.875 5 2200000 5.0 9.6 \n", "8 toyota White 93776.875 4 400000 5.0 7.5 \n", "9 toyota Green 62008.125 4 450000 5.0 4.7 \n", "\n", " Total fuel used (L) Number of wheels Passed road safety \n", "0 18539.265 4 True \n", "1 4762.206 4 True \n", "2 1422.000 4 True \n", "3 1627.450 4 True \n", "4 3473.048 4 True \n", "5 1800.000 4 True \n", "6 8086.708 4 True \n", "7 1073.184 4 True \n", "8 11253.225 4 True \n", "9 4663.011 4 True " ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "car_sales[\"Odometer (KM)\"] = car_sales[\"Odometer (KM)\"].apply(lambda x: x / 1.6)\n", "car_sales" ] }, { "cell_type": "code", "execution_count": null, "id": "5d3da940", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.4" } }, "nbformat": 4, "nbformat_minor": 5 }