From 88c2b949e894a6786cc0181fba63f095803e0e66 Mon Sep 17 00:00:00 2001 From: Gasper Spagnolo Date: Sat, 13 Aug 2022 19:02:12 +0200 Subject: [PATCH] h --- sample_project/example-notebook.ipynb | 278 + sample_project/introduction-to-numpy.ipynb | 657 ++ sample_project/introduction-to-pandas.ipynb | 5914 +++++++++++++++++++ 3 files changed, 6849 insertions(+) create mode 100644 sample_project/example-notebook.ipynb create mode 100644 sample_project/introduction-to-numpy.ipynb create mode 100644 sample_project/introduction-to-pandas.ipynb diff --git a/sample_project/example-notebook.ipynb b/sample_project/example-notebook.ipynb new file mode 100644 index 0000000..ef54d51 --- /dev/null +++ b/sample_project/example-notebook.ipynb @@ -0,0 +1,278 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e81cac73", + "metadata": {}, + "source": [ + "# Lets import file" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "4bc999ac", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0eec8a65", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"heart-disease.csv\")" + ] + }, + { + "cell_type": "markdown", + "id": "f588239f", + "metadata": {}, + "source": [ + "Poglejmo kaj smo importali" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0cec76a8", + "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", + "
agesexcptrestbpscholfbsrestecgthalachexangoldpeakslopecathaltarget
063131452331015002.30011
137121302500118703.50021
241011302040017201.42021
356111202360117800.82021
457001203540116310.62021
\n", + "
" + ], + "text/plain": [ + " age sex cp trestbps chol fbs restecg thalach exang oldpeak slope \\\n", + "0 63 1 3 145 233 1 0 150 0 2.3 0 \n", + "1 37 1 2 130 250 0 1 187 0 3.5 0 \n", + "2 41 0 1 130 204 0 0 172 0 1.4 2 \n", + "3 56 1 1 120 236 0 1 178 0 0.8 2 \n", + "4 57 0 0 120 354 0 1 163 1 0.6 2 \n", + "\n", + " ca thal target \n", + "0 0 1 1 \n", + "1 0 2 1 \n", + "2 0 2 1 \n", + "3 0 2 1 \n", + "4 0 2 1 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "markdown", + "id": "ec647955", + "metadata": {}, + "source": [ + "# Lets graph our data" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "c9e4750b", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a4cf20f4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD1CAYAAACrz7WZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAOF0lEQVR4nO3df6zdd13H8efL1k2BGLr0tnb9YYd2YEcwmMtEiQaZuBkI3T9LuohpcEmjGQhGA538sb+azB9BTRSTBupqxC0NoGsgIrWKi1E27tiAdWW0YWO7tK53zt8mhY63f9zv9Hg4d/fe8z33Xvrp8/HPOd/P9/s95/1H8+w3357Tk6pCktSW71rrASRJk2fcJalBxl2SGmTcJalBxl2SGmTcJalB69d6AICNGzfWzp0713oMSbqkPPTQQ89W1dSofd8Rcd+5cyczMzNrPYYkXVKSfG2hfd6WkaQGGXdJapBxl6QGGXdJapBxl6QGGXdJapBxl6QGGXdJatB3xJeYLhU7D3xyrUdoypN3vWWtR5Ca5ZW7JDXIuEtSgxaNe5LDSc4neXRo/V1JHk9yMslvDazfkeRMt+/GlRhakvTilnLP/W7gD4A/eWEhyU8De4DXVNWFJJu69d3AXuA64Grgr5NcW1XPT3pwSdLCFr1yr6r7geeGln8ZuKuqLnTHnO/W9wD3VtWFqnoCOANcP8F5JUlLMO4992uBn0zyQJK/S/K6bn0r8PTAcbPdmiRpFY37Ucj1wAbg9cDrgKNJXgFkxLE16gWS7Af2A+zYsWPMMSRJo4x75T4LfLzmPQh8C9jYrW8fOG4bcHbUC1TVoaqarqrpqamRPyQiSRrTuHH/C+BNAEmuBa4AngWOAXuTXJnkGmAX8OAE5pQkLcOit2WS3AO8EdiYZBa4EzgMHO4+HvkNYF9VFXAyyVHgMeAicLuflJGk1bdo3Kvq1gV2vX2B4w8CB/sMJUnqx2+oSlKDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNWjRuCc5nOR896tLw/t+PUkl2TiwdkeSM0keT3LjpAeWJC1uKVfudwM3DS8m2Q68GXhqYG03sBe4rjvng0nWTWRSSdKSLRr3qrofeG7Ert8F3gvUwNoe4N6qulBVTwBngOsnMagkaenGuuee5G3A16vqC0O7tgJPD2zPdmuSpFW06A9kD0vyEuD9wM+O2j1irUaskWQ/sB9gx44dyx1DkvQixrly/0HgGuALSZ4EtgGfT/L9zF+pbx84dhtwdtSLVNWhqpququmpqakxxpAkLWTZV+5V9SVg0wvbXeCnq+rZJMeAP0vyAeBqYBfw4IRmlfQidh745FqP0Iwn73rLWo/Q21I+CnkP8I/AK5PMJrltoWOr6iRwFHgM+BRwe1U9P6lhJUlLs+iVe1Xdusj+nUPbB4GD/caSJPXhN1QlqUHGXZIaZNwlqUHGXZIaZNwlqUHGXZIaZNwlqUHGXZIaZNwlqUHGXZIaZNwlqUHGXZIaZNwlqUHGXZIaZNwlqUHGXZIatJRfYjqc5HySRwfWfjvJl5N8McmfJ3n5wL47kpxJ8niSG1dobknSi1jKlfvdwE1Da8eBV1fVa4CvAHcAJNkN7AWu6875YJJ1E5tWkrQki8a9qu4Hnhta+3RVXew2Pwts657vAe6tqgtV9QRwBrh+gvNKkpZgEvfcfxH4y+75VuDpgX2z3ZokaRX1inuS9wMXgY+8sDTisFrg3P1JZpLMzM3N9RlDkjRk7Lgn2Qe8Ffj5qnoh4LPA9oHDtgFnR51fVYeqarqqpqempsYdQ5I0wlhxT3IT8D7gbVX13wO7jgF7k1yZ5BpgF/Bg/zElScuxfrEDktwDvBHYmGQWuJP5T8dcCRxPAvDZqvqlqjqZ5CjwGPO3a26vqudXanhJ0miLxr2qbh2x/OEXOf4gcLDPUJKkfvyGqiQ1yLhLUoOMuyQ1yLhLUoOMuyQ1yLhLUoOMuyQ1yLhLUoOMuyQ1yLhLUoOMuyQ1yLhLUoOMuyQ1yLhLUoOMuyQ1yLhLUoMWjXuSw0nOJ3l0YO2qJMeTnO4eNwzsuyPJmSSPJ7lxpQaXJC1sKVfudwM3Da0dAE5U1S7gRLdNkt3AXuC67pwPJlk3sWklSUuyaNyr6n7guaHlPcCR7vkR4OaB9Xur6kJVPQGcAa6fzKiSpKUa95775qo6B9A9burWtwJPDxw3261JklbRpP9BNSPWauSByf4kM0lm5ubmJjyGJF3exo37M0m2AHSP57v1WWD7wHHbgLOjXqCqDlXVdFVNT01NjTmGJGmUceN+DNjXPd8H3DewvjfJlUmuAXYBD/YbUZK0XOsXOyDJPcAbgY1JZoE7gbuAo0luA54CbgGoqpNJjgKPAReB26vq+RWaXZK0gEXjXlW3LrDrhgWOPwgc7DOUJKkfv6EqSQ0y7pLUIOMuSQ0y7pLUIOMuSQ0y7pLUIOMuSQ0y7pLUIOMuSQ0y7pLUIOMuSQ0y7pLUIOMuSQ0y7pLUIOMuSQ0y7pLUoF5xT/KrSU4meTTJPUm+J8lVSY4nOd09bpjUsJKkpRk77km2Ar8CTFfVq4F1wF7gAHCiqnYBJ7ptSdIq6ntbZj3wvUnWAy8BzgJ7gCPd/iPAzT3fQ5K0TGPHvaq+DvwO8z+QfQ74t6r6NLC5qs51x5wDNk1iUEnS0vW5LbOB+av0a4CrgZcmefsyzt+fZCbJzNzc3LhjSJJG6HNb5meAJ6pqrqq+CXwc+AngmSRbALrH86NOrqpDVTVdVdNTU1M9xpAkDesT96eA1yd5SZIANwCngGPAvu6YfcB9/UaUJC3X+nFPrKoHknwU+DxwEXgYOAS8DDia5Dbm/wK4ZRKDSpKWbuy4A1TVncCdQ8sXmL+KlyStEb+hKkkNMu6S1CDjLkkNMu6S1CDjLkkNMu6S1CDjLkkNMu6S1CDjLkkNMu6S1CDjLkkNMu6S1CDjLkkNMu6S1CDjLkkNMu6S1KBecU/y8iQfTfLlJKeS/HiSq5IcT3K6e9wwqWElSUvT98r994FPVdWrgB9h/jdUDwAnqmoXcKLbliStorHjnuT7gJ8CPgxQVd+oqn8F9gBHusOOADf3G1GStFx9rtxfAcwBf5zk4SQfSvJSYHNVnQPoHjdNYE5J0jL0ift64EeBP6qq1wL/xTJuwSTZn2Qmyczc3FyPMSRJw/rEfRaYraoHuu2PMh/7Z5JsAegez486uaoOVdV0VU1PTU31GEOSNGzsuFfVPwFPJ3llt3QD8BhwDNjXre0D7us1oSRp2db3PP9dwEeSXAF8FXgH839hHE1yG/AUcEvP95AkLVOvuFfVI8D0iF039HldSVI/fkNVkhpk3CWpQcZdkhpk3CWpQcZdkhpk3CWpQcZdkhpk3CWpQcZdkhpk3CWpQcZdkhpk3CWpQcZdkhpk3CWpQcZdkhpk3CWpQb3jnmRdkoeTfKLbvirJ8SSnu8cN/ceUJC3HJK7c3w2cGtg+AJyoql3AiW5bkrSKesU9yTbgLcCHBpb3AEe650eAm/u8hyRp+fpeuf8e8F7gWwNrm6vqHED3uKnne0iSlmnsuCd5K3C+qh4a8/z9SWaSzMzNzY07hiRphD5X7m8A3pbkSeBe4E1J/hR4JskWgO7x/KiTq+pQVU1X1fTU1FSPMSRJw8aOe1XdUVXbqmonsBf4m6p6O3AM2Ncdtg+4r/eUkqRlWYnPud8FvDnJaeDN3bYkaRWtn8SLVNVngM90z/8ZuGESrytJGo/fUJWkBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBo0d9yTbk/xtklNJTiZ5d7d+VZLjSU53jxsmN64kaSn6XLlfBH6tqn4YeD1we5LdwAHgRFXtAk5025KkVTR23KvqXFV9vnv+H8ApYCuwBzjSHXYEuLnnjJKkZZrIPfckO4HXAg8Am6vqHMz/BQBsWuCc/UlmkszMzc1NYgxJUqd33JO8DPgY8J6q+velnldVh6pquqqmp6am+o4hSRrQK+5Jvpv5sH+kqj7eLT+TZEu3fwtwvt+IkqTl6vNpmQAfBk5V1QcGdh0D9nXP9wH3jT+eJGkc63uc+wbgF4AvJXmkW/sN4C7gaJLbgKeAW3pNKElatrHjXlV/D2SB3TeM+7qSpP78hqokNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDVizuSW5K8niSM0kOrNT7SJK+3YrEPck64A+BnwN2A7cm2b0S7yVJ+nYrdeV+PXCmqr5aVd8A7gX2rNB7SZKG9PmB7BezFXh6YHsW+LHBA5LsB/Z3m/+Z5PEVmuVytBF4dq2HWEx+c60n0Brwz+Zk/cBCO1Yq7qN+OLv+30bVIeDQCr3/ZS3JTFVNr/Uc0jD/bK6elbotMwtsH9jeBpxdofeSJA1Zqbh/DtiV5JokVwB7gWMr9F6SpCErclumqi4meSfwV8A64HBVnVyJ99JI3u7Sdyr/bK6SVNXiR0mSLil+Q1WSGmTcJalBxl2SGrRSn3OXJJK8ivlvp29l/rsuZ4FjVXVqTQe7DHjl3rAk71jrGXT5SvI+5v/rkQAPMv8R6QD3+J8Jrjw/LdOwJE9V1Y61nkOXpyRfAa6rqm8OrV8BnKyqXWsz2eXB2zKXuCRfXGgXsHk1Z5GGfAu4Gvja0PqWbp9WkHG/9G0GbgT+ZWg9wD+s/jjS/3oPcCLJaf7vPxLcAfwQ8M61GupyYdwvfZ8AXlZVjwzvSPKZVZ9G6lTVp5Jcy/x/Ab6V+QuOWeBzVfX8mg53GfCeuyQ1yE/LSFKDjLskNci4S1KDjLskNci4S1KD/gcCwkh7/KN8+QAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df.target.value_counts().plot(kind=\"bar\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a7a80c15", + "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 +} diff --git a/sample_project/introduction-to-numpy.ipynb b/sample_project/introduction-to-numpy.ipynb new file mode 100644 index 0000000..ba55190 --- /dev/null +++ b/sample_project/introduction-to-numpy.ipynb @@ -0,0 +1,657 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "31687c76", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "id": "5cfbcfd9", + "metadata": {}, + "source": [ + "## DataTypes & Attributes" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d8e5c7e2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1, 2, 3])" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# NumPy's main datatype is ndarray\n", + "a1 = np.array([1, 2, 3])\n", + "a1" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a33f7c97", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "numpy.ndarray" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(a1)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b9b415d9", + "metadata": {}, + "outputs": [], + "source": [ + "a2 = np.array([[1, 2.0, 3.3],\n", + " [4, 5, 6.5]])\n", + "a3 = np.array([[[1, 2, 3],\n", + " [4, 5, 6],\n", + " [7, 8, 9]],\n", + " [[10, 11, 12],\n", + " [13, 14, 15],\n", + " [16, 17, 18]]])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "cd071ecf", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1. , 2. , 3.3],\n", + " [4. , 5. , 6.5]])" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a2" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "1d2c1045", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[[ 1, 2, 3],\n", + " [ 4, 5, 6],\n", + " [ 7, 8, 9]],\n", + "\n", + " [[10, 11, 12],\n", + " [13, 14, 15],\n", + " [16, 17, 18]]])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a3" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "e3fbbebb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(3,)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a1.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "43dc0c6d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(2, 3)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a2.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "b949a2e4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(2, 3, 3)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a3.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "f8ab575a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1, 2, 3)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a1.ndim, a2.ndim, a3.ndim" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "f7ad5f19", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(dtype('int64'), dtype('float64'), dtype('int64'))" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a1.dtype, a2.dtype, a3.dtype" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "882c50f5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(3, 6, 18)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a1.size, a2.size, a3.size" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "1add28cb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(numpy.ndarray, numpy.ndarray, numpy.ndarray)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(a1), type(a2), type(a3)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e0c84cc7", + "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", + "
012
01.02.03.3
14.05.06.5
\n", + "
" + ], + "text/plain": [ + " 0 1 2\n", + "0 1.0 2.0 3.3\n", + "1 4.0 5.0 6.5" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Create a DataFrame from a NumPy array\n", + "import pandas as pd\n", + "\n", + "df = pd.DataFrame(a2)\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "3cafccec", + "metadata": {}, + "source": [ + "## 2. Creating arrays" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "ff67e8f5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1, 2, 3])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_array = np.array([1, 2, 3])\n", + "sample_array" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "83278329", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dtype('int64')" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_array.dtype" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "fafba0e8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1., 1., 1.],\n", + " [1., 1., 1.]])" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ones = np.ones((2, 3))\n", + "ones" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "496eb840", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dtype('float64')" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ones.dtype" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "8679afec", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "numpy.ndarray" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(ones)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "c5cad563", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0., 0., 0.],\n", + " [0., 0., 0.]])" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "zeros = np.zeros((2, 3))\n", + "zeros" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "9758790b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0, 2, 4, 6, 8])" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "range_array = np.arange(0, 10, 2)\n", + "range_array" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "e120412c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[3, 4, 2, 5, 6],\n", + " [0, 1, 7, 9, 2],\n", + " [8, 5, 4, 0, 1]])" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "random_array = np.random.randint(0, 10, size=(3, 5))\n", + "random_array" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "92289cb3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "15" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "random_array.size" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "2e8fed36", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(3, 5)" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "random_array.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "9b9df235", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.44912645, 0.98510836, 0.97674192],\n", + " [0.67159454, 0.5610905 , 0.80301139],\n", + " [0.4803461 , 0.54147692, 0.93300764],\n", + " [0.13370648, 0.31868066, 0.91668974],\n", + " [0.48382992, 0.44254784, 0.22183905]])" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "random_array2 = np.random.random((5,3))\n", + "random_array2" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "e9a6a124", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.41154311, 0.67594683, 0.43359551],\n", + " [0.86838892, 0.48180592, 0.88852778],\n", + " [0.90123555, 0.73850576, 0.24385752],\n", + " [0.97303408, 0.80200642, 0.46062556],\n", + " [0.92454193, 0.15264643, 0.01139053]])" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "random_array3 = np.random.rand(5,3)\n", + "random_array3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "35e7d231", + "metadata": {}, + "outputs": [], + "source": [ + "np.random.seed()" + ] + } + ], + "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 +} diff --git a/sample_project/introduction-to-pandas.ipynb b/sample_project/introduction-to-pandas.ipynb new file mode 100644 index 0000000..339d7b8 --- /dev/null +++ b/sample_project/introduction-to-pandas.ipynb @@ -0,0 +1,5914 @@ +{ + "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 +}