{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Sales Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Import necessary libraries"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import pandas as pd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Merge data from each month into one CSV"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"path = \"./Sales_Data\"\n",
"files = [file for file in os.listdir(path) if not file.startswith('.')] # Ignore hidden files\n",
"\n",
"all_months_data = pd.DataFrame()\n",
"\n",
"for file in files:\n",
" current_data = pd.read_csv(path+\"/\"+file)\n",
" all_months_data = pd.concat([all_months_data, current_data])\n",
" \n",
"all_months_data.to_csv(\"all_data_copy.csv\", index=False)\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Read in updated dataframe"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Order ID \n",
" Product \n",
" Quantity Ordered \n",
" Price Each \n",
" Order Date \n",
" Purchase Address \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 176558 \n",
" USB-C Charging Cable \n",
" 2 \n",
" 11.95 \n",
" 04/19/19 08:46 \n",
" 917 1st St, Dallas, TX 75001 \n",
" \n",
" \n",
" 1 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 2 \n",
" 176559 \n",
" Bose SoundSport Headphones \n",
" 1 \n",
" 99.99 \n",
" 04/07/19 22:30 \n",
" 682 Chestnut St, Boston, MA 02215 \n",
" \n",
" \n",
" 3 \n",
" 176560 \n",
" Google Phone \n",
" 1 \n",
" 600 \n",
" 04/12/19 14:38 \n",
" 669 Spruce St, Los Angeles, CA 90001 \n",
" \n",
" \n",
" 4 \n",
" 176560 \n",
" Wired Headphones \n",
" 1 \n",
" 11.99 \n",
" 04/12/19 14:38 \n",
" 669 Spruce St, Los Angeles, CA 90001 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Order ID Product Quantity Ordered Price Each \\\n",
"0 176558 USB-C Charging Cable 2 11.95 \n",
"1 NaN NaN NaN NaN \n",
"2 176559 Bose SoundSport Headphones 1 99.99 \n",
"3 176560 Google Phone 1 600 \n",
"4 176560 Wired Headphones 1 11.99 \n",
"\n",
" Order Date Purchase Address \n",
"0 04/19/19 08:46 917 1st St, Dallas, TX 75001 \n",
"1 NaN NaN \n",
"2 04/07/19 22:30 682 Chestnut St, Boston, MA 02215 \n",
"3 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 \n",
"4 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_data = pd.read_csv(\"all_data.csv\")\n",
"all_data.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Clean up the data!\n",
"The first step in this is figuring out what we need to clean. I have found in practice, that you find things you need to clean as you perform operations and get errors. Based on the error, you decide how you should go about cleaning the data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Drop rows of NAN"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Order ID \n",
" Product \n",
" Quantity Ordered \n",
" Price Each \n",
" Order Date \n",
" Purchase Address \n",
" \n",
" \n",
" \n",
" \n",
" 1 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 356 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 735 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 1433 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 1553 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Order ID Product Quantity Ordered Price Each Order Date Purchase Address\n",
"1 NaN NaN NaN NaN NaN NaN\n",
"356 NaN NaN NaN NaN NaN NaN\n",
"735 NaN NaN NaN NaN NaN NaN\n",
"1433 NaN NaN NaN NaN NaN NaN\n",
"1553 NaN NaN NaN NaN NaN NaN"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Order ID \n",
" Product \n",
" Quantity Ordered \n",
" Price Each \n",
" Order Date \n",
" Purchase Address \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 176558 \n",
" USB-C Charging Cable \n",
" 2 \n",
" 11.95 \n",
" 04/19/19 08:46 \n",
" 917 1st St, Dallas, TX 75001 \n",
" \n",
" \n",
" 2 \n",
" 176559 \n",
" Bose SoundSport Headphones \n",
" 1 \n",
" 99.99 \n",
" 04/07/19 22:30 \n",
" 682 Chestnut St, Boston, MA 02215 \n",
" \n",
" \n",
" 3 \n",
" 176560 \n",
" Google Phone \n",
" 1 \n",
" 600 \n",
" 04/12/19 14:38 \n",
" 669 Spruce St, Los Angeles, CA 90001 \n",
" \n",
" \n",
" 4 \n",
" 176560 \n",
" Wired Headphones \n",
" 1 \n",
" 11.99 \n",
" 04/12/19 14:38 \n",
" 669 Spruce St, Los Angeles, CA 90001 \n",
" \n",
" \n",
" 5 \n",
" 176561 \n",
" Wired Headphones \n",
" 1 \n",
" 11.99 \n",
" 04/30/19 09:27 \n",
" 333 8th St, Los Angeles, CA 90001 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Order ID Product Quantity Ordered Price Each \\\n",
"0 176558 USB-C Charging Cable 2 11.95 \n",
"2 176559 Bose SoundSport Headphones 1 99.99 \n",
"3 176560 Google Phone 1 600 \n",
"4 176560 Wired Headphones 1 11.99 \n",
"5 176561 Wired Headphones 1 11.99 \n",
"\n",
" Order Date Purchase Address \n",
"0 04/19/19 08:46 917 1st St, Dallas, TX 75001 \n",
"2 04/07/19 22:30 682 Chestnut St, Boston, MA 02215 \n",
"3 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 \n",
"4 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 \n",
"5 04/30/19 09:27 333 8th St, Los Angeles, CA 90001 "
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Find NAN\n",
"nan_df = all_data[all_data.isna().any(axis=1)]\n",
"display(nan_df.head())\n",
"\n",
"all_data = all_data.dropna(how='all')\n",
"all_data.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Get rid of text in order date column"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"all_data = all_data[all_data['Order Date'].str[0:2]!='Or']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Make columns correct type"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"all_data['Quantity Ordered'] = pd.to_numeric(all_data['Quantity Ordered'])\n",
"all_data['Price Each'] = pd.to_numeric(all_data['Price Each'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Augment data with additional columns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Add month column"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Order ID \n",
" Product \n",
" Quantity Ordered \n",
" Price Each \n",
" Order Date \n",
" Purchase Address \n",
" Month \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 176558 \n",
" USB-C Charging Cable \n",
" 2 \n",
" 11.95 \n",
" 04/19/19 08:46 \n",
" 917 1st St, Dallas, TX 75001 \n",
" 4 \n",
" \n",
" \n",
" 2 \n",
" 176559 \n",
" Bose SoundSport Headphones \n",
" 1 \n",
" 99.99 \n",
" 04/07/19 22:30 \n",
" 682 Chestnut St, Boston, MA 02215 \n",
" 4 \n",
" \n",
" \n",
" 3 \n",
" 176560 \n",
" Google Phone \n",
" 1 \n",
" 600.00 \n",
" 04/12/19 14:38 \n",
" 669 Spruce St, Los Angeles, CA 90001 \n",
" 4 \n",
" \n",
" \n",
" 4 \n",
" 176560 \n",
" Wired Headphones \n",
" 1 \n",
" 11.99 \n",
" 04/12/19 14:38 \n",
" 669 Spruce St, Los Angeles, CA 90001 \n",
" 4 \n",
" \n",
" \n",
" 5 \n",
" 176561 \n",
" Wired Headphones \n",
" 1 \n",
" 11.99 \n",
" 04/30/19 09:27 \n",
" 333 8th St, Los Angeles, CA 90001 \n",
" 4 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Order ID Product Quantity Ordered Price Each \\\n",
"0 176558 USB-C Charging Cable 2 11.95 \n",
"2 176559 Bose SoundSport Headphones 1 99.99 \n",
"3 176560 Google Phone 1 600.00 \n",
"4 176560 Wired Headphones 1 11.99 \n",
"5 176561 Wired Headphones 1 11.99 \n",
"\n",
" Order Date Purchase Address Month \n",
"0 04/19/19 08:46 917 1st St, Dallas, TX 75001 4 \n",
"2 04/07/19 22:30 682 Chestnut St, Boston, MA 02215 4 \n",
"3 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 \n",
"4 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 \n",
"5 04/30/19 09:27 333 8th St, Los Angeles, CA 90001 4 "
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_data['Month'] = all_data['Order Date'].str[0:2]\n",
"all_data['Month'] = all_data['Month'].astype('int32')\n",
"all_data.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Add month column (alternative method)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Order ID \n",
" Product \n",
" Quantity Ordered \n",
" Price Each \n",
" Order Date \n",
" Purchase Address \n",
" Month \n",
" Month 2 \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 176558 \n",
" USB-C Charging Cable \n",
" 2 \n",
" 11.95 \n",
" 04/19/19 08:46 \n",
" 917 1st St, Dallas, TX 75001 \n",
" 4 \n",
" 4 \n",
" \n",
" \n",
" 2 \n",
" 176559 \n",
" Bose SoundSport Headphones \n",
" 1 \n",
" 99.99 \n",
" 04/07/19 22:30 \n",
" 682 Chestnut St, Boston, MA 02215 \n",
" 4 \n",
" 4 \n",
" \n",
" \n",
" 3 \n",
" 176560 \n",
" Google Phone \n",
" 1 \n",
" 600 \n",
" 04/12/19 14:38 \n",
" 669 Spruce St, Los Angeles, CA 90001 \n",
" 4 \n",
" 4 \n",
" \n",
" \n",
" 4 \n",
" 176560 \n",
" Wired Headphones \n",
" 1 \n",
" 11.99 \n",
" 04/12/19 14:38 \n",
" 669 Spruce St, Los Angeles, CA 90001 \n",
" 4 \n",
" 4 \n",
" \n",
" \n",
" 5 \n",
" 176561 \n",
" Wired Headphones \n",
" 1 \n",
" 11.99 \n",
" 04/30/19 09:27 \n",
" 333 8th St, Los Angeles, CA 90001 \n",
" 4 \n",
" 4 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Order ID Product Quantity Ordered Price Each \\\n",
"0 176558 USB-C Charging Cable 2 11.95 \n",
"2 176559 Bose SoundSport Headphones 1 99.99 \n",
"3 176560 Google Phone 1 600 \n",
"4 176560 Wired Headphones 1 11.99 \n",
"5 176561 Wired Headphones 1 11.99 \n",
"\n",
" Order Date Purchase Address Month Month 2 \n",
"0 04/19/19 08:46 917 1st St, Dallas, TX 75001 4 4 \n",
"2 04/07/19 22:30 682 Chestnut St, Boston, MA 02215 4 4 \n",
"3 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 4 \n",
"4 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 4 \n",
"5 04/30/19 09:27 333 8th St, Los Angeles, CA 90001 4 4 "
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_data['Month 2'] = pd.to_datetime(all_data['Order Date']).dt.month\n",
"all_data.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Add city column"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Order ID \n",
" Product \n",
" Quantity Ordered \n",
" Price Each \n",
" Order Date \n",
" Purchase Address \n",
" Month \n",
" City \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 176558 \n",
" USB-C Charging Cable \n",
" 2 \n",
" 11.95 \n",
" 04/19/19 08:46 \n",
" 917 1st St, Dallas, TX 75001 \n",
" 4 \n",
" Dallas (TX) \n",
" \n",
" \n",
" 2 \n",
" 176559 \n",
" Bose SoundSport Headphones \n",
" 1 \n",
" 99.99 \n",
" 04/07/19 22:30 \n",
" 682 Chestnut St, Boston, MA 02215 \n",
" 4 \n",
" Boston (MA) \n",
" \n",
" \n",
" 3 \n",
" 176560 \n",
" Google Phone \n",
" 1 \n",
" 600.00 \n",
" 04/12/19 14:38 \n",
" 669 Spruce St, Los Angeles, CA 90001 \n",
" 4 \n",
" Los Angeles (CA) \n",
" \n",
" \n",
" 4 \n",
" 176560 \n",
" Wired Headphones \n",
" 1 \n",
" 11.99 \n",
" 04/12/19 14:38 \n",
" 669 Spruce St, Los Angeles, CA 90001 \n",
" 4 \n",
" Los Angeles (CA) \n",
" \n",
" \n",
" 5 \n",
" 176561 \n",
" Wired Headphones \n",
" 1 \n",
" 11.99 \n",
" 04/30/19 09:27 \n",
" 333 8th St, Los Angeles, CA 90001 \n",
" 4 \n",
" Los Angeles (CA) \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Order ID Product Quantity Ordered Price Each \\\n",
"0 176558 USB-C Charging Cable 2 11.95 \n",
"2 176559 Bose SoundSport Headphones 1 99.99 \n",
"3 176560 Google Phone 1 600.00 \n",
"4 176560 Wired Headphones 1 11.99 \n",
"5 176561 Wired Headphones 1 11.99 \n",
"\n",
" Order Date Purchase Address Month \\\n",
"0 04/19/19 08:46 917 1st St, Dallas, TX 75001 4 \n",
"2 04/07/19 22:30 682 Chestnut St, Boston, MA 02215 4 \n",
"3 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 \n",
"4 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 \n",
"5 04/30/19 09:27 333 8th St, Los Angeles, CA 90001 4 \n",
"\n",
" City \n",
"0 Dallas (TX) \n",
"2 Boston (MA) \n",
"3 Los Angeles (CA) \n",
"4 Los Angeles (CA) \n",
"5 Los Angeles (CA) "
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def get_city(address):\n",
" return address.split(\",\")[1].strip(\" \")\n",
"\n",
"def get_state(address):\n",
" return address.split(\",\")[2].split(\" \")[1]\n",
"\n",
"all_data['City'] = all_data['Purchase Address'].apply(lambda x: f\"{get_city(x)} ({get_state(x)})\")\n",
"all_data.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data Exploration!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Question 1: What was the best month for sales? How much was earned that month? "
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"all_data['Sales'] = all_data['Quantity Ordered'].astype('int') * all_data['Price Each'].astype('float')"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Quantity Ordered \n",
" Price Each \n",
" Sales \n",
" \n",
" \n",
" Month \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 1 \n",
" 10903 \n",
" 1.811768e+06 \n",
" 1.822257e+06 \n",
" \n",
" \n",
" 2 \n",
" 13449 \n",
" 2.188885e+06 \n",
" 2.202022e+06 \n",
" \n",
" \n",
" 3 \n",
" 17005 \n",
" 2.791208e+06 \n",
" 2.807100e+06 \n",
" \n",
" \n",
" 4 \n",
" 20558 \n",
" 3.367671e+06 \n",
" 3.390670e+06 \n",
" \n",
" \n",
" 5 \n",
" 18667 \n",
" 3.135125e+06 \n",
" 3.152607e+06 \n",
" \n",
" \n",
" 6 \n",
" 15253 \n",
" 2.562026e+06 \n",
" 2.577802e+06 \n",
" \n",
" \n",
" 7 \n",
" 16072 \n",
" 2.632540e+06 \n",
" 2.647776e+06 \n",
" \n",
" \n",
" 8 \n",
" 13448 \n",
" 2.230345e+06 \n",
" 2.244468e+06 \n",
" \n",
" \n",
" 9 \n",
" 13109 \n",
" 2.084992e+06 \n",
" 2.097560e+06 \n",
" \n",
" \n",
" 10 \n",
" 22703 \n",
" 3.715555e+06 \n",
" 3.736727e+06 \n",
" \n",
" \n",
" 11 \n",
" 19798 \n",
" 3.180601e+06 \n",
" 3.199603e+06 \n",
" \n",
" \n",
" 12 \n",
" 28114 \n",
" 4.588415e+06 \n",
" 4.613443e+06 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Quantity Ordered Price Each Sales\n",
"Month \n",
"1 10903 1.811768e+06 1.822257e+06\n",
"2 13449 2.188885e+06 2.202022e+06\n",
"3 17005 2.791208e+06 2.807100e+06\n",
"4 20558 3.367671e+06 3.390670e+06\n",
"5 18667 3.135125e+06 3.152607e+06\n",
"6 15253 2.562026e+06 2.577802e+06\n",
"7 16072 2.632540e+06 2.647776e+06\n",
"8 13448 2.230345e+06 2.244468e+06\n",
"9 13109 2.084992e+06 2.097560e+06\n",
"10 22703 3.715555e+06 3.736727e+06\n",
"11 19798 3.180601e+06 3.199603e+06\n",
"12 28114 4.588415e+06 4.613443e+06"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_data.groupby(['Month']).sum()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"range(1, 13)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"months = range(1,13)\n",
"print(months)\n",
"\n",
"plt.bar(months,all_data.groupby(['Month']).sum()['Sales'])\n",
"plt.xticks(months)\n",
"plt.ylabel('Sales in USD ($)')\n",
"plt.xlabel('Month number')\n",
"plt.show()\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Question 2: What city sold the most product?"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Quantity Ordered \n",
" Price Each \n",
" Month \n",
" Sales \n",
" \n",
" \n",
" City \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" Atlanta (GA) \n",
" 16602 \n",
" 2.779908e+06 \n",
" 104794 \n",
" 2.795499e+06 \n",
" \n",
" \n",
" Austin (TX) \n",
" 11153 \n",
" 1.809874e+06 \n",
" 69829 \n",
" 1.819582e+06 \n",
" \n",
" \n",
" Boston (MA) \n",
" 22528 \n",
" 3.637410e+06 \n",
" 141112 \n",
" 3.661642e+06 \n",
" \n",
" \n",
" Dallas (TX) \n",
" 16730 \n",
" 2.752628e+06 \n",
" 104620 \n",
" 2.767975e+06 \n",
" \n",
" \n",
" Los Angeles (CA) \n",
" 33289 \n",
" 5.421435e+06 \n",
" 208325 \n",
" 5.452571e+06 \n",
" \n",
" \n",
" New York City (NY) \n",
" 27932 \n",
" 4.635371e+06 \n",
" 175741 \n",
" 4.664317e+06 \n",
" \n",
" \n",
" Portland (ME) \n",
" 2750 \n",
" 4.471893e+05 \n",
" 17144 \n",
" 4.497583e+05 \n",
" \n",
" \n",
" Portland (OR) \n",
" 11303 \n",
" 1.860558e+06 \n",
" 70621 \n",
" 1.870732e+06 \n",
" \n",
" \n",
" San Francisco (CA) \n",
" 50239 \n",
" 8.211462e+06 \n",
" 315520 \n",
" 8.262204e+06 \n",
" \n",
" \n",
" Seattle (WA) \n",
" 16553 \n",
" 2.733296e+06 \n",
" 104941 \n",
" 2.747755e+06 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Quantity Ordered Price Each Month Sales\n",
"City \n",
"Atlanta (GA) 16602 2.779908e+06 104794 2.795499e+06\n",
"Austin (TX) 11153 1.809874e+06 69829 1.819582e+06\n",
"Boston (MA) 22528 3.637410e+06 141112 3.661642e+06\n",
"Dallas (TX) 16730 2.752628e+06 104620 2.767975e+06\n",
"Los Angeles (CA) 33289 5.421435e+06 208325 5.452571e+06\n",
"New York City (NY) 27932 4.635371e+06 175741 4.664317e+06\n",
"Portland (ME) 2750 4.471893e+05 17144 4.497583e+05\n",
"Portland (OR) 11303 1.860558e+06 70621 1.870732e+06\n",
"San Francisco (CA) 50239 8.211462e+06 315520 8.262204e+06\n",
"Seattle (WA) 16553 2.733296e+06 104941 2.747755e+06"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_data.groupby(['City']).sum()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"keys = [city for city, df in all_data.groupby(['City'])]\n",
"\n",
"plt.bar(keys,all_data.groupby(['City']).sum()['Sales'])\n",
"plt.ylabel('Sales in USD ($)')\n",
"plt.xlabel('Month number')\n",
"plt.xticks(keys, rotation='vertical', size=8)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Question 3: What time should we display advertisements to maximize likelihood of customer's buying product?"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Order ID \n",
" Product \n",
" Quantity Ordered \n",
" Price Each \n",
" Order Date \n",
" Purchase Address \n",
" Month \n",
" City \n",
" Sales \n",
" Hour \n",
" Minute \n",
" Count \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 176558 \n",
" USB-C Charging Cable \n",
" 2 \n",
" 11.95 \n",
" 04/19/19 08:46 \n",
" 917 1st St, Dallas, TX 75001 \n",
" 4 \n",
" Dallas (TX) \n",
" 23.90 \n",
" 8 \n",
" 46 \n",
" 1 \n",
" \n",
" \n",
" 2 \n",
" 176559 \n",
" Bose SoundSport Headphones \n",
" 1 \n",
" 99.99 \n",
" 04/07/19 22:30 \n",
" 682 Chestnut St, Boston, MA 02215 \n",
" 4 \n",
" Boston (MA) \n",
" 99.99 \n",
" 22 \n",
" 30 \n",
" 1 \n",
" \n",
" \n",
" 3 \n",
" 176560 \n",
" Google Phone \n",
" 1 \n",
" 600.00 \n",
" 04/12/19 14:38 \n",
" 669 Spruce St, Los Angeles, CA 90001 \n",
" 4 \n",
" Los Angeles (CA) \n",
" 600.00 \n",
" 14 \n",
" 38 \n",
" 1 \n",
" \n",
" \n",
" 4 \n",
" 176560 \n",
" Wired Headphones \n",
" 1 \n",
" 11.99 \n",
" 04/12/19 14:38 \n",
" 669 Spruce St, Los Angeles, CA 90001 \n",
" 4 \n",
" Los Angeles (CA) \n",
" 11.99 \n",
" 14 \n",
" 38 \n",
" 1 \n",
" \n",
" \n",
" 5 \n",
" 176561 \n",
" Wired Headphones \n",
" 1 \n",
" 11.99 \n",
" 04/30/19 09:27 \n",
" 333 8th St, Los Angeles, CA 90001 \n",
" 4 \n",
" Los Angeles (CA) \n",
" 11.99 \n",
" 9 \n",
" 27 \n",
" 1 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Order ID Product Quantity Ordered Price Each \\\n",
"0 176558 USB-C Charging Cable 2 11.95 \n",
"2 176559 Bose SoundSport Headphones 1 99.99 \n",
"3 176560 Google Phone 1 600.00 \n",
"4 176560 Wired Headphones 1 11.99 \n",
"5 176561 Wired Headphones 1 11.99 \n",
"\n",
" Order Date Purchase Address Month \\\n",
"0 04/19/19 08:46 917 1st St, Dallas, TX 75001 4 \n",
"2 04/07/19 22:30 682 Chestnut St, Boston, MA 02215 4 \n",
"3 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 \n",
"4 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 \n",
"5 04/30/19 09:27 333 8th St, Los Angeles, CA 90001 4 \n",
"\n",
" City Sales Hour Minute Count \n",
"0 Dallas (TX) 23.90 8 46 1 \n",
"2 Boston (MA) 99.99 22 30 1 \n",
"3 Los Angeles (CA) 600.00 14 38 1 \n",
"4 Los Angeles (CA) 11.99 14 38 1 \n",
"5 Los Angeles (CA) 11.99 9 27 1 "
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Add hour column\n",
"all_data['Hour'] = pd.to_datetime(all_data['Order Date']).dt.hour\n",
"all_data['Minute'] = pd.to_datetime(all_data['Order Date']).dt.minute\n",
"all_data['Count'] = 1\n",
"all_data.head()\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"keys = [pair for pair, df in all_data.groupby(['Hour'])]\n",
"\n",
"plt.plot(keys, all_data.groupby(['Hour']).count()['Count'])\n",
"plt.xticks(keys)\n",
"plt.grid()\n",
"plt.show()\n",
"\n",
"# My recommendation is slightly before 11am or 7pm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Question 4: What products are most often sold together?"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\keith\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:5: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" \"\"\"\n"
]
}
],
"source": [
"# https://stackoverflow.com/questions/43348194/pandas-select-rows-if-id-appear-several-time\n",
"df = all_data[all_data['Order ID'].duplicated(keep=False)]\n",
"\n",
"# Referenced: https://stackoverflow.com/questions/27298178/concatenate-strings-from-several-rows-using-pandas-groupby\n",
"df['Grouped'] = df.groupby('Order ID')['Product'].transform(lambda x: ','.join(x))\n",
"df2 = df[['Order ID', 'Grouped']].drop_duplicates()"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"('iPhone', 'Lightning Charging Cable') 1005\n",
"('Google Phone', 'USB-C Charging Cable') 987\n",
"('iPhone', 'Wired Headphones') 447\n",
"('Google Phone', 'Wired Headphones') 414\n",
"('Vareebadd Phone', 'USB-C Charging Cable') 361\n",
"('iPhone', 'Apple Airpods Headphones') 360\n",
"('Google Phone', 'Bose SoundSport Headphones') 220\n",
"('USB-C Charging Cable', 'Wired Headphones') 160\n",
"('Vareebadd Phone', 'Wired Headphones') 143\n",
"('Lightning Charging Cable', 'Wired Headphones') 92\n"
]
}
],
"source": [
"# Referenced: https://stackoverflow.com/questions/52195887/counting-unique-pairs-of-numbers-into-a-python-dictionary\n",
"from itertools import combinations\n",
"from collections import Counter\n",
"\n",
"count = Counter()\n",
"\n",
"for row in df2['Grouped']:\n",
" row_list = row.split(',')\n",
" count.update(Counter(combinations(row_list, 2)))\n",
"\n",
"for key,value in count.most_common(10):\n",
" print(key, value)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### What product sold the most? Why do you think it sold the most?"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAFoCAYAAAC155dTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydd5hkVbW33x+MCF5FQIIISBCuikjQIZgVlKRX0E8UUECUiwGvmAWuCmLCiBEUJQyiIIgIwsBIjiogGRMDgiBIuAQDKgz8vj/WLrqmpnr67Do13dPT632eeqrqdK19dlVXnbX3irJNkiRJMrVZbKInkCRJkkw8qQySJEmSVAZJkiRJKoMkSZKEVAZJkiQJMG2iJzAoyy+/vNdYY42JnkaSJMmkYfnll2fWrFmzbG/d+7dJqwzWWGMNLr/88omeRpIkyaRC0vL9jqeZKEmSJEllkCRJkqQySJIkSUhlkCRJkpDKIEmSJCGVQZIkSUIqgyRJkoRUBkmSJAmpDJIkSRImcQZyMrGssc9p1TI3H/TqBTCTJEmGQe4MkiRJklQGSZIkSQNlIGlJSZdKulrS9ZI+WY6vKelXkm6Q9CNJS5Tjjy/PZ5e/r9E11r7l+O8lbdV1fOtybLakfYb/NpMkSZL50WRn8G9gc9sbABsCW0vaDPg8cLDtdYD7gLeX178duM/22sDB5XVIWhfYEXgOsDVwiKTFJS0OfAvYBlgX2Km8NkmSJBknxlQGDv5enj6u3AxsDvy4HJ8BbF8eb1eeU/6+hSSV48fZ/rftPwKzgU3Kbbbtm2w/BBxXXpskSZKME418BmUFfxVwF3AmcCNwv+055SW3AauUx6sAtwKUvz8APKX7eI/MaMeTJEmScaKRMrD9iO0NgVWJlfyz+72s3GuUv9UenwdJe0q6XNLld99999gTT5IkSRpRFU1k+37gPGAzYBlJnTyFVYHby+PbgNUAyt+fDNzbfbxHZrTj/c5/mO3ptqevsMIKNVNPkiRJ5kOTaKIVJC1THi8FvBL4LXAu8Ibyst2Ak8vjU8pzyt/Pse1yfMcSbbQmsA5wKXAZsE6JTlqCcDKfMow3lyRJkjSjSQbyysCMEvWzGHC87VMl/QY4TtKngSuBw8vrDwe+L2k2sSPYEcD29ZKOB34DzAH2sv0IgKT3ALOAxYEjbF8/tHeYJEmSjMmYysD2NcBGfY7fRPgPeo//C9hhlLE+A3ymz/GZwMwG802SJEkWAJmBnCRJkqQySJIkSVIZJEmSJKQySJIkSUhlkCRJkpDKIEmSJCGVQZIkSUIqgyRJkoRUBkmSJAmpDJIkSRKa1SZKFkHW2Oe0apmbD3r1AphJkiQLA7kzSJIkSVIZJEmSJKkMkiRJElIZJEmSJKQySJIkSUhlkCRJkpDKIEmSJCGVQZIkSUIqgyRJkoRUBkmSJAmpDJIkSRJSGSRJkiSkMkiSJElIZZAkSZLQQBlIWk3SuZJ+K+l6SXuX4wdI+rOkq8pt2y6ZfSXNlvR7SVt1Hd+6HJstaZ+u42tK+pWkGyT9SNISw36jSZIkyeg02RnMAT5o+9nAZsBektYtfzvY9oblNhOg/G1H4DnA1sAhkhaXtDjwLWAbYF1gp65xPl/GWge4D3j7kN5fkiRJ0oAxlYHtO2xfUR7/DfgtsMp8RLYDjrP9b9t/BGYDm5TbbNs32X4IOA7YTpKAzYEfF/kZwPaDvqEkSZKkniqfgaQ1gI2AX5VD75F0jaQjJC1bjq0C3Noldls5NtrxpwD3257Tc7zf+feUdLmky+++++6aqSdJkiTzobEykPRE4ETgfbb/ChwKPAPYELgD+HLnpX3EPcDxeQ/ah9mebnv6Cius0HTqSZIkyRg06oEs6XGEIviB7Z8A2L6z6+/fBU4tT28DVusSXxW4vTzud/weYBlJ08ruoPv1SZIkyTjQJJpIwOHAb21/pev4yl0vex1wXXl8CrCjpMdLWhNYB7gUuAxYp0QOLUE4mU+xbeBc4A1Ffjfg5HZvK0mSJKmhyc7gRcAuwLWSrirH9iOigTYkTDo3A+8AsH29pOOB3xCRSHvZfgRA0nuAWcDiwBG2ry/jfRQ4TtKngSsJ5ZMkSZKME2MqA9sX0d+uP3M+Mp8BPtPn+Mx+crZvIqKNkiRJkgkgM5CTJEmSZg7kJEmShZE19jmtWubmg169AGYy+cmdQZIkSZLKIEmSJEllkCRJkpDKIEmSJCEdyEkyZUnna9JN7gySJEmSVAZJkiRJKoMkSZKEVAZJkiQJqQySJEkSUhkkSZIkpDJIkiRJSGWQJEmSkMogSZIkIZVBkiRJQiqDJEmShFQGSZIkCakMkiRJElIZJEmSJKQySJIkSUhlkCRJkpDKIEmSJKFBpzNJqwFHA08FHgUOs/01ScsBPwLWAG4G3mj7PkkCvgZsCzwIvNX2FWWs3YCPlaE/bXtGOf584ChgKWAmsLdtD+k9JkmSLBAWpW5xTXYGc4AP2n42sBmwl6R1gX2As22vA5xdngNsA6xTbnsChwIU5bE/sCmwCbC/pGWLzKHltR25rdu/tSRJkqQpYyoD23d0Vva2/wb8FlgF2A6YUV42A9i+PN4OONrBL4FlJK0MbAWcafte2/cBZwJbl78tbfsXZTdwdNdYSZIkyThQ5TOQtAawEfArYCXbd0AoDGDF8rJVgFu7xG4rx+Z3/LY+x/udf09Jl0u6/O67766ZepIkSTIfGisDSU8ETgTeZ/uv83tpn2Me4Pi8B+3DbE+3PX2FFVYYa8pJkiRJQxopA0mPIxTBD2z/pBy+s5h4KPd3leO3Aat1ia8K3D7G8VX7HE+SJEnGiTGVQYkOOhz4re2vdP3pFGC38ng34OSu47sq2Ax4oJiRZgFbSlq2OI63BGaVv/1N0mblXLt2jZUkSZKMA2OGlgIvAnYBrpV0VTm2H3AQcLyktwN/AnYof5tJhJXOJkJLdwewfa+kTwGXldcdaPve8vhdjISWnl5uSZIkyTgxpjKwfRH97foAW/R5vYG9RhnrCOCIPscvB9Ybay5JkiTJgiEzkJMkSZJUBkmSJEkqgyRJkoRUBkmSJAmpDJIkSRJSGSRJkiSkMkiSJElIZZAkSZKQyiBJkiQhlUGSJElCKoMkSZKEVAZJkiQJqQySJEkSUhkkSZIkpDJIkiRJSGWQJEmSkMogSZIkIZVBkiRJQiqDJEmShFQGSZIkCakMkiRJElIZJEmSJKQySJIkSYBpEz2BZGqyxj6nVcvcfNCrF8BMkiSBBjsDSUdIukvSdV3HDpD0Z0lXldu2XX/bV9JsSb+XtFXX8a3LsdmS9uk6vqakX0m6QdKPJC0xzDeYJEmSjE0TM9FRwNZ9jh9se8NymwkgaV1gR+A5ReYQSYtLWhz4FrANsC6wU3ktwOfLWOsA9wFvb/OGkiRJknrGVAa2LwDubTjedsBxtv9t+4/AbGCTcptt+ybbDwHHAdtJErA58OMiPwPYvvI9JEmSJC1p40B+j6Rrihlp2XJsFeDWrtfcVo6NdvwpwP225/QcT5IkScaRQZXBocAzgA2BO4Avl+Pq81oPcLwvkvaUdLmky+++++66GSdJkiSjMpAysH2n7UdsPwp8lzADQazsV+t66arA7fM5fg+wjKRpPcdHO+9htqfbnr7CCisMMvUkSZKkDwMpA0krdz19HdCJNDoF2FHS4yWtCawDXApcBqxTIoeWIJzMp9g2cC7whiK/G3DyIHNKkiRJBmfMPANJxwIvB5aXdBuwP/BySRsSJp2bgXcA2L5e0vHAb4A5wF62HynjvAeYBSwOHGH7+nKKjwLHSfo0cCVw+NDeXZIkSdKIMZWB7Z36HB71gm37M8Bn+hyfCczsc/wmRsxMSZIkyQSQ5SiSJEmSVAZJkiRJKoMkSZKEVAZJkiQJqQySJEkSsoR1MknJEthJMlxyZ5AkSZKkMkiSJElSGSRJkiSkMkiSJElIZZAkSZKQyiBJkiQhlUGSJElCKoMkSZKEVAZJkiQJqQySJEkSUhkkSZIkpDJIkiRJSGWQJEmSkMogSZIkIZVBkiRJQiqDJEmShFQGSZIkCakMkiRJElIZJEmSJDRQBpKOkHSXpOu6ji0n6UxJN5T7ZctxSfq6pNmSrpH0vC6Z3crrb5C0W9fx50u6tsh8XZKG/SaTJEmS+dNkZ3AUsHXPsX2As22vA5xdngNsA6xTbnsCh0IoD2B/YFNgE2D/jgIpr9mzS673XEmSJMkCZkxlYPsC4N6ew9sBM8rjGcD2XcePdvBLYBlJKwNbAWfavtf2fcCZwNblb0vb/oVtA0d3jZUkSZKME4P6DFayfQdAuV+xHF8FuLXrdbeVY/M7fluf432RtKekyyVdfvfddw849SRJkqSXYTuQ+9n7PcDxvtg+zPZ029NXWGGFAaeYJEmS9DKoMrizmHgo93eV47cBq3W9blXg9jGOr9rneJIkSTKODKoMTgE6EUG7ASd3Hd+1RBVtBjxQzEizgC0lLVscx1sCs8rf/iZpsxJFtGvXWEmSJMk4MW2sF0g6Fng5sLyk24iooIOA4yW9HfgTsEN5+UxgW2A28CCwO4DteyV9CrisvO5A2x2n9LuIiKWlgNPLLUmSJBlHxlQGtnca5U9b9Hmtgb1GGecI4Ig+xy8H1htrHkmSJMmCIzOQkyRJklQGSZIkSSqDJEmShFQGSZIkCakMkiRJElIZJEmSJKQySJIkSUhlkCRJkpDKIEmSJCGVQZIkSUIqgyRJkoQGtYmS4bPGPqdVy9x80KsXwEySJEmC3BkkSZIkqQySJEmSVAZJkiQJ6TNIkiSZMBYm/2HuDJIkSZJUBkmSJEkqgyRJkoT0GQzEwmTnS5IkGQapDCYhqYySJBk2aSZKkiRJUhkkSZIkqQySJEkSWvoMJN0M/A14BJhje7qk5YAfAWsANwNvtH2fJAFfA7YFHgTeavuKMs5uwMfKsJ+2PaPNvJJkPEjfTbIoMYydwStsb2h7enm+D3C27XWAs8tzgG2AdcptT+BQgKI89gc2BTYB9pe07BDmlSRJkjRkQZiJtgM6K/sZwPZdx4928EtgGUkrA1sBZ9q+1/Z9wJnA1gtgXkmSJMkotFUGBn4u6deS9izHVrJ9B0C5X7EcXwW4tUv2tnJstONJkiTJONE2z+BFtm+XtCJwpqTfzee16nPM8zk+7wChcPYEePrTn1471yRJkmQUWikD27eX+7sknUTY/O+UtLLtO4oZ6K7y8tuA1brEVwVuL8df3nP8vFHOdxhwGMD06dP7KowkaUI6f9uTn+GixcBmIkn/IelJncfAlsB1wCnAbuVluwEnl8enALsq2Ax4oJiRZgFbSlq2OI63LMeSJEmScaLNzmAl4KSIGGUa8EPbZ0i6DDhe0tuBPwE7lNfPJMJKZxOhpbsD2L5X0qeAy8rrDrR9b4t5JUmSJJUMrAxs3wRs0Of4/wFb9DluYK9RxjoCOGLQuSRJkiTtmJKF6tLWmSQLB/lbXHjIchRJkiRJKoMkSZIklUGSJElCKoMkSZKEVAZJkiQJqQySJEkSUhkkSZIkpDJIkiRJSGWQJEmSkMogSZIkIZVBkiRJQiqDJEmShFQGSZIkCVO0ammSJAlk1dRucmeQJEmSpDJIkiRJUhkkSZIkpDJIkiRJSGWQJEmSkMogSZIkIZVBkiRJQiqDJEmShEw6S5JJSyZMJcMklUGSTBB5MU8WJhYaM5GkrSX9XtJsSftM9HySJEmmEguFMpC0OPAtYBtgXWAnSetO7KySJEmmDguFMgA2AWbbvsn2Q8BxwHYTPKckSZIpg2xP9ByQ9AZga9t7lOe7AJvafk/P6/YE9ixPnwn8fshTWR64Z4LHmOryC8Mcprr8wjCHyS6/sMyhl3sAbG/d+4eFxYGsPsfm0VK2DwMOW2CTkC63PX0ix5jq8gvDHKa6/MIwh8kuv7DMoYaFxUx0G7Ba1/NVgdsnaC5JkiRTjoVFGVwGrCNpTUlLADsCp0zwnJIkSaYMC4WZyPYcSe8BZgGLA0fYvn4CpjIME1TbMaa6/MIwh6kuvzDMYbLLLyxzaMxC4UBOkiRJJpaFxUyUJEmSTCCpDJIkSZKprQwUvLWl/FYt5T/SUv6tg8ovLEh6arlfStIOklYcp/O+RdIy43GuMeYhSV8awjhPk7RxefyEAeQ3lfQ6SYtJWr3tfCaCIXwG0yStPPyZLfxMaWXgcJhs21L+3S3l15O0ZAv5geffjaSnSlppALlnSHq/pG9LOlTS+yStXTnMD8r9Z4C1gRMq57BhuV9B0oclPauh6PLAjyWdLuldbS4CkhaXtKOk/ymPN24qW/6PS7U8/37Al4DvSFoMOLFS/pvA64B9bT8KfLdSfhlJH5V0WLlftka+jLGJpJ0lbVorW+Tbfga7AacDZxSlUPs9/Gq5f4ukKyV9vkZ+olkoookmmOUlXQtcTSS62fauNQNImglcATxKDPCJCvENgFsl/b7r/C+tkB94/uWC9W5gZeBeYDFJywF/Bg6xfdkY8ocD/wecC8wkkgfXBN4haTnbb2/4Hh7feS+2PyBpm4ZyHb4MbAF8CjgfOBJ4wVhCtr8KfFXS8sBriYvIk4CZtr9YOYdjyrl3sv0NSZ8DXlkh/zzgAkl3Mtj34FW2XyHpXNuPlhDtGp5tewtJ55bni1fK/xj4DnAS8Z0+Edi8qbCk7wH/Jr7Hu0p6h+23Vc6h7Wewh+2XFPk5kp5SKf/ccr+17Y0k/aJSHklPBt4FLAvsB2xj+9TacQYhlQHs3lL+K22EbW/Q8vxt5v8C4P227+8+WEwnuxD5H/PjXaWWVDe/k9QJEW7KBeUi9IWyS3qwQhbgCZIeDzze9rGS3lkjbPseSWcASwFvArYEapXBCra/LemNlXKdOYypvMbgIUmrAC47vH9Xyv+9syKXtBHwQO35bXdW0n+QVHshX932qzpPJJ1VKQ/tP4M5kp5Y5JeiLO4qWEzSJ4AbO+NVykMsKr4F7Gf7EUnvA8ZFGUxpM1HhXuCNhBZ+E3BfpfyFwIrAC4GVgItqhCWtKulbkmZJOkTSamNLzcXA87f9ddv39zGrPNf2NxrIPwQg6eDOsXIxP9b2wxXz2A94C3CP7X8B/6+pbOEY4GTg2+X8f2wiJOnZkv5X0gXED/DvwPbdF6UK7pL0JsLc8zrgjhphSVtKOkvStcXMNObn38O7iR3SssBXgf+plH87sAOhiN/CSA2wpswp3+GDJJ1enh8o6cCG8rdJ2ldRyv6j5fnmkhrvLmj/GXyU2OE8u9zvWyn/euL3f2BZnOxXKQ+wlO0zGFEk/Ur1LBCmfJ6BpFOIKqm/BqYT2/zXVMj/ALi+S3492ztVyJ8F7A9cDmwMHGi7Znvdav5ljJOBfWz/VtJ2wJttN17hStqZqDy7P2H//6Lt8yvk9wPWA55V3sNptqtMRZI2I8xdJwOr2b6lgcyJwLHA6bb/UXO+PmMtCexBXEh+B3y3KLam8hcBrwB+Xkwd59R8Dwal2Nb7UnwHTcd52XzGGfO7IGn/0cXdVKFMKMV3tT+wNLG73Mf2ZyrHOAS4BdgJmAGsafu9w55rP9JMBE+2/cPy+PeS3lEpv6rtN5fHsyQ1vggWlrR9cXl8UVlR1NB2/hArwaMlXUXUhdqxiVDXheQ4YgVzEbAbcFXl+VvZeovz8+/A5rZPkvRd4sc4FsvZ/nHlXPti+1/lf3818VlsAlxQMcQj5WZJonJFKOnjRDDBP7vm1ESZnE34KMRIccjO4xpldCGxo1ubMJOcaPuRpsK2P6mIKlsTuNl2452VpAuZt7ClqPS7SNodeCvxf+jMq+Yz+BqwPfCTYuLZnAiKaIztd0t6DbGomm374LFkhkUqA7iqXDyuAJ4PXFMp/2dJ/1vkp1NpHgBOKdvqawjH288q5Qeev6RPMfIjuoUwDRwJHAA0cYJ3X0ggyuN+mfoLSVtb76DOzyUlrUmfC6/tm2omIOlUwvHeKbBo6pTBF4jP89lEWZYv1Jwf2HIQv4PtV9TKjML3mXuHfAyxum2EpA8T35mrgI3KzqjRZ2D7JfXT7cu7gBf38YM1Rbbvk9T5TVVfXxXhsAL+AiwraVfbRw84n7pzT3UzEYCk6cAzgJvGiqDpI7s4EZL3DOAmyqqgQv4pxJdmDeBm4N+9Dt0GYww0/7Zb+2Eh6RnECuqZhInlY7ZvnL/UXPInA58FDgI+AHzc9usbyN1BhBL2KgPXRrJIOs32wA2Ky/foUUoNe1f+MBVhjecC11EUfI1Ck7QtYeOeQyjTg2w3btIs6XzbLxvteQP5C7sv6pIusv3ipvJF5vnEQmZp4K/AJ21fXiH/WWKXez0jn2GNqeztRFTaBsClRFTaUU3lyxgXEpF5j1Vttj2jZoyBsT2lb8CZPc+PrZT/fs/zr1XKn9Pz/PjxnH+R2aHrsbqfN5Q/rUf+1HH+Hy5PxJefRuxMlm8od+4Q5/BD4GDCEfs24G2V8mcD3wZeNuD5j+y5HVEpfynwhPL4CcClA7z//yVa134cOG6A9/9CIqLrJYP8b4jot6eVx08DLquUP7fnds4Ac3gK4ft7yoD/x1OG9Z2svU1ZM5GkVxDb0nW6Ih6mEV+iJvIbEbHh07vC6KYBGzWUfx0RfbCupM42cBqxqlng8+/hnZREL9suoZk1CTf/0XlQ5J9Uc/IW9u7Oa+8pn0Enm7hp5ml1HPh8mNVG2GHm+k9gx2J2vBb4oe1fN5RvGyJ9JRGF8yDxOdb6fXYhdsjrE7u7z1bKv5WI5vk44XOoyvUp3MBINN19wOwaYbc0mUlan/CZLRNPhetzJR6VdBJz7/Bq8pYGZsoqA8Kk8yiwFnAWsaJ9mDA1NOFRYkt9b7kX8C/iS92Ecwg7/5+IZJ3O+f/SUL7t/Lt5vKRlHfbO5YDajOgbJH0auITIXbihUn4ge3cHSYcBTye21h3n55g/QkdI61CwPUORxLc2cKPtSwcYZg7hvHy03L9R0oc8n+g0SV+zvXePE7Wx87RL7nHA+ZL+D1gOuLty7kfZ3qV7XsDeFfJvdFebW0WL20YlnLvew9JESOps4v/wp4rzUxy+n2LEVHaA7Zp8hxnAXoTvaFDGzWHcy5T1GUjayPaVkragJxLB9jkN5Fe2fUexd/fKj2mrlbSN7dOLnbFX/ogFPf+esV7IiBJ5lEh4uaRCXsB2wH8SfalPccUXawj27jM9WG7A0Cjv4QmMOFD/ZbtxnLuknxM+ox8AF3Q+P0mftD1a2OWE07VD/hAjiXrTgLc0VEbLEKaVY4CdCUW2OJEBP67/U0mXAFvZ/pukpYFZNYsUSTOILObGOTZ9xliMFlFZbZjKO4P1ia1xr5PKxKp9LHYhIj4+1ke+ydaw45jqzVJsehFtO/8Rgbjw15Q+6JW3oiTG/xE/5pdQF0nzZCIkb/vOkDT7DDvcLGlv5lYmtQrxuZTtfZGvmT/AhrZfXh5/pybEuCjTi9wnnr6pIpC0JWHuezIj76EmX2VV4B2EmbEj3/R73GaH/DLi/74GYSLq7HC/3XTuHRTZw29i7vdQk6MgRn6XtdnHEI7jP5WdSTl9VUkRaBmV1YYpuzPopqwCun9EVdvLIZy/1YWo7fwlbQB8mEjaGuRC8s1y/hcRpqInuEE0T88YixOZ3HfVroQ0b8KSay4C/cJCKy8iSPoZEYnSCTHe0RXRRcVvtKcrEtV65K8AXmN7oN7hRXkdSJhJPgFsa/sDlWNsSkS13Wj7V5WyqxFh2SsBd9quLuWgKClyAmGqOQTY2HbjvBtJrySSxjrh0p+y/fPaebShbVRWG6byzgAY3N7cJd/t/OzYamsupK3i09vOv/BtIvHse8B/U1/vaH3bL1Ukjb1F0k9qhBUZzP9DlJFYS9I3bR/TVN4tEpY6U6i5aIzCm4k8jfcS2/udK+XbFiy8mPr8jG4etX22pP1tnyVpnxphtS80txWxm7gFWF3SDNtVlVOJ2lSHl9j870mqWpAU/8AgNZGAx3ZX+zJi4vmc7Vsrh2mbtzQwU14ZEOnebWyTrZyftL8QtZ0/RG7DjZIWsz1bUm0Sz5xi67xf0q7Ej6GG9wAvcVSKfByhDBsrA7VIWCo8oKiv1G1mGtNv043tvyoK9HVKN29AhVL3gAULu5yn04BLJN01MmSVMrlaUVLjbEXy3t8rp7K62xWaexuR8PVo2SVeRGUZbaI+1JLAtZKOAGqj2nYnooEeMxHVLOyAo5i7tMwM6pIvYe6orN9SH5U1MKkM2tubf62o5zOQ85P2F6LW9nKifvuSwA8VJSmqtvjEqngxIoNzZ+rDAh8lTFS3lvtae+1r3ZOwRF0Gb6uw0HLOgXd4kl5LOOCfSqwEf+qGZYs9pOxb2+8rDz+pKJJXW7DxNkn7En6sDcrzzcvYTb6PFwOblO/fBsDFZYGBGyZ+2X4TgKT3AhsSwQw1tM1AbltaBqKc+0PE9+AJxG9rXDKQUxnAbYS9vuOIrXXAtnV+tr0QtZ0/tjuRRN8pt1ruJnImOtvj6yvl3w18U9EQ5T7C5lvDQyUi6kpia10bzXEMUbFzBeBQGuaK9DDQDq9cuNYjbPW3A6sA+0hay/bXK8Y53KV/RHFIf9f2Hg3kDiay5i/sOvwc4v/5/ubvhJuBJYBOY5o/EoEETb+P08utm065k/mursvO8Jed91B2F/9BfK/GLEWukRpbZwHPkjRQBjJzl5bZkPrSMhDXg7kykMeLdCADLe3NrZyfRb5VfPoQ5t+2FMFJhOP4amJV9yLb289fangU5+NHKc5L4As1TnRJxxKNaXa1/UJJZ9lu1JhGIwmHrwTupHKHV0wym3eH4pbv05mVvqdz3ZU01ft8PnIX9DMnjXZ8YUQ9pSzGOt7ndecyd42tDlX+vzLWSsDqxG/xrrFe30f+FNuvrZUbBlN+Z9DW3tzW+am549P/W9IurotPb2svh6jn8nLbDyoKZZ1HlHZoylIe6Qz28xKV0Ri1z0C+VVEGe9B+xm0a0zxCXEjOYN6LSRPmdCsCAEfFy1pT2T2S9mAk8e//GsqNthqsrY30FiI0dV2iMc69tntX+vOTbxPRNtoCrNHCzFExd1ViV3aj7Xsanncu1CIDWSNFIzMDeQJpa29u5fykRe8hvDgAACAASURBVHx6oe38oX0pggckfYcRe/EDnRVzQ//HhGQgd9GmMc1MIopoVUb6GNR0anuuRsqRdBBhqqlhtzKP95R5NPXb/FTSoYQ55Q4iRv/DwE8rz/9eQgmdTeySvlcp3yai7RfFX/Fl2w8pSqB/iIblRhTZ8xsQJUA2lnT8AJFM0C4D+Szie9upJjDupDJob29u6/z8m6Q3MxJKVhvF0Xb+EJEL50m6lyhFcE8nSqWhqWBm1+NfNj2ppLXKw7ZO+LYRVW8jGtNcQVzU/7tC9gdE1MsJROLet6lzoI/W/L03mXG+lF3doYS5UkTxvjFNZbYPlrR1Od/KhEI9wdFtq4YHy47mYUKhbFgp3yai7X8JRXhqcdr+C/gJzUuzvKyzoOqY6KiPZILwFVzmwTKQ/0yYOjuLioNs3znAOAMz5X0GQ7A3r084/zrOz/1tN15ZKxLG9uw6/3dtN+4/23b+w0SVtdclHTnKn9xke62Rlog7EYpkoIiqcgGYy4HshqXA1dORTNLZtrdoeu5hocgL2JLoFncjcXGtMte1PP9WhN9lOvARwil9VIX8PkSryt2IqJ5ftQy5bkyJYOpOsPtK53mT75Hmro30VEZqczUO71W0Xv0g4Xd7GfBO27XtX1sx5ZXBRCHp6b2HGLmQTdTFvFWrxTbykqYx4oRvlH2qIbVKbOlA/gvQyVIV8KrOc9uDVN4cCEmXlLmfZ/vlkn7UCbWcCCR9xvb/tpB/o+3jhzmn+ZxrKN+jlnOYaxExEYuKKWsmKg66q4DuRjKNM4gl3URsw7vNQjUZyDcT9de7wzAb27vbzn+0YQeU6zBz7Jf0OWk4Pt9KZfap7U92jbEyIxFVtWF5bRzIvWaeKvPOEOnExj8o6aWEI3ci2bil/B7AuCiD7u9RGyStDuzD3Lv0PzYUf37ZHXRYv/N8vKK6pqwyIApavZpopnEOcFJlKNihhMPsL0QT9rObrmgLmxK5Cc8hMg1PdEVXJtrPvx87SHpyjZmqG9tfkrSX7W9VirbKPpV0AFE58zpgPUlXuq7S58AOZNu3VJxnHkoU1AW2L5L0G+L7NA043/bHK4bau9jLP0iYWT5UOY/eiJWHiTLpJ3nwJKxxRZH93s3DRPe/2iTKQTkWeB+xSNuQ8Ce9sKHsB2wfUaKKIHaq48qUNxOVCKBXEUW6zrJdW5PlqcRF/U1Eh68vDzCHTQnH4+W2a5yXrebfZXPv5nPAvpW2UhjZVTwHuK5mNSPpi8CJxI9oA8J+/xFolvSjeYt7VcXIK7Kv9yD6D3ciggYqGFdL91y7cwPUsCx3H3PjY1T6vg4nMnavIgIKnkvsWl88v7h3jd6M/im2x9ydSPr+KPKb216l6fzLWMcSfrvOe1iJSIhcyu2b/zQ5/0+B19m2IpHtp/P77HpkN7B9tfq0ovU4taCdsjuDsgJ9OXEhfyrwIyq3pYpeBq8nVvnXUaHNJS1PlCDYgoh++AwVZpZhzJ9YuVxLrMQhfoTLEdnMTRywJxE/uqNsn1fmdbrtbSrnMXD2aeE6STsxEtp6XSdSaayoJEkCDhuGfV/S04BVbF8m6QkNQ0y7d5PdhdUWb3jam2lhbuxiNZcMZiJX5Ezbu0mab+VVty+HMUyz2pPd1QiofBd3KOHWo1J8Bn1XxZU+g6WJ7961hDK9qxM2PNb3y/bV5X7cdwQdpqwyAO4i7HonEysJA1uURJEmmaPXEBfxk4hV/aPA0pI2bxjJcgdx8TqXsPeuT9gJmyaZtJp/YU0ikmlT4GjbsyRt2vQHYPsrJaZ7D0WrzB82PG/vOK3aDRJJe1uWW4eP0+CCWFZxd0jahAgtfbQcrwoRLuae9YhyBtOJnU4TpfhnSS+2fZHt+8pYL6V5x7u25sYOt0k6hAiPXJ+ooLo4kUy5wGhrZuvhYUkfYeQ9PFTew1jh2ueV+12I39SviZIk61Sef4HvPhYkU9ZMJGm30f5me0YD+VYRCP22g10DjLk6aDv/nrEeR3yRtwJWtT1a7Pv8xphG/Jie2dRUpZEyAPPQJqqpljIPGClJUO2E75h4uu4bRYMo6jF9g4jxv4eIqLod+B/b91bOYWBzY5HfhFgg3OSGobULE2Vhsj3lPQAn1/g7JP3c9pZdz5ua6kZd9bsi1HqimbLKIJmXsopaqWk0TsfOWfu3Pq/9HHAKsSJ7HrB9E4XSpUymEaayu4lcgTs8Tg1BuuYyi9iFfJ/IezjS9rYV8osRc7+7ONJf6gZNjvqYG2cCMxuaqLrHeRrwBuZuklTb4KdtD+hWKEqpvJKusiQ1F+PiN5lD7Ng3JPojjLna71qYbQX8jZGdxZNt1/a1mDBSGUxhFCUkTgEu6TJRLEtEQPyX7XeOIf9BorvZrYTtGqJ94WpEG8evNJzHJURxu47j7WLX9Z79NvBp27cpasx83HUdrk5z6UpWfAg/s/2apvJF7hmE3+eZhBP6Y7ZvrBmjZ7y5Vqnzed3DzG1ufOwH3dDc2BnnMiLZ6rGFQI39WgP2gB5Foa9IKPSqkMrizJ6r4ucAu+SNgbWAP9YqNEkzuxcAA/rPJoyp7DNIIgxuZ+BIRZy+CV/GacydkdkX21+W9BXCabsOsaI8F7jadauMo4j6MrcQNYaOqpCFuPh0CrPdCzy/Uv4/Og+KQqpqilLkbgR2rJUbAsPKMr7Z9rEt5AeqsdUVPfVtYOduhT7AHO6z/blaoVHMPM+S9KxKM89DGunpsCGDlYaZMKb8zkBzNxJfjPq2lQPFZyvqrX+a+NI8SlxIryDKWfyjcv4fIcLoNgS+2mRFtrBRTFTLA/e4vgfya4hkn87n+AXbjWvJS/ouUX66U/FzZTfoBVBkO6GVj2WQdx43WdlqpFrlXIeJC+Mzmr2D9kg6mzCv/KYcck2Eldr3gL6cKPj4z2LuucAVVU/LGD8lPsuqip/DMvMU39v2xM6i2mcx0aQyiEbir/YAfQCK/KDx2d8ELu1eeSjKAG9m+z0V578IeAXw8+K4bFVSYiIoK8F3EAXOOvbq2j7Obc4vwu7+n4SJ52eVO5s2524VSDDEeaze5/yNI33UvsZWK4VexmgVoz8MM08xF3Z/jxu3Pp1o0kwU7fbaaO+B4rOJqJu5Lvq2j5lflNAoPFJuLhe1CSl/20HSCrbvrhT7AZE09yngE0Rvg5pztqmFD7CV7Z9KWpswj90HXDiGTO8cesN5OzvE79ketbfAeF7w+yFpG9unEw7oXhqFKJfv3TdrdhK9ONp8Nmr12ef8G9m+kua5GaPRysxTFnhPJvxolxA+lEmjDBYb+yWLPM8nGolfWG61/7zbJB0i6Z0lTrtpfPZon33t/+QLRILWukTLvNpeBihKGCNpbUnfKnHuNfLHlfv3A8coskpreNT22USjl7OIHVYN3yYakS9GrE4b1bHvolO6YT8iGqiR47uHvxMNbg4inJiPEt+B8Sq2dq6kc7pusyQdWhTc/OjkUzzS59aIsou6Q9ImkqZJWkwjrSSbzn8DScdIOrvzHirEO9+Xl/TcXjyqRH92AGYTPrAbieiqGta3vQtwi+23VMpOOFN+Z2C7ae2Q0eTf1hWffWRXfPZbxxBdpSie3pX8CpXnP03STEbs7YOYNz5EXMj2I2oCfZ26QmOdOT/P9lYlOqiGqxUlIc4p0SW1PR3a1MIHeJKirMMjtn8hqbHPpov1bb+3PP6DpP+x/S5Jtf2cB+VXRA3/TkmPHYms9BnESrUvtjs9uM/t+dPD5fNsmny3Sbk9NjTNssc7DNzcphMx5JYF52w/XMzGfyF+l5tRt7KfU5Tg/cUpPZYiXqiYsspA0r62P6c+tVEqHWdPI740TwaeWbbdY8Zn235W7Zx7znskfRK2VNFqr4u2F8MHi5nkimIyqCnYh+33lYcHSFqOMNPUcEZRJj9U1KavjXH/HOHM/3QZp3GDni4ulHQq4bx8DnB+2SHW7lIG5aUuuRnFGfs12x9UhJ424QhCqV9PzP9e4PGSjrb97fkJSlqFsPcP3DKS9godSb8mwppvIC7EtxKtVL9o+5QG8m3NPG8mdqfvIqL0xq2E+TCYssqAEXto29ooJxNmhUYJVh36KaEODZXRAeX+A8TFqxMBMeoqcD4cRLuL4esJ38lNiizQt48l0E2fiKivE32lG2H7IEUG9Cm2v1Nz7sKLuj9zSbU7E2x/XFG08OlERFennERV4cMWHC3pF0RZ9VWBGUUZNW1f+Tei/WincuyJxP/1V8SqvS8aXsvIXoU+SKXR3xMRSZ1e3ocT38ULiHyasVjf9ksVWeRvkfSTyvM/SOyylyW6r21NfQvZicP2lLwRzqb/R/R+/R7wJcJGOK1ynBMGPP/q5bYGsXrsPF+9cpzz5/e84rPYkbgALw5sXCm/JdG79doi/41K+YuAxwHnlufnVMrvRrQqvLqcv9H/pHz2WxAOw83LbcvOPCrnsCpwCNHY5hBCOU7Ed3pFYPEBZH9JmAaXJMw9lzT5PgEX9py/6n9X5FYp51y+5fv/NREWDBFMcFl5fF5D+XOIlf1JxKr+msrz/4xQABeU52eN93egzW0q7wyOIgpaHQs8QFQcfGU5XuP8Wa5sT6vis90Vtifpnx68YNf5xWfQKc41SPTCMUTF1Z1sf0NRHqImmekTjIS3PiKptrFK24ioPWy/pKzoHpH0lIZyqxNOxmUIhyNEBMkgHbqOIpzYlxMX1RnU2cxbobnzZVTMhTXn35lY1Xbq+ryl7BDGyrd4kuYuhb5c57mblUHv3llsoujQNsjOAsI8c5gizPUBYK/yHppmYrc18yxl+wxFsTyY4Mi+WqayMljD4fnv5kpFElENA8XDd0VbKJ6OXARdUTHT9ieKeWJ15jZP1NCm0xfMezEfNCLq2QwWETVH0hPL+Zdi7u5zo+II6zxf0mc9WBPzbpa0fXF5fJGi0cx4chDwGtd3eeuEhr7b9rv7/PmGPse6OYkRRdr93DQrg/4yD6EZfXkPL7f9X33+3HSBdDdhGlubiCa6fv4vn4c/SPoooRDfP4D8hDKVlcHJxeF3HvBXYmfwMmKrNyZqH5/dqdff/byTxdqk7ebuto9UTwarmpfA7mbgTl+FVhdzt4+I+ijw43L+HwP7Vsq/SdI7iPDcB4iyBrUlLU6RdDqxQ9uQZjbqYXIx8O9BBG1b0lKSVnZl8qXbt4xstbPomoclrSdpSQ/emOgEwnF8ObFbOYHIKG46h3crkud+AMy2ffCA85gQpnQGsqLi4yaEmeB+wsbYKGFK0laO+v/zJIm5WQnspW3/tXbOXfJD64ykIXT6Kiuzqov5EJzoQ0HSpUQZirMJ89j3bL91gHFWInZot9i+c6iTHPvclwBPIfpcQMNyGF3yvyD+f3cS/5Mq+UHREJvRS7qayP79PQO8B0ln2N666/ks21s1kBt18Vaj0Caaqa4MnkOEU/6u69imruyZKmkZIoKgY+aZb3etIvNY2QhJh3ski7kKSd8iVoUX1/odOitBla5g3TR8D63CczVSAkGE7+axQm9N3ov6t1zsyNdcBM6z/XJJZxLRJ6fY3rCpfBljVSJPY20icelztm+tGWNRQnU5CiiKwnX/Dl9iu9ZkOxCSOqberYhFYadj3lNsj2k67VFouxH+o059qiqFNpFMWWUg6ctEKOMcYkX1Ntt3q7K2j6TDiHDC2xn5AozpR+hRBgPXE5K0JlFy+gXAswgTxw4NZT9i+wuaO2eh5j2sZPtORWevuXZUAyimVjWV1NU/eADZrQgH+sZEWYuTbB9ZOcZZzO1APrDN+6k477DyZVrVh5J0sO33l8dLAjNsv6lC/mTgo7Z/J2k74M1NLsQ9YzyR6EXe/R6aNJoaZqOogb+HE81U9hlMd2mAIml94ARJHx5gnGd6sEYqa0k6kPjSdh4DdXXoicJ4zyXKMM8mLkaNKIpAwO9sf77inB35jink093b66YMy4nemU6L859Z7i8ut0GYKAfysPJlWtWHAi5V9DTYv4z1xUr5txC5ElcRYbqDlAP/MWHnfx0R3tsoi75zwS8O7B2I5LtDibydWibt6noqK4Npkpaw/ZDta4rj9Bgi+7KGYyXtzdxlc5vYCbtXI2dVnrObjxC1/E8jTEVVEQzF8faclo6320sUxa8Z6SHc5DNo60TvmLdEOL8fM3c1MXP1nL+7BDVNzt9DrwO5quLmoHQp5IeJvJllGAlprDFRPGr7bEn72z5LUtPWpR2F+iMiiuwi4rvdKNmqJwDiFqK21JFEUmVtIMTjbR8uaVfb35P0+kr5gUKsu3ZlAtaVdDQjO+xJk4U8lc1EmxANPe7qOrY4sIPt4yrGOZmoZdIJ6Rt3O6Ei63cHIk786babxtl35Ns63nqdgOPyGRTzVj+amrlaOfH7jDeRDuRhdCrbp9xeBvzd/cM0e+W6+1h3x9W7iZmsXwBE1wC1gRA/IhTRl4id8touYasN5c+y/cqOybLzvIHcPOW/O9SaSyeSKasMhoWkU13ZInHI5z+OCIv9IxEWd7HtmydgHpsRWZ+nAKtOhh/BMJz45X3/s0R2fYGIyAE42vZ5w5vtmPM4oamvqMFYy9m+dxhjVZzzCUSY9mM7Gw/YTL7sVjYkzJ+Ne0FL+iFRXuZ9RHj06z1vLtIiy1Q2Ew2LByQdzNxmokZ14IfEf9v+W5sBJG1I2HqXJsox7GP7MxXy3yQqjW5u+yRF57Ax+/cuZKw5oNynGIlFfwGRxboE8E0ih2WB0mWiGCgTvmucuTr+SWq0su+S35z4LOYQZSkOcJQjb8osevoX11J8f2+lq2shdUmhbyNCrK8g/Bb/PehcJiOpDNrz8zbCknYnvsCPMGJnrLFXr1Uc34M2dgH4GnFB+4mjnMPmRHP3pjzb9hbFZACVTUYkbe1I418beD/wI49Ph6hhOPGneaRN6SG2/wSgKJw3HrR1HHc4iBYd/4hCh1vZ/puiHMQs6nxhA/Uv7mEGsBfw5wHlHwbuIXJtOg7ky+YrsQiRyqAltmeUyJEVYaBaJO8kWmQOWg5h4DrwXcj2fZI6NsPa78XfJW0KIGkjIou3hlb9FBTd5V7V9fxY2zs1EB2GE/9RSf9h+x8uDeXLxbBt161GdMxxkt5q+yhJGxPO1yMJh2xT2nb8EyNlQGojwSA+x5Oo7F/cwzVE4uigv6VBHcgdv8k04KlEmPWKwB01vreJJpVBS0rUxZZEjP+NREmAmiJvZwPPlnQ9Iz+Cmh9T6zrwRLnjk4nV8fHEhaSGtxOOxwcJxVS7vR6on4KkVxBRP+t0reqnEc7wMal1UI7CJ4FTi7nmDqIC55vL8fHkLUSy03sIU8fPiFDL+aKRxL1pRMe/gTKYiR3KGWVBIcLsWMPApRu63sPSwJ8kzS5/qn0PA9Xo6uQVSPo2sLPt20rexsdrxploUhm057W2X6iRLNYfVcq/oNw61HaIGkYd+J+W21qEI7qqOQ2wm+1O60gk7QkcViE/aHOZm4hV6FqEUoXY6h9Uce5W2L5A0huIuPz1CYWwgwdv8jIoT1S0K/27I6u8kUKtibYZY5yzGfkfNEZD6F88rPdA+xpd04kwb4jmQLX1rSaUVAbt6WytHyw/xqryzW2yFUuS1l9KfsB3ym0QTih+hv8r4x4PNEnDX4bI3n6DohGIiB/1DjRQBmU3AOGwu6I8XpFIGBoT27dI+hOw75BW+QPhaHhf2/d52LyfUEifKgq1UWOWEvzwE3eVfii7y9e7ZBQ3HGdQB/L6RPmH3gt606qnFJ/ZL/u8h81s1yS/tXUgHwCcKelR4rcw3rvDVmRoaUskbUA4nNYi6qCf5pG+svOT+5rtvdWnvk5ljP/xrkzb75J9HVGy91WMOMKnAcu5QUaxomzA9kRDj9OJH8BDwCzbY16MuvIEViEc4NcS2dR/6fYBNBjnG0SyU3fSW5Oks0WK4oDvDiQY0wkv6YJ+37fRjs9nnEvocSDbfsFYcj1jLE3pxwDQccY3kLuw3+5gtOOjjCGihEarJDFJjyPMTQNHRU0UuTMYkLL6mlbiyzchOkT9mLigjYntvct92y3uCpKuJbp8dRLGmn6hzyFWQX9iZCX/MJFENya2TyZKge/aHRNelEwT+d3L638CbFgimTotF2t4IqGQOgqsNqRw0qPB+/eOthqsXSW2ciCrT40vmv8PH6k8Pg+2LemO8lu+gpFFRU2xvd0I382Kkp4HHDes3I/xIJXB4HwH+DIRwfAdoqnH4whn6qiFrzpIei9w6hBWsG8dVND2A0SexCa2H+vuJelYoEk0TifBZ/fiQO2YifYgPo+mrEz0z72KSBZ6aoUstncvSmRF4C7bjS8CixCD9u/9qaRDiVpCdxDO9w/TvHdyh7YO5DVrdoM9/ELSvsCXbT+kyMj/ENFOtoZNyq1Drf9u0I57CwWpDAZnddvXlMfXuJRfkDSmiajwPuAVii5lZxB220a7ih6+1xtWSfMLeScaZ+1BonHKSuitxAW8U1foISJ5qIadiAvQJwgH9s41wpJ2Jvo3/5GIiPqm7WMq5zDZmVMU8/2SdiVKaY+J7YMlbU1czFcmVuYn2D6j5uQtHMidi+3NGqzGF0Sb0j2JqK7HA/8ifCZVgQRt/HeFgTruLSykz2BANErJZUnnu0EV07J6eIUiDX8botLis4iG4h+Zv/RcF/JdgI6JZhrwoibnL2OsTjSF747+eRi4zhU1eyRtbLtVco6klYks4D/WJj4Ve/VLbc8pNtsLau3Vk53y+d1DOPR3Jr5HjYrFDen82xJ5Ih0H8kG2T2sgdwT98yHs8a/xtQGxKBkogbOYmA4keiFcQTjRJ03SWu4MBudCSfsBX+ramn4EqGrI4aidciJwoiJrtemXrzus8iziy1sVVlkSlm4h+gA/g9gRTCNW+jUZwA9JOobBf0QfJt73VcBGRVHWlNR+tJz71nI/qVZkbZB0AnBpuf3V0QP7KxMwlQOIHsQPlgXOeUQl3bFYwxV9ExYwAydwFgf0uk0CLxZWUhkMzicJ23jv1rRpM+/39R6wPYfm5S2eUe4PZ+T/uDgR61zVaq+F87FD2yzo13Y70iVdBNQog3cD35S0LHAfUZJgqvBR4n/+GuATxTzxO+BS298ex3lcSXT7e5AoNtd0V/I8Sb3ftU5ZlvHO3h04gbM4oLclEv8mJakMBqREGRxGXXJVt/zVatd2c7QvauP47C4GdT52aJsF/ZCkFxIXlOnEDqcxjn4UbyAcyHcWpTolKAEIN0maSSQ5bULkeaxLKOlGSOot/fAwsfs8yfaoZSq6QqMfR+wwO6aqRr3EgSvb2uol7UKYFy/qOvYiYC3bNfkfbRM4l28R2TfhpM9ggtCQ2m4OaS7nECU0TiSigD5ke/0K+X2ArxJRVO8CfmX7HRXyqxEr3LWIC9AXmsaYF/k9CEf2LUQ/gRm2m+7QJjWSjiIqdD5AKNPLgd/UKkRJhxP9LK4iEsGeC1xP1M167TDn3HPec4egDEbLM7jI9osbyL+YKP3e6mKoPn0NPAlKuXdIZTBkJC1j+/4Gr3vM0awovft1wnn1+SbKQHM3FenwCLBfrdNqop2PZQ5PY8SBXJWwUxzIL7b9aAkxvWiqOJAlfYTYBUwD7iKqbF5me/Z8Becd5+e2t+x6fqbtV1UERDzWD6LYz79re48Gcq0bDI2mUJoqGkVjnxcQK/qTgLNcUexO0ja2T5c0j+/D41vOvhVpJhqQ4rh7c/cWWtIzibIEm4wqOEKrtpujfPmXJeLDG/dklvRk4H7bDxcn8g3EirCJ7DOJncADwPFEjaEnESv70yvmcADwPCKscD1JV7muYuXFwCZla78BcHEJsxykl/KkwvYXOo9LXPsORDDCaraXqxjqNkmHEHkz6wO3FsX6x4by3S1HXb5LY9JWERT+IGknl6qx8Fi48R8azuF9RWYjIqrvY4oyJz+xfUKDIR7puZ+U5M5gQCT9P+JC+Abb90vaiii2tku3D2A+8kNpu9ln3MbbbkWJ3ucRjudbidpE9wMbuEHmZLEXf5hwGB5ORCH9g1hZvbBiznOtPlVfCuHcUf7k8Ta5jTclR2DjcluRyCa/lHAgV/WEKN/JNYGbBthdnkD0MLiEWGVvY/sNNWMMSnGa7w+8kJHd8iXAgbb/WTnWEkR5lg8SHfv+s4HMFxn5zCeNWaiXVAYtKE7PLxI/ghcCOzYxEQ3p3L0XuccT0UAr2W5UYKtjay2r6Gtsr1eON91ed7eN7DZ7Vfk9JH2LqC10JbGyfxnRx3ZK1hiqQdInGbkQNXXa9hvnacAbmLs2UOM4/xJOuifwn0Q00/dc0XJymEhayRU9qBU1kf4L2I4Irz6TcJxfM1/BEfnNicCHjQmf1Z2Eue5XblCnbGEhlcGASPoUsQp5FtHP4FBKFEyliWPQ8/em+/+LMO+c1tQRVlbUmxM//rPL48WIlX0TZXAzkfAmRpLfBLzFduM2khqwsX2JgPma7QckvZbIYH4IOLjh9j4pSLqMyE94zF/j+ob0czV5qgkCGCYDLEbOJ/o/nGT7xpbnXp2oHvsuomDdym3GG09SGQyIpFHt8rU/oomiywnd6dDWedzIvDKMz6A4Gz/iuiSzjuxj5iRJvyPME38Hzm0SRZKMIOmEJqbB+cjP0+TJdk2Tp6Eh6azxPHdZmK1OLKT+RER0XWH7tvGawzBIB/KA9LvYSdrL9rcmYj6D0DakbxhKrzgbnyNpSUdfhhqmwWPRWLfYvq88X6SdxguI5ST9GvhNeW7Xxci3bfI0NCZACa1I5Fn8m4jKu7vcTypSGQyI5u5D0FlZryvpTTXOzwQIP8Gtkn7PSLJOk8/wxLK7WQnYGx6zfbfp5TupUJREucD2RZJ+Q5Qfnwacb7um7WLbkhCtmjy1QZFg9mEiqu1ooujeUsBh4xHaaXuvMo/HEZFYLyIy4he3veGCPv+wSDPRgEj6APGPP8r2eeXY6ba3Ged5rE8kgjuECgAAClpJREFUXHU7/ias1ksx+7zYXV2nFvD5nkRkcT9Ynj8eWNJRnnuRp8dU9pjjv5Mn0EB+KDHyGrDJ0zCQ9AuiSdOTCd/X2sQq/aKaqLYW538W4TzehIiog8hZuNRdfT4WdnJnMCC2v1LC0PaQ9E7ghxM0lRlELZ4/tx1I0ipEnPVrXFFwq6yIXkVEZKxMmBrGVAaSdrd9ZJcz/jGaOOGL49nlce+fF5biZwua7kzj13c9btpTuGNS642RbxqE0Gldeh+xQ/sHJRJsHPmno9LtHZL+0AknlVRrdhyUfYnSFUcDH6hJWFuYSGXQgpJwdoiiS9MuxGpgvLmGyDgd6AtYEsdeT6xq1idWdf+voewbCQXwBCK89j9tb1Fx+k7f495euU23qweU+w8AvyTaXm5EbNOnCn+W9GLbF3X5TF5K8251s8r9DEnPJXJG5tGs8+FmIoyyO1GxtlNZW9aV1Ilke3b34/E4ue0xm1lNBtJMNMkpWbcrAZ3yA03t7RQb86WEbfWSWjOXpBuI6qaH2P61pJm2t618C93jDboz6U1aa1RCYVFAkXX+DWJHdg/hzLwd+B/b91aMcyqxu+yElrpJnoGkjYk+2M8BfgucaPvyqjfREvWpCdRhMieBjTepDKYwimqP2xIhcTOJ7OmqSIzis3g9kcm8HtH28xLb/24o329ncrHtf1TM4UAi6adTSuHXlc7TSU9JHFwBuNtRo+mlNRnIkk6z/eqWc9iUqJR6edPEx2Gg6Df8e9v/kLQi8H5iZ/B1T8LG9BNFKoNJSlt7e89YSxHN5F8LLAdcZbu2hy2S1iJMTNs2TFprtTPpGeupREP1W2qyTxdV1FN4rsHrf0hkzna3nRzTgSxpeSJzdwsi8XEmMHM8s48lXQy8pCjBnxOlUe4GPmp7q/Gax2QnfQYtkbQ7Ec3zCBUJW0NgNHt7NcXhdhJwUnGKf3TAof4N/JPmoZ2fI3Yme0tah4jVrqbsTnaj2LslTWhE1SSlN/Kn6SrxDqKMyLnE/319YP3yP1jgmfiFh4oieArwVNs/ApD0sXE6/yJBKoP2vJMIpRzXCALbV5f7xxK/Bk16K9FAryR2Bp1ooKay/cw8r5+vUMHReOT7XTuTWyX9FLi6cmcytIiqyUa/nSGxKGlUNbSL9Wx/uGvcphfSCcky7uEfZVH2AuAEAEUL2SdM6KwmGWkmaomkzwLHEdEUne31As+A7Ul6g7gArAtcX+FA7o0GelNNNNAwzTxdY04DNrfdtP0nkmYAe0zWkL42tC0JImkNQnF8iajUCbFI3Ldthvp4UXJNdiVabh5t+5ES8rqh7VMmdnaTh1QGLdG85ZPHxUw0jKS3ttFAw3BAD4M2EVVTnaJMXk6YOo8kFhUPA+fZvmTiZtacEkrbzT+BGzxOFYQXFVIZTGI6SW/AS4mkt3fVrszbRgOVMYbigE4mjmIqXIq5M9knpOpoLZq3gu+SRL7Jj21/bwKmNClJZTAgkr5me+8+5hrGe1VaTCu7AM+0vU+LcaqigUYZYwkiiuNTFTJPJnwNywL7EY1RTq2Qn8dR2SRGPhmhJE4+ncgz6ARCTFonfAm1Pd99eiMn/UkH8oDY3rvcT9iXTdLzGelQdh9wTpvxHI1kvlhuNfMY2AFdOAb4FtG/+RFJ7wMaKwOgYxsX0ch9XDJPFzHWbFLLaLJQoosmehqTilQGAyLpvcCpnqBOXJIOJy5+/yaSjW4H/irpDbb3HKc5tC1H0WEp22comrtDXTmEXkfpeSXWPGmARjrm3Sxpb+bOM2i1uBgv+kRULUkUjDtmYmY0OUllMDjvA15Rkp3OIJpnXzuO51/bI20mr3XpN9vHob0g+QzhgP5qcUBvP+A4f5D0UaKm/vuZu87NmEj6PiONeZ5KNBhJmtHZ2d5G5Gl0NwWaFMqAeXNt/gUcVFOOI0mfwcColAtW9H7dhqip8yzgHNsfmb/0UM5/se0Xlcf/Zftn5fF5tl++oM/fNY/WDugyzmsI887vOu+lQrZTm+ZR4K+eIuWrk2SYpDIYEPVpGj9IjHyL8z+HuHA+0nVsCWDriYqtHqAcxaghuDUmCkmrEo7nZxAtFz9n+9am8gkoupytBtxA9AO4lQjR/GLG6k8NUhkMiKQNOlnAyWD0CQns0KhiZtc4ZwH7E71nNwYOHKeSIIsMpTbRHrYfLLvdw4ld3gW2p0/s7JLxIH0GA2L76rI6f8T27zrHJW1q+1cTOLVJg+1Pdh4r2lWuAdw8QKXJJW1fXB5fpOh2ltTxTCLH4MFyv3ZRDH+f2Gkl40UqgwGR9GUi63VOKZD1Ntt3E8XXclVagaQDCJ/DdcB6kq6sTFo7RdLpRAnrDYEqn0MCwLuBwyQtTfQS3kvS4sB4FZtLJpg0Ew2IuhqoFCfq14mm3J9PE0Udmrc5zWN9fSvGWAlYndhZ3DXsOSbJok7uDAZnmqQlbD9k+xpJryPimp8z0RObhFwnaSeiFPIG5fla8FgiXF8kvRq40PZfgaUpTU0kfdr2deMw70nPwpRJn0wsuTMYEEmb0LMKLdvqHWwfN3Ezm3woGtv3Y74lESRdYvuF5fEvgb2J1o/fmywVNxdWJL2sSdXTZNEhdwYDYvvSPsceIcpZJxXY3r2E5a4I3GV7TkPRh+Ax5/NiHcd9liEYCv/LSJmPZAqQyiCZcCTtQZRQvgVYXdIM299tIPpnSZ8knM9Hl7GWApZYUHNNkkWVNBMlE46kS4hucY8WU9tFtl/QQG5xonT2g7bPLcdWBla3/csFOulFhPl0StvZdm23tGQSkzuDZGHgYmCT0qRmA+DiUoJ4vl3jilnutJ5jdxB9eZNmjNZDu3Vv7WRykTuDZMKZT3G9cekalyRJKoNkIaPsCF5s+4JKuacBq9i+TNITbD+4YGaYJIsmaSZKJpxRmuM0VgaS9iMqpj5L0nTgRKKSbJIkDUllkEwYQ2yO86pSTvzc4oTOaKIkqWSxiZ5AMqX5DJEr8FnbhxFd2wbhIUmrAC5lKQYdJ0mmLOkzSCaUYTTHkfQMQrE8E/gd8DHbNy6A6SbJIksqg2ShobY5Th95Ef0MrrH9r2HPL0kWZVIZJJMeSWfb3qIkUK0IrGr71RM9rySZTKTPIFkU6HyP17D9DqI5S5IkFaQySBYFbpF0JjCrFLx7ZCyBJEnmJs1EySKBpGm25xS/wdK2H5joOSXJZCJ3BsmkR9LmwPmSzgcuJJzISZJUkDuDZNJTqp5uZftvpYfvrCZVT5MkGSF3BsmigIBOddNRq5wmSTI6WY4iWRT4OHCGJBOKYf8Jnk+STDrSTJQkSZKkmSiZvEh6pqSvSvr/7d2hDUJBEEXRdzugAwIWg8bg6YcCoA+aQJMQQht0gEYhBgEkGASGn0nuUZOsGfeyO5vdDTAD9sARWA3dm9SNOwO1BZyTrJOMkuySzJPckhyqajFkb1I3zgzU2f391zFwqarrq/ZdIulHhoE6mwLbPIfG4496MmxbUj8eE6ktYPltrapO/+xF6s4wkCR5m0iSZBhIkmIYSJJiGEiSkjwASK0e35hvxmwAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"product_group = all_data.groupby('Product')\n",
"quantity_ordered = product_group.sum()['Quantity Ordered']\n",
"\n",
"keys = [pair for pair, df in product_group]\n",
"plt.bar(keys, quantity_ordered)\n",
"plt.xticks(keys, rotation='vertical', size=8)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\keith\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:16: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
" app.launch_new_instance()\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Referenced: https://stackoverflow.com/questions/14762181/adding-a-y-axis-label-to-secondary-y-axis-in-matplotlib\n",
"\n",
"prices = all_data.groupby('Product').mean()['Price Each']\n",
"\n",
"fig, ax1 = plt.subplots()\n",
"\n",
"ax2 = ax1.twinx()\n",
"ax1.bar(keys, quantity_ordered, color='g')\n",
"ax2.plot(keys, prices, color='b')\n",
"\n",
"ax1.set_xlabel('Product Name')\n",
"ax1.set_ylabel('Quantity Ordered', color='g')\n",
"ax2.set_ylabel('Price ($)', color='b')\n",
"ax1.set_xticklabels(keys, rotation='vertical', size=8)\n",
"\n",
"fig.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}