diff --git a/module-1/Importing-Exporting-Data/data/astronauts.xls b/module-1/Importing-Exporting-Data/data/astronauts.xls index 91ece1f7..5a2080c1 100644 Binary files a/module-1/Importing-Exporting-Data/data/astronauts.xls and b/module-1/Importing-Exporting-Data/data/astronauts.xls differ diff --git a/module-2/Interactive-Viz/data/Online Retail.xlsx b/module-2/Interactive-Viz/data/Online Retail.xlsx index 1553d7b1..66303618 100644 Binary files a/module-2/Interactive-Viz/data/Online Retail.xlsx and b/module-2/Interactive-Viz/data/Online Retail.xlsx differ diff --git a/module-3/Data-Cleaning-Challenge/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/module-3/Data-Cleaning-Challenge/.ipynb_checkpoints/Untitled-checkpoint.ipynb new file mode 100644 index 00000000..81f11a33 --- /dev/null +++ b/module-3/Data-Cleaning-Challenge/.ipynb_checkpoints/Untitled-checkpoint.ipynb @@ -0,0 +1,513 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# import all needed libraries\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "#read in the csv file\n", + "iris = pd.read_csv(\"iris-data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "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", + "
sepal_length_cmsepal_width_cmpetal_length_cmpetal_width_cmclass
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
\n", + "
" + ], + "text/plain": [ + " sepal_length_cm sepal_width_cm petal_length_cm petal_width_cm \\\n", + "0 5.1 3.5 1.4 0.2 \n", + "1 4.9 3.0 1.4 0.2 \n", + "2 4.7 3.2 1.3 0.2 \n", + "3 4.6 3.1 1.5 0.2 \n", + "4 5.0 3.6 1.4 0.2 \n", + "\n", + " class \n", + "0 Iris-setosa \n", + "1 Iris-setosa \n", + "2 Iris-setosa \n", + "3 Iris-setosa \n", + "4 Iris-setosa " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# look at the head of the data\n", + "iris.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "150" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(iris)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "sepal_length_cm 0\n", + "sepal_width_cm 0\n", + "petal_length_cm 0\n", + "petal_width_cm 5\n", + "class 0\n", + "dtype: int64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# find columns with missing values\n", + "iris.isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "sepal_length_cm float64\n", + "sepal_width_cm float64\n", + "petal_length_cm float64\n", + "petal_width_cm float64\n", + "class object\n", + "dtype: object" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# inspect the type of each column\n", + "iris.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "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", + "
sepal_length_cmsepal_width_cmpetal_length_cmpetal_width_cm
count150.000000150.000000150.000000145.000000
mean5.6446273.0546673.7586671.236552
std1.3127810.4331231.7644200.755058
min0.0550002.0000001.0000000.100000
25%5.1000002.8000001.6000000.400000
50%5.7000003.0000004.3500001.300000
75%6.4000003.3000005.1000001.800000
max7.9000004.4000006.9000002.500000
\n", + "
" + ], + "text/plain": [ + " sepal_length_cm sepal_width_cm petal_length_cm petal_width_cm\n", + "count 150.000000 150.000000 150.000000 145.000000\n", + "mean 5.644627 3.054667 3.758667 1.236552\n", + "std 1.312781 0.433123 1.764420 0.755058\n", + "min 0.055000 2.000000 1.000000 0.100000\n", + "25% 5.100000 2.800000 1.600000 0.400000\n", + "50% 5.700000 3.000000 4.350000 1.300000\n", + "75% 6.400000 3.300000 5.100000 1.800000\n", + "max 7.900000 4.400000 6.900000 2.500000" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# describe statistics about the numerical values \n", + "iris.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['Iris-setosa', 'Iris-setossa', 'Iris-versicolor', 'versicolor',\n", + " 'Iris-virginica'], dtype=object)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# look at the unique values \n", + "iris['class'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "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", + "
sepal_length_cmsepal_width_cmpetal_length_cmpetal_width_cmclass
75.03.41.5NaNIris-setosa
84.42.91.4NaNIris-setosa
94.93.11.5NaNIris-setosa
105.43.71.5NaNIris-setosa
114.83.41.6NaNIris-setosa
\n", + "
" + ], + "text/plain": [ + " sepal_length_cm sepal_width_cm petal_length_cm petal_width_cm \\\n", + "7 5.0 3.4 1.5 NaN \n", + "8 4.4 2.9 1.4 NaN \n", + "9 4.9 3.1 1.5 NaN \n", + "10 5.4 3.7 1.5 NaN \n", + "11 4.8 3.4 1.6 NaN \n", + "\n", + " class \n", + "7 Iris-setosa \n", + "8 Iris-setosa \n", + "9 Iris-setosa \n", + "10 Iris-setosa \n", + "11 Iris-setosa " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Display the columns with null values \n", + "iris[iris['petal_width_cm'].isnull()]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# key in the mean for missing values \n", + "iris_clean = iris.fillna(iris['petal_width_cm'][iris['class']=='Iris-setosa'].mean())" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[,\n", + " ],\n", + " [,\n", + " ]],\n", + " dtype=object)" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plot histograms on different columns\n", + "iris.hist(figsize = (15,15))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/module-3/Data-Cleaning-Challenge/Untitled.ipynb b/module-3/Data-Cleaning-Challenge/Untitled.ipynb new file mode 100644 index 00000000..81f11a33 --- /dev/null +++ b/module-3/Data-Cleaning-Challenge/Untitled.ipynb @@ -0,0 +1,513 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# import all needed libraries\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "#read in the csv file\n", + "iris = pd.read_csv(\"iris-data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "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", + "
sepal_length_cmsepal_width_cmpetal_length_cmpetal_width_cmclass
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
\n", + "
" + ], + "text/plain": [ + " sepal_length_cm sepal_width_cm petal_length_cm petal_width_cm \\\n", + "0 5.1 3.5 1.4 0.2 \n", + "1 4.9 3.0 1.4 0.2 \n", + "2 4.7 3.2 1.3 0.2 \n", + "3 4.6 3.1 1.5 0.2 \n", + "4 5.0 3.6 1.4 0.2 \n", + "\n", + " class \n", + "0 Iris-setosa \n", + "1 Iris-setosa \n", + "2 Iris-setosa \n", + "3 Iris-setosa \n", + "4 Iris-setosa " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# look at the head of the data\n", + "iris.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "150" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(iris)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "sepal_length_cm 0\n", + "sepal_width_cm 0\n", + "petal_length_cm 0\n", + "petal_width_cm 5\n", + "class 0\n", + "dtype: int64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# find columns with missing values\n", + "iris.isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "sepal_length_cm float64\n", + "sepal_width_cm float64\n", + "petal_length_cm float64\n", + "petal_width_cm float64\n", + "class object\n", + "dtype: object" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# inspect the type of each column\n", + "iris.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "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", + "
sepal_length_cmsepal_width_cmpetal_length_cmpetal_width_cm
count150.000000150.000000150.000000145.000000
mean5.6446273.0546673.7586671.236552
std1.3127810.4331231.7644200.755058
min0.0550002.0000001.0000000.100000
25%5.1000002.8000001.6000000.400000
50%5.7000003.0000004.3500001.300000
75%6.4000003.3000005.1000001.800000
max7.9000004.4000006.9000002.500000
\n", + "
" + ], + "text/plain": [ + " sepal_length_cm sepal_width_cm petal_length_cm petal_width_cm\n", + "count 150.000000 150.000000 150.000000 145.000000\n", + "mean 5.644627 3.054667 3.758667 1.236552\n", + "std 1.312781 0.433123 1.764420 0.755058\n", + "min 0.055000 2.000000 1.000000 0.100000\n", + "25% 5.100000 2.800000 1.600000 0.400000\n", + "50% 5.700000 3.000000 4.350000 1.300000\n", + "75% 6.400000 3.300000 5.100000 1.800000\n", + "max 7.900000 4.400000 6.900000 2.500000" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# describe statistics about the numerical values \n", + "iris.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['Iris-setosa', 'Iris-setossa', 'Iris-versicolor', 'versicolor',\n", + " 'Iris-virginica'], dtype=object)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# look at the unique values \n", + "iris['class'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "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", + "
sepal_length_cmsepal_width_cmpetal_length_cmpetal_width_cmclass
75.03.41.5NaNIris-setosa
84.42.91.4NaNIris-setosa
94.93.11.5NaNIris-setosa
105.43.71.5NaNIris-setosa
114.83.41.6NaNIris-setosa
\n", + "
" + ], + "text/plain": [ + " sepal_length_cm sepal_width_cm petal_length_cm petal_width_cm \\\n", + "7 5.0 3.4 1.5 NaN \n", + "8 4.4 2.9 1.4 NaN \n", + "9 4.9 3.1 1.5 NaN \n", + "10 5.4 3.7 1.5 NaN \n", + "11 4.8 3.4 1.6 NaN \n", + "\n", + " class \n", + "7 Iris-setosa \n", + "8 Iris-setosa \n", + "9 Iris-setosa \n", + "10 Iris-setosa \n", + "11 Iris-setosa " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Display the columns with null values \n", + "iris[iris['petal_width_cm'].isnull()]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# key in the mean for missing values \n", + "iris_clean = iris.fillna(iris['petal_width_cm'][iris['class']=='Iris-setosa'].mean())" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[,\n", + " ],\n", + " [,\n", + " ]],\n", + " dtype=object)" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plot histograms on different columns\n", + "iris.hist(figsize = (15,15))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}