├── Misc
└── create_data.py
├── README.md
└── SalesAnalysis
├── Output
└── all_data.csv
├── Sales_Data
├── Sales_April_2019.csv
├── Sales_August_2019.csv
├── Sales_December_2019.csv
├── Sales_February_2019.csv
├── Sales_January_2019.csv
├── Sales_July_2019.csv
├── Sales_June_2019.csv
├── Sales_March_2019.csv
├── Sales_May_2019.csv
├── Sales_November_2019.csv
├── Sales_October_2019.csv
└── Sales_September_2019.csv
├── Sales_Data_Analysis.ipynb
├── Sales_Data_Analysis.png
└── all_data.csv
/Misc/create_data.py:
--------------------------------------------------------------------------------
1 | import datetime
2 | import calendar
3 | import random
4 | import numpy
5 | import pandas as pd
6 | import uuid
7 |
8 | products = {
9 | 'iPhone': [700, 10],
10 | 'Google Phone': [600, 8],
11 | 'Vareebadd Phone': [400, 3],
12 | '20in Monitor': [109.99,6],
13 | '34in Ultrawide Monitor': [379.99, 9],
14 | '27in 4K Gaming Monitor': [389.99,9],
15 | '27in FHD Monitor': [149.99, 11],
16 | 'Flatscreen TV': [300, 7],
17 | 'Macbook Pro Laptop': [1700, 7],
18 | 'ThinkPad Laptop': [999.99, 6],
19 | 'AA Batteries (4-pack)': [3.84, 30],
20 | 'AAA Batteries (4-pack)': [2.99, 30],
21 | 'USB-C Charging Cable': [11.95, 30],
22 | 'Lightning Charging Cable': [14.95, 30],
23 | 'Wired Headphones': [11.99, 26],
24 | 'Bose SoundSport Headphones': [99.99, 19],
25 | 'Apple Airpods Headphones': [150, 22],
26 | 'LG Washing Machine': [600.00, 1],
27 | 'LG Dryer': [600.00, 1]
28 | }
29 |
30 | columns = ['Order ID', 'Product', 'Quantity Ordered', 'Price Each', 'Order Date', 'Purchase Address']
31 |
32 | def generate_random_time(month):
33 | day = generate_random_day(month)
34 | if random.random() < 0.5:
35 | date = datetime.datetime(2019, month, day,12,00)
36 | else:
37 | date = datetime.datetime(2019, month, day,20,00)
38 | time_offset = numpy.random.normal(loc=0.0, scale=180)
39 | final_date = date + datetime.timedelta(minutes=time_offset)
40 | return final_date.strftime("%m/%d/%y %H:%M")
41 |
42 | def generate_random_day(month):
43 | day_range = calendar.monthrange(2019,month)[1]
44 | return random.randint(1,day_range)
45 |
46 | def generate_random_address():
47 | street_names = ['Main', '2nd', '1st', '4th', '5th', 'Park', '6th', '7th', 'Maple', 'Pine', 'Washington', '8th', 'Cedar', 'Elm', 'Walnut', '9th', '10th', 'Lake', 'Sunset', 'Lincoln', 'Jackson', 'Church', 'River', '11th', 'Willow', 'Jefferson', 'Center', '12th', 'North', 'Lakeview', 'Ridge', 'Hickory', 'Adams', 'Cherry', 'Highland', 'Johnson', 'South', 'Dogwood', 'West', 'Chestnut', '13th', 'Spruce', '14th', 'Wilson', 'Meadow', 'Forest', 'Hill', 'Madison']
48 | cities = ['San Francisco', 'Boston', 'New York City', 'Austin', 'Dallas', 'Atlanta', 'Portland', 'Portland', 'Los Angeles', 'Seattle']
49 | weights = [9,4,5,2,3,3,2,0.5,6,3]
50 | zips = ['94016', '02215', '10001', '73301', '75001', '30301', '97035', '04101', '90001', '98101']
51 | state = ['CA', 'MA', 'NY', 'TX', 'TX', 'GA', 'OR', 'ME', 'CA', 'WA']
52 |
53 | street = random.choice(street_names)
54 | index = random.choices(range(len(cities)), weights=weights)[0]
55 |
56 | return f"{random.randint(1,999)} {street} St, {cities[index]}, {state[index]} {zips[index]}"
57 |
58 | def create_data_csv():
59 | pass
60 |
61 | def write_row(order_number, product, order_date, address):
62 | product_price = products[product][0]
63 | quantity = numpy.random.geometric(p=1.0-(1.0/product_price), size=1)[0]
64 | output = [order_number, product, quantity, product_price, order_date, address]
65 | return output
66 |
67 | if __name__ == '__main__':
68 | order_number = 141234
69 | for month in range(1,13):
70 | if month <= 10:
71 | orders_amount = int(numpy.random.normal(loc=12000, scale=4000))
72 | elif month == 11:
73 | orders_amount = int(numpy.random.normal(loc=20000, scale=3000))
74 | else: # month == 12
75 | orders_amount = int(numpy.random.normal(loc=26000, scale=3000))
76 |
77 | product_list = [product for product in products]
78 | weights = [products[product][1] for product in products]
79 |
80 | df = pd.DataFrame(columns=columns)
81 | print(orders_amount)
82 |
83 | i = 0
84 | while orders_amount > 0:
85 |
86 | address = generate_random_address()
87 | order_date = generate_random_time(month)
88 |
89 | product_choice = random.choices(product_list, weights)[0]
90 | df.loc[i] = write_row(order_number, product_choice, order_date, address)
91 | i += 1
92 |
93 | # Add some items to orders with random chance
94 | if product_choice == 'iPhone':
95 | if random.random() < 0.15:
96 | df.loc[i] = write_row(order_number, "Lightning Charging Cable", order_date, address)
97 | i += 1
98 | if random.random() < 0.05:
99 | df.loc[i] = write_row(order_number, "Apple Airpods Headphones", order_date, address)
100 | i += 1
101 |
102 | if random.random() < 0.07:
103 | df.loc[i] = write_row(order_number, "Wired Headphones", order_date, address)
104 | i += 1
105 |
106 | elif product_choice == "Google Phone" or product_choice == "Vareebadd Phone":
107 | if random.random() < 0.18:
108 | df.loc[i] = write_row(order_number, "USB-C Charging Cable", order_date, address)
109 | i += 1
110 | if random.random() < 0.04:
111 | df.loc[i] = write_row(order_number, "Bose SoundSport Headphones", order_date, address)
112 | i += 1
113 | if random.random() < 0.07:
114 | df.loc[i] = write_row(order_number, "Wired Headphones", order_date, address)
115 | i += 1
116 |
117 | if random.random() <= 0.02:
118 | product_choice = random.choices(product_list, weights)[0]
119 | df.loc[i] = write_row(order_number, product_choice, order_date, address)
120 | i += 1
121 |
122 | if random.random() <= 0.002:
123 | df.loc[i] = columns
124 | i += 1
125 |
126 | if random.random() <= 0.003:
127 | df.loc[i] = ["","","","","",""]
128 | i += 1
129 |
130 | order_number += 1
131 | orders_amount -= 1
132 |
133 | month_name = calendar.month_name[month]
134 | df.to_csv(f"Sales_{month_name}_2019.csv", index=False)
135 | print(f"{month_name} Complete")
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Pandas-Data-Science-Tasks
2 | ## Setup
3 |
4 | To access all of the files I recommend clone this repo it locally.
5 |
6 | The other option is to click the green "clone or download" button and then click "Download ZIP". You then should extract all of the files to the location you want to edit your code.
7 |
8 | Installing Jupyter Notebook: https://jupyter.readthedocs.io/en/latest/install.html
9 | Installing Pandas library: https://pandas.pydata.org/pandas-docs/stable/install.html
10 |
11 | ## Background Information:
12 | Python Pandas & Python Matplotlib to analyze and answer business questions about 12 months worth of sales data. The data contains hundreds of thousands of electronics store purchases broken down by month, product type, cost, purchase address, etc.
13 |
14 | We start by cleaning our data. Tasks during this section include:
15 | - Drop NaN values from DataFrame
16 | - Removing rows based on a condition
17 | - Change the type of columns (to_numeric, to_datetime, astype)
18 |
19 | Once we have cleaned up our data a bit, we move the data exploration section. In this section we explore 5 high level business questions related to our data:
20 | - What was the best month for sales? How much was earned that month?
21 | - What city sold the most product?
22 | - What time should we display advertisemens to maximize the likelihood of customer’s buying product?
23 | - What products are most often sold together?
24 | - What product sold the most? Why do you think it sold the most?
25 |
26 | To answer these questions we walk through many different pandas & matplotlib methods. They include:
27 | - Concatenating multiple csvs together to create a new DataFrame (pd.concat)
28 | - Adding columns
29 | - Parsing cells as strings to make new columns (.str)
30 | - Using the .apply() method
31 | - Using groupby to perform aggregate analysis
32 | - Plotting bar charts and lines graphs to visualize our results
33 | - Labeling our graphs
34 |
35 | ## Process:
36 | 
37 |
--------------------------------------------------------------------------------
/SalesAnalysis/Sales_Data_Analysis.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import pandas as pd\n",
10 | "import os"
11 | ]
12 | },
13 | {
14 | "cell_type": "markdown",
15 | "metadata": {},
16 | "source": [
17 | "#### Merging 12 months of sales data into a single file"
18 | ]
19 | },
20 | {
21 | "cell_type": "code",
22 | "execution_count": 2,
23 | "metadata": {},
24 | "outputs": [
25 | {
26 | "data": {
27 | "text/html": [
28 | "
\n",
29 | "\n",
42 | "
\n",
43 | " \n",
44 | " \n",
45 | " | \n",
46 | " Order ID | \n",
47 | " Product | \n",
48 | " Quantity Ordered | \n",
49 | " Price Each | \n",
50 | " Order Date | \n",
51 | " Purchase Address | \n",
52 | "
\n",
53 | " \n",
54 | " \n",
55 | " \n",
56 | " 0 | \n",
57 | " 176558 | \n",
58 | " USB-C Charging Cable | \n",
59 | " 2 | \n",
60 | " 11.95 | \n",
61 | " 04/19/19 08:46 | \n",
62 | " 917 1st St, Dallas, TX 75001 | \n",
63 | "
\n",
64 | " \n",
65 | " 1 | \n",
66 | " NaN | \n",
67 | " NaN | \n",
68 | " NaN | \n",
69 | " NaN | \n",
70 | " NaN | \n",
71 | " NaN | \n",
72 | "
\n",
73 | " \n",
74 | " 2 | \n",
75 | " 176559 | \n",
76 | " Bose SoundSport Headphones | \n",
77 | " 1 | \n",
78 | " 99.99 | \n",
79 | " 04/07/19 22:30 | \n",
80 | " 682 Chestnut St, Boston, MA 02215 | \n",
81 | "
\n",
82 | " \n",
83 | " 3 | \n",
84 | " 176560 | \n",
85 | " Google Phone | \n",
86 | " 1 | \n",
87 | " 600 | \n",
88 | " 04/12/19 14:38 | \n",
89 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
90 | "
\n",
91 | " \n",
92 | " 4 | \n",
93 | " 176560 | \n",
94 | " Wired Headphones | \n",
95 | " 1 | \n",
96 | " 11.99 | \n",
97 | " 04/12/19 14:38 | \n",
98 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
99 | "
\n",
100 | " \n",
101 | "
\n",
102 | "
"
103 | ],
104 | "text/plain": [
105 | " Order ID Product Quantity Ordered Price Each \\\n",
106 | "0 176558 USB-C Charging Cable 2 11.95 \n",
107 | "1 NaN NaN NaN NaN \n",
108 | "2 176559 Bose SoundSport Headphones 1 99.99 \n",
109 | "3 176560 Google Phone 1 600 \n",
110 | "4 176560 Wired Headphones 1 11.99 \n",
111 | "\n",
112 | " Order Date Purchase Address \n",
113 | "0 04/19/19 08:46 917 1st St, Dallas, TX 75001 \n",
114 | "1 NaN NaN \n",
115 | "2 04/07/19 22:30 682 Chestnut St, Boston, MA 02215 \n",
116 | "3 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 \n",
117 | "4 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 "
118 | ]
119 | },
120 | "execution_count": 2,
121 | "metadata": {},
122 | "output_type": "execute_result"
123 | }
124 | ],
125 | "source": [
126 | "files = [file for file in os.listdir('./Sales_Data') ]\n",
127 | "\n",
128 | "\n",
129 | "all_months_data = pd.DataFrame()\n",
130 | "\n",
131 | "for file in files:\n",
132 | " df = pd.read_csv(\"./Sales_Data/\"+file)\n",
133 | " all_months_data = pd.concat([all_months_data, df])\n",
134 | " \n",
135 | "all_months_data.head()"
136 | ]
137 | },
138 | {
139 | "cell_type": "code",
140 | "execution_count": 3,
141 | "metadata": {},
142 | "outputs": [],
143 | "source": [
144 | "#Saving single file output \n",
145 | "all_months_data.to_csv(\"all_data.csv\", index=False)"
146 | ]
147 | },
148 | {
149 | "cell_type": "markdown",
150 | "metadata": {},
151 | "source": [
152 | "#### Read in updated dataframe"
153 | ]
154 | },
155 | {
156 | "cell_type": "code",
157 | "execution_count": 4,
158 | "metadata": {},
159 | "outputs": [
160 | {
161 | "data": {
162 | "text/html": [
163 | "\n",
164 | "\n",
177 | "
\n",
178 | " \n",
179 | " \n",
180 | " | \n",
181 | " Order ID | \n",
182 | " Product | \n",
183 | " Quantity Ordered | \n",
184 | " Price Each | \n",
185 | " Order Date | \n",
186 | " Purchase Address | \n",
187 | "
\n",
188 | " \n",
189 | " \n",
190 | " \n",
191 | " 0 | \n",
192 | " 176558 | \n",
193 | " USB-C Charging Cable | \n",
194 | " 2 | \n",
195 | " 11.95 | \n",
196 | " 04/19/19 08:46 | \n",
197 | " 917 1st St, Dallas, TX 75001 | \n",
198 | "
\n",
199 | " \n",
200 | " 1 | \n",
201 | " NaN | \n",
202 | " NaN | \n",
203 | " NaN | \n",
204 | " NaN | \n",
205 | " NaN | \n",
206 | " NaN | \n",
207 | "
\n",
208 | " \n",
209 | " 2 | \n",
210 | " 176559 | \n",
211 | " Bose SoundSport Headphones | \n",
212 | " 1 | \n",
213 | " 99.99 | \n",
214 | " 04/07/19 22:30 | \n",
215 | " 682 Chestnut St, Boston, MA 02215 | \n",
216 | "
\n",
217 | " \n",
218 | " 3 | \n",
219 | " 176560 | \n",
220 | " Google Phone | \n",
221 | " 1 | \n",
222 | " 600 | \n",
223 | " 04/12/19 14:38 | \n",
224 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
225 | "
\n",
226 | " \n",
227 | " 4 | \n",
228 | " 176560 | \n",
229 | " Wired Headphones | \n",
230 | " 1 | \n",
231 | " 11.99 | \n",
232 | " 04/12/19 14:38 | \n",
233 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
234 | "
\n",
235 | " \n",
236 | "
\n",
237 | "
"
238 | ],
239 | "text/plain": [
240 | " Order ID Product Quantity Ordered Price Each \\\n",
241 | "0 176558 USB-C Charging Cable 2 11.95 \n",
242 | "1 NaN NaN NaN NaN \n",
243 | "2 176559 Bose SoundSport Headphones 1 99.99 \n",
244 | "3 176560 Google Phone 1 600 \n",
245 | "4 176560 Wired Headphones 1 11.99 \n",
246 | "\n",
247 | " Order Date Purchase Address \n",
248 | "0 04/19/19 08:46 917 1st St, Dallas, TX 75001 \n",
249 | "1 NaN NaN \n",
250 | "2 04/07/19 22:30 682 Chestnut St, Boston, MA 02215 \n",
251 | "3 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 \n",
252 | "4 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 "
253 | ]
254 | },
255 | "execution_count": 4,
256 | "metadata": {},
257 | "output_type": "execute_result"
258 | }
259 | ],
260 | "source": [
261 | "all_data = pd.read_csv(\"all_data.csv\")\n",
262 | "all_data.head()"
263 | ]
264 | },
265 | {
266 | "cell_type": "markdown",
267 | "metadata": {},
268 | "source": [
269 | "#### Clean up the data "
270 | ]
271 | },
272 | {
273 | "cell_type": "code",
274 | "execution_count": 5,
275 | "metadata": {},
276 | "outputs": [],
277 | "source": [
278 | "# Check rows of NAN\n",
279 | "nan_df = all_data[all_data.isna().any(axis=1)]\n",
280 | "nan_df.head()\n",
281 | "# Drop rows of NAN \n",
282 | "all_data = all_data.dropna(how='all')"
283 | ]
284 | },
285 | {
286 | "cell_type": "code",
287 | "execution_count": 6,
288 | "metadata": {},
289 | "outputs": [],
290 | "source": [
291 | "# Find 'Or' and delete and update all_data df\n",
292 | "all_data = all_data[all_data['Order Date'].str[0:2] != 'Or']"
293 | ]
294 | },
295 | {
296 | "cell_type": "code",
297 | "execution_count": 7,
298 | "metadata": {},
299 | "outputs": [
300 | {
301 | "data": {
302 | "text/html": [
303 | "\n",
304 | "\n",
317 | "
\n",
318 | " \n",
319 | " \n",
320 | " | \n",
321 | " Order ID | \n",
322 | " Product | \n",
323 | " Quantity Ordered | \n",
324 | " Price Each | \n",
325 | " Order Date | \n",
326 | " Purchase Address | \n",
327 | "
\n",
328 | " \n",
329 | " \n",
330 | " \n",
331 | " 0 | \n",
332 | " 176558 | \n",
333 | " USB-C Charging Cable | \n",
334 | " 2 | \n",
335 | " 11.95 | \n",
336 | " 04/19/19 08:46 | \n",
337 | " 917 1st St, Dallas, TX 75001 | \n",
338 | "
\n",
339 | " \n",
340 | " 2 | \n",
341 | " 176559 | \n",
342 | " Bose SoundSport Headphones | \n",
343 | " 1 | \n",
344 | " 99.99 | \n",
345 | " 04/07/19 22:30 | \n",
346 | " 682 Chestnut St, Boston, MA 02215 | \n",
347 | "
\n",
348 | " \n",
349 | " 3 | \n",
350 | " 176560 | \n",
351 | " Google Phone | \n",
352 | " 1 | \n",
353 | " 600.00 | \n",
354 | " 04/12/19 14:38 | \n",
355 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
356 | "
\n",
357 | " \n",
358 | " 4 | \n",
359 | " 176560 | \n",
360 | " Wired Headphones | \n",
361 | " 1 | \n",
362 | " 11.99 | \n",
363 | " 04/12/19 14:38 | \n",
364 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
365 | "
\n",
366 | " \n",
367 | " 5 | \n",
368 | " 176561 | \n",
369 | " Wired Headphones | \n",
370 | " 1 | \n",
371 | " 11.99 | \n",
372 | " 04/30/19 09:27 | \n",
373 | " 333 8th St, Los Angeles, CA 90001 | \n",
374 | "
\n",
375 | " \n",
376 | "
\n",
377 | "
"
378 | ],
379 | "text/plain": [
380 | " Order ID Product Quantity Ordered Price Each \\\n",
381 | "0 176558 USB-C Charging Cable 2 11.95 \n",
382 | "2 176559 Bose SoundSport Headphones 1 99.99 \n",
383 | "3 176560 Google Phone 1 600.00 \n",
384 | "4 176560 Wired Headphones 1 11.99 \n",
385 | "5 176561 Wired Headphones 1 11.99 \n",
386 | "\n",
387 | " Order Date Purchase Address \n",
388 | "0 04/19/19 08:46 917 1st St, Dallas, TX 75001 \n",
389 | "2 04/07/19 22:30 682 Chestnut St, Boston, MA 02215 \n",
390 | "3 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 \n",
391 | "4 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 \n",
392 | "5 04/30/19 09:27 333 8th St, Los Angeles, CA 90001 "
393 | ]
394 | },
395 | "execution_count": 7,
396 | "metadata": {},
397 | "output_type": "execute_result"
398 | }
399 | ],
400 | "source": [
401 | "#Convert columns to the correct type\n",
402 | "\n",
403 | "#to int\n",
404 | "all_data['Quantity Ordered'] = pd.to_numeric(all_data['Quantity Ordered']) \n",
405 | "#to float\n",
406 | "all_data['Price Each'] = pd.to_numeric(all_data['Price Each']) \n",
407 | "\n",
408 | "all_data.head()"
409 | ]
410 | },
411 | {
412 | "cell_type": "markdown",
413 | "metadata": {},
414 | "source": [
415 | "#### Augment data with additional columns"
416 | ]
417 | },
418 | {
419 | "cell_type": "markdown",
420 | "metadata": {},
421 | "source": [
422 | "#### 2: Add Month Column"
423 | ]
424 | },
425 | {
426 | "cell_type": "code",
427 | "execution_count": 8,
428 | "metadata": {},
429 | "outputs": [
430 | {
431 | "data": {
432 | "text/html": [
433 | "\n",
434 | "\n",
447 | "
\n",
448 | " \n",
449 | " \n",
450 | " | \n",
451 | " Order ID | \n",
452 | " Product | \n",
453 | " Quantity Ordered | \n",
454 | " Price Each | \n",
455 | " Order Date | \n",
456 | " Purchase Address | \n",
457 | " Month | \n",
458 | "
\n",
459 | " \n",
460 | " \n",
461 | " \n",
462 | " 0 | \n",
463 | " 176558 | \n",
464 | " USB-C Charging Cable | \n",
465 | " 2 | \n",
466 | " 11.95 | \n",
467 | " 04/19/19 08:46 | \n",
468 | " 917 1st St, Dallas, TX 75001 | \n",
469 | " 4 | \n",
470 | "
\n",
471 | " \n",
472 | " 2 | \n",
473 | " 176559 | \n",
474 | " Bose SoundSport Headphones | \n",
475 | " 1 | \n",
476 | " 99.99 | \n",
477 | " 04/07/19 22:30 | \n",
478 | " 682 Chestnut St, Boston, MA 02215 | \n",
479 | " 4 | \n",
480 | "
\n",
481 | " \n",
482 | " 3 | \n",
483 | " 176560 | \n",
484 | " Google Phone | \n",
485 | " 1 | \n",
486 | " 600.00 | \n",
487 | " 04/12/19 14:38 | \n",
488 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
489 | " 4 | \n",
490 | "
\n",
491 | " \n",
492 | " 4 | \n",
493 | " 176560 | \n",
494 | " Wired Headphones | \n",
495 | " 1 | \n",
496 | " 11.99 | \n",
497 | " 04/12/19 14:38 | \n",
498 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
499 | " 4 | \n",
500 | "
\n",
501 | " \n",
502 | " 5 | \n",
503 | " 176561 | \n",
504 | " Wired Headphones | \n",
505 | " 1 | \n",
506 | " 11.99 | \n",
507 | " 04/30/19 09:27 | \n",
508 | " 333 8th St, Los Angeles, CA 90001 | \n",
509 | " 4 | \n",
510 | "
\n",
511 | " \n",
512 | "
\n",
513 | "
"
514 | ],
515 | "text/plain": [
516 | " Order ID Product Quantity Ordered Price Each \\\n",
517 | "0 176558 USB-C Charging Cable 2 11.95 \n",
518 | "2 176559 Bose SoundSport Headphones 1 99.99 \n",
519 | "3 176560 Google Phone 1 600.00 \n",
520 | "4 176560 Wired Headphones 1 11.99 \n",
521 | "5 176561 Wired Headphones 1 11.99 \n",
522 | "\n",
523 | " Order Date Purchase Address Month \n",
524 | "0 04/19/19 08:46 917 1st St, Dallas, TX 75001 4 \n",
525 | "2 04/07/19 22:30 682 Chestnut St, Boston, MA 02215 4 \n",
526 | "3 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 \n",
527 | "4 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 \n",
528 | "5 04/30/19 09:27 333 8th St, Los Angeles, CA 90001 4 "
529 | ]
530 | },
531 | "execution_count": 8,
532 | "metadata": {},
533 | "output_type": "execute_result"
534 | }
535 | ],
536 | "source": [
537 | "# Transforming \"order date\" column \n",
538 | "all_data['Month'] = all_data['Order Date'].str[0:2]\n",
539 | "all_data['Month'] = all_data['Month'].astype('int32')\n",
540 | "all_data.head()"
541 | ]
542 | },
543 | {
544 | "cell_type": "markdown",
545 | "metadata": {},
546 | "source": [
547 | "#### 3: Add a sales column "
548 | ]
549 | },
550 | {
551 | "cell_type": "code",
552 | "execution_count": 9,
553 | "metadata": {},
554 | "outputs": [
555 | {
556 | "data": {
557 | "text/html": [
558 | "\n",
559 | "\n",
572 | "
\n",
573 | " \n",
574 | " \n",
575 | " | \n",
576 | " Order ID | \n",
577 | " Product | \n",
578 | " Quantity Ordered | \n",
579 | " Price Each | \n",
580 | " Order Date | \n",
581 | " Purchase Address | \n",
582 | " Month | \n",
583 | " Sales | \n",
584 | "
\n",
585 | " \n",
586 | " \n",
587 | " \n",
588 | " 0 | \n",
589 | " 176558 | \n",
590 | " USB-C Charging Cable | \n",
591 | " 2 | \n",
592 | " 11.95 | \n",
593 | " 04/19/19 08:46 | \n",
594 | " 917 1st St, Dallas, TX 75001 | \n",
595 | " 4 | \n",
596 | " 23.90 | \n",
597 | "
\n",
598 | " \n",
599 | " 2 | \n",
600 | " 176559 | \n",
601 | " Bose SoundSport Headphones | \n",
602 | " 1 | \n",
603 | " 99.99 | \n",
604 | " 04/07/19 22:30 | \n",
605 | " 682 Chestnut St, Boston, MA 02215 | \n",
606 | " 4 | \n",
607 | " 99.99 | \n",
608 | "
\n",
609 | " \n",
610 | " 3 | \n",
611 | " 176560 | \n",
612 | " Google Phone | \n",
613 | " 1 | \n",
614 | " 600.00 | \n",
615 | " 04/12/19 14:38 | \n",
616 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
617 | " 4 | \n",
618 | " 600.00 | \n",
619 | "
\n",
620 | " \n",
621 | " 4 | \n",
622 | " 176560 | \n",
623 | " Wired Headphones | \n",
624 | " 1 | \n",
625 | " 11.99 | \n",
626 | " 04/12/19 14:38 | \n",
627 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
628 | " 4 | \n",
629 | " 11.99 | \n",
630 | "
\n",
631 | " \n",
632 | " 5 | \n",
633 | " 176561 | \n",
634 | " Wired Headphones | \n",
635 | " 1 | \n",
636 | " 11.99 | \n",
637 | " 04/30/19 09:27 | \n",
638 | " 333 8th St, Los Angeles, CA 90001 | \n",
639 | " 4 | \n",
640 | " 11.99 | \n",
641 | "
\n",
642 | " \n",
643 | "
\n",
644 | "
"
645 | ],
646 | "text/plain": [
647 | " Order ID Product Quantity Ordered Price Each \\\n",
648 | "0 176558 USB-C Charging Cable 2 11.95 \n",
649 | "2 176559 Bose SoundSport Headphones 1 99.99 \n",
650 | "3 176560 Google Phone 1 600.00 \n",
651 | "4 176560 Wired Headphones 1 11.99 \n",
652 | "5 176561 Wired Headphones 1 11.99 \n",
653 | "\n",
654 | " Order Date Purchase Address Month Sales \n",
655 | "0 04/19/19 08:46 917 1st St, Dallas, TX 75001 4 23.90 \n",
656 | "2 04/07/19 22:30 682 Chestnut St, Boston, MA 02215 4 99.99 \n",
657 | "3 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 600.00 \n",
658 | "4 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 11.99 \n",
659 | "5 04/30/19 09:27 333 8th St, Los Angeles, CA 90001 4 11.99 "
660 | ]
661 | },
662 | "execution_count": 9,
663 | "metadata": {},
664 | "output_type": "execute_result"
665 | }
666 | ],
667 | "source": [
668 | "all_data['Sales'] = all_data['Quantity Ordered'] * all_data['Price Each']\n",
669 | "all_data.head()"
670 | ]
671 | },
672 | {
673 | "cell_type": "markdown",
674 | "metadata": {},
675 | "source": [
676 | "#### 4: Add a city column"
677 | ]
678 | },
679 | {
680 | "cell_type": "code",
681 | "execution_count": 10,
682 | "metadata": {},
683 | "outputs": [
684 | {
685 | "data": {
686 | "text/html": [
687 | "\n",
688 | "\n",
701 | "
\n",
702 | " \n",
703 | " \n",
704 | " | \n",
705 | " Order ID | \n",
706 | " Product | \n",
707 | " Quantity Ordered | \n",
708 | " Price Each | \n",
709 | " Order Date | \n",
710 | " Purchase Address | \n",
711 | " Month | \n",
712 | " Sales | \n",
713 | " City | \n",
714 | "
\n",
715 | " \n",
716 | " \n",
717 | " \n",
718 | " 0 | \n",
719 | " 176558 | \n",
720 | " USB-C Charging Cable | \n",
721 | " 2 | \n",
722 | " 11.95 | \n",
723 | " 04/19/19 08:46 | \n",
724 | " 917 1st St, Dallas, TX 75001 | \n",
725 | " 4 | \n",
726 | " 23.90 | \n",
727 | " Dallas TX | \n",
728 | "
\n",
729 | " \n",
730 | " 2 | \n",
731 | " 176559 | \n",
732 | " Bose SoundSport Headphones | \n",
733 | " 1 | \n",
734 | " 99.99 | \n",
735 | " 04/07/19 22:30 | \n",
736 | " 682 Chestnut St, Boston, MA 02215 | \n",
737 | " 4 | \n",
738 | " 99.99 | \n",
739 | " Boston MA | \n",
740 | "
\n",
741 | " \n",
742 | " 3 | \n",
743 | " 176560 | \n",
744 | " Google Phone | \n",
745 | " 1 | \n",
746 | " 600.00 | \n",
747 | " 04/12/19 14:38 | \n",
748 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
749 | " 4 | \n",
750 | " 600.00 | \n",
751 | " Los Angeles CA | \n",
752 | "
\n",
753 | " \n",
754 | " 4 | \n",
755 | " 176560 | \n",
756 | " Wired Headphones | \n",
757 | " 1 | \n",
758 | " 11.99 | \n",
759 | " 04/12/19 14:38 | \n",
760 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
761 | " 4 | \n",
762 | " 11.99 | \n",
763 | " Los Angeles CA | \n",
764 | "
\n",
765 | " \n",
766 | " 5 | \n",
767 | " 176561 | \n",
768 | " Wired Headphones | \n",
769 | " 1 | \n",
770 | " 11.99 | \n",
771 | " 04/30/19 09:27 | \n",
772 | " 333 8th St, Los Angeles, CA 90001 | \n",
773 | " 4 | \n",
774 | " 11.99 | \n",
775 | " Los Angeles CA | \n",
776 | "
\n",
777 | " \n",
778 | "
\n",
779 | "
"
780 | ],
781 | "text/plain": [
782 | " Order ID Product Quantity Ordered Price Each \\\n",
783 | "0 176558 USB-C Charging Cable 2 11.95 \n",
784 | "2 176559 Bose SoundSport Headphones 1 99.99 \n",
785 | "3 176560 Google Phone 1 600.00 \n",
786 | "4 176560 Wired Headphones 1 11.99 \n",
787 | "5 176561 Wired Headphones 1 11.99 \n",
788 | "\n",
789 | " Order Date Purchase Address Month Sales \\\n",
790 | "0 04/19/19 08:46 917 1st St, Dallas, TX 75001 4 23.90 \n",
791 | "2 04/07/19 22:30 682 Chestnut St, Boston, MA 02215 4 99.99 \n",
792 | "3 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 600.00 \n",
793 | "4 04/12/19 14:38 669 Spruce St, Los Angeles, CA 90001 4 11.99 \n",
794 | "5 04/30/19 09:27 333 8th St, Los Angeles, CA 90001 4 11.99 \n",
795 | "\n",
796 | " City \n",
797 | "0 Dallas TX \n",
798 | "2 Boston MA \n",
799 | "3 Los Angeles CA \n",
800 | "4 Los Angeles CA \n",
801 | "5 Los Angeles CA "
802 | ]
803 | },
804 | "execution_count": 10,
805 | "metadata": {},
806 | "output_type": "execute_result"
807 | }
808 | ],
809 | "source": [
810 | "# # Methond 1: Let's use .apply() method \n",
811 | "\n",
812 | "# all_data['Column'] = all_data['Purchase Address'].apply(lambda x: x.split(',')[1])\n",
813 | "# all_data.head()\n",
814 | "\n",
815 | "# Methon 2: Function tips with same line above \n",
816 | "\n",
817 | "def get_city(address):\n",
818 | " return address.split(',')[1]\n",
819 | " \n",
820 | "def get_state(address):\n",
821 | " return address.split(',')[2].split(' ')[1]\n",
822 | " \n",
823 | "all_data['City'] = all_data['Purchase Address'].apply(lambda x: get_city(x) + ' ' + get_state(x))\n",
824 | " #apply(lambda x: f\"{get_city(x)} ({get_state(x)})\")\n",
825 | "all_data.head()\n"
826 | ]
827 | },
828 | {
829 | "cell_type": "markdown",
830 | "metadata": {},
831 | "source": [
832 | "#### What was the best month for sales? how much was earned that month?"
833 | ]
834 | },
835 | {
836 | "cell_type": "code",
837 | "execution_count": 11,
838 | "metadata": {},
839 | "outputs": [],
840 | "source": [
841 | "results = all_data.groupby('Month').sum()"
842 | ]
843 | },
844 | {
845 | "cell_type": "code",
846 | "execution_count": 12,
847 | "metadata": {},
848 | "outputs": [
849 | {
850 | "data": {
851 | "text/plain": [
852 | "Month\n",
853 | "1 1.822257e+06\n",
854 | "2 2.202022e+06\n",
855 | "3 2.807100e+06\n",
856 | "4 3.390670e+06\n",
857 | "5 3.152607e+06\n",
858 | "6 2.577802e+06\n",
859 | "7 2.647776e+06\n",
860 | "8 2.244468e+06\n",
861 | "9 2.097560e+06\n",
862 | "10 3.736727e+06\n",
863 | "11 3.199603e+06\n",
864 | "12 4.613443e+06\n",
865 | "Name: Sales, dtype: float64"
866 | ]
867 | },
868 | "execution_count": 12,
869 | "metadata": {},
870 | "output_type": "execute_result"
871 | }
872 | ],
873 | "source": [
874 | "#Sales only \n",
875 | "all_data.groupby('Month').sum()['Sales']"
876 | ]
877 | },
878 | {
879 | "cell_type": "code",
880 | "execution_count": 13,
881 | "metadata": {},
882 | "outputs": [
883 | {
884 | "data": {
885 | "text/plain": [
886 | ""
887 | ]
888 | },
889 | "metadata": {},
890 | "output_type": "display_data"
891 | }
892 | ],
893 | "source": [
894 | "import matplotlib.pyplot as plt\n",
895 | "\n",
896 | "months = range(1,13)\n",
897 | "\n",
898 | "plt.bar(months, results['Sales'])\n",
899 | "plt.xticks(months)\n",
900 | "plt.xlabel('Month number')\n",
901 | "plt.ylabel('Sales in USD ($)')\n",
902 | "plt.show()\n"
903 | ]
904 | },
905 | {
906 | "cell_type": "markdown",
907 | "metadata": {},
908 | "source": [
909 | "#### What city had the highest number of sales "
910 | ]
911 | },
912 | {
913 | "cell_type": "code",
914 | "execution_count": 14,
915 | "metadata": {},
916 | "outputs": [
917 | {
918 | "data": {
919 | "text/html": [
920 | "\n",
921 | "\n",
934 | "
\n",
935 | " \n",
936 | " \n",
937 | " | \n",
938 | " Quantity Ordered | \n",
939 | " Price Each | \n",
940 | " Month | \n",
941 | " Sales | \n",
942 | "
\n",
943 | " \n",
944 | " City | \n",
945 | " | \n",
946 | " | \n",
947 | " | \n",
948 | " | \n",
949 | "
\n",
950 | " \n",
951 | " \n",
952 | " \n",
953 | " Atlanta GA | \n",
954 | " 16602 | \n",
955 | " 2.779908e+06 | \n",
956 | " 104794 | \n",
957 | " 2.795499e+06 | \n",
958 | "
\n",
959 | " \n",
960 | " Austin TX | \n",
961 | " 11153 | \n",
962 | " 1.809874e+06 | \n",
963 | " 69829 | \n",
964 | " 1.819582e+06 | \n",
965 | "
\n",
966 | " \n",
967 | " Boston MA | \n",
968 | " 22528 | \n",
969 | " 3.637410e+06 | \n",
970 | " 141112 | \n",
971 | " 3.661642e+06 | \n",
972 | "
\n",
973 | " \n",
974 | " Dallas TX | \n",
975 | " 16730 | \n",
976 | " 2.752628e+06 | \n",
977 | " 104620 | \n",
978 | " 2.767975e+06 | \n",
979 | "
\n",
980 | " \n",
981 | " Los Angeles CA | \n",
982 | " 33289 | \n",
983 | " 5.421435e+06 | \n",
984 | " 208325 | \n",
985 | " 5.452571e+06 | \n",
986 | "
\n",
987 | " \n",
988 | " New York City NY | \n",
989 | " 27932 | \n",
990 | " 4.635371e+06 | \n",
991 | " 175741 | \n",
992 | " 4.664317e+06 | \n",
993 | "
\n",
994 | " \n",
995 | " Portland ME | \n",
996 | " 2750 | \n",
997 | " 4.471893e+05 | \n",
998 | " 17144 | \n",
999 | " 4.497583e+05 | \n",
1000 | "
\n",
1001 | " \n",
1002 | " Portland OR | \n",
1003 | " 11303 | \n",
1004 | " 1.860558e+06 | \n",
1005 | " 70621 | \n",
1006 | " 1.870732e+06 | \n",
1007 | "
\n",
1008 | " \n",
1009 | " San Francisco CA | \n",
1010 | " 50239 | \n",
1011 | " 8.211462e+06 | \n",
1012 | " 315520 | \n",
1013 | " 8.262204e+06 | \n",
1014 | "
\n",
1015 | " \n",
1016 | " Seattle WA | \n",
1017 | " 16553 | \n",
1018 | " 2.733296e+06 | \n",
1019 | " 104941 | \n",
1020 | " 2.747755e+06 | \n",
1021 | "
\n",
1022 | " \n",
1023 | "
\n",
1024 | "
"
1025 | ],
1026 | "text/plain": [
1027 | " Quantity Ordered Price Each Month Sales\n",
1028 | "City \n",
1029 | " Atlanta GA 16602 2.779908e+06 104794 2.795499e+06\n",
1030 | " Austin TX 11153 1.809874e+06 69829 1.819582e+06\n",
1031 | " Boston MA 22528 3.637410e+06 141112 3.661642e+06\n",
1032 | " Dallas TX 16730 2.752628e+06 104620 2.767975e+06\n",
1033 | " Los Angeles CA 33289 5.421435e+06 208325 5.452571e+06\n",
1034 | " New York City NY 27932 4.635371e+06 175741 4.664317e+06\n",
1035 | " Portland ME 2750 4.471893e+05 17144 4.497583e+05\n",
1036 | " Portland OR 11303 1.860558e+06 70621 1.870732e+06\n",
1037 | " San Francisco CA 50239 8.211462e+06 315520 8.262204e+06\n",
1038 | " Seattle WA 16553 2.733296e+06 104941 2.747755e+06"
1039 | ]
1040 | },
1041 | "execution_count": 14,
1042 | "metadata": {},
1043 | "output_type": "execute_result"
1044 | }
1045 | ],
1046 | "source": [
1047 | "results = all_data.groupby('City').sum()\n",
1048 | "results"
1049 | ]
1050 | },
1051 | {
1052 | "cell_type": "code",
1053 | "execution_count": 15,
1054 | "metadata": {},
1055 | "outputs": [
1056 | {
1057 | "data": {
1058 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ4AAAFECAYAAAAX2VhGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3de/zt5Zz//8dTWymkg110YIctEpKtMmaQyE5GmR9fNX5KYpumHMYwCiPKoXGYyFD6KopR0mHaVLJ1cqq0SwcJbUltNbU7alCpnt8/rmvV6tP6HGe/r/Xx+Tzvt9u6rbWu9+F1rX1Yr/W+rut9XbJNREREKw8bdgUiImJ2SeKJiIimkngiIqKpJJ6IiGgqiSciIpqaM+wKTHePfexjPW/evGFXIyLiL8qFF154k+25g7Yl8Yxj3rx5LF26dNjViIj4iyLpt6NtS1NbREQ0lcQTERFNJfFERERTSTwREdFUEk9ERDSVxBMREU0l8URERFNJPBER0VQST0RENJWZCyIipmjevqd0HuPqg3bsPEZrueKJiIimkngiIqKpThOPpH+SdLmkn0k6RtIjJG0i6XxJV0r6hqRV676r1ffL6vZ5fefZr5b/UtLL+8oX1rJlkvbtK590jIiIaKOzxCNpQ+DtwALbmwOrALsA/wYcbHs+cCuwZz1kT+BW208BDq77IWmzetwzgIXAFyStImkV4PPADsBmwK51XyYbIyIi2um6qW0OsLqkOcAawPXAS4Dj6/ajgJ3r653qe+r27SSplh9r+y7bvwGWAVvVxzLbV9m+GzgW2KkeM9kYERHRSGeJx/bvgE8B11ASzu3AhcBttu+puy0HNqyvNwSurcfeU/dft798xDGjla87hRgPImmRpKWSlq5YsWIqHz8iIkbRZVPb2pQrjE2ADYBHUprFRnLvkFG2razysWI8uMA+3PYC2wvmzh24gF5ERExRl01tLwV+Y3uF7T8DJwJ/BaxVm94ANgKuq6+XAxsD1O2PAW7pLx9xzGjlN00hRkRENNJl4rkG2EbSGrUfZTvg58BZwGvqPrsDJ9fXi+t76vYzbbuW71JHpG0CzAd+AlwAzK8j2FalDEBYXI+ZbIyIiGiks5kLbJ8v6XjgIuAe4KfA4cApwLGSPlLLjqiHHAF8VdIyylXILvU8l0s6jpK07gH2tn0vgKR9gNMpI+aOtH15Pdd7JxMjIiLaUX7wj23BggVeunTpsKsREdNQpswZnaQLbS8YtC0zF0RERFNJPBER0VQST0RENJXEExERTSXxREREU0k8ERHRVBJPREQ0lcQTERFNJfFERERTSTwREdFUEk9ERDSVxBMREU0l8URERFNJPBER0VQST0RENJXEExERTXWWeCRtKunivsfvJb1T0jqSlki6sj6vXfeXpEMkLZN0qaQt+861e93/Skm795U/V9Jl9ZhD6hLbTCVGRES00Vnisf1L21vY3gJ4LvBH4CRgX+AM2/OBM+p7gB2A+fWxCDgUShIB9ge2BrYC9u8lkrrPor7jFtbyScWIiIh2WjW1bQf82vZvgZ2Ao2r5UcDO9fVOwNEuzgPWkvR44OXAEtu32L4VWAIsrNvWtH2uy/rdR48412RiREREI60Szy7AMfX1+ravB6jP69XyDYFr+45ZXsvGKl8+oHwqMR5E0iJJSyUtXbFixSQ+ZkREjKfzxCNpVeBVwDfH23VAmadQPpUYDy6wD7e9wPaCuXPnjnPKiIiYjBZXPDsAF9m+ob6/ode8VZ9vrOXLgY37jtsIuG6c8o0GlE8lRkRENNIi8ezKA81sAIuB3si03YGT+8p3qyPPtgFur81kpwPbS1q7DirYHji9brtD0jZ1NNtuI841mRgREdHInC5PLmkN4GXAW/uKDwKOk7QncA3w2lp+KvAKYBllBNweALZvkXQgcEHd7wDbt9TXewFfAVYHTquPSceIiIh2Ok08tv8IrDui7GbKKLeR+xrYe5TzHAkcOaB8KbD5gPJJx4iIiDYyc0FERDSVxBMREU0l8URERFNJPBER0VQST0RENJXEExERTSXxREREU0k8ERHRVBJPREQ0lcQTERFNJfFERERTSTwREdFUEk9ERDSVxBMREU0l8URERFNJPBER0VSniUfSWpKOl/QLSVdIer6kdSQtkXRlfV677itJh0haJulSSVv2nWf3uv+VknbvK3+upMvqMYfUJbCZSoyIiGij6yuezwLfsf004NnAFcC+wBm25wNn1PcAOwDz62MRcCiUJALsD2wNbAXs30skdZ9FfcctrOWTihEREe10lngkrQm8EDgCwPbdtm8DdgKOqrsdBexcX+8EHO3iPGAtSY8HXg4ssX2L7VuBJcDCum1N2+fWJa2PHnGuycSIiIhG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\n",
1059 | "text/plain": [
1060 | ""
1061 | ]
1062 | },
1063 | "metadata": {
1064 | "needs_background": "light"
1065 | },
1066 | "output_type": "display_data"
1067 | }
1068 | ],
1069 | "source": [
1070 | "import matplotlib.pyplot as plt\n",
1071 | "\n",
1072 | "cities = [city for city, df in all_data.groupby('City')]\n",
1073 | "\n",
1074 | "plt.bar(cities, results['Sales'])\n",
1075 | "plt.xticks(cities, rotation ='vertical', size=8)\n",
1076 | "plt.xlabel('City Name')\n",
1077 | "plt.ylabel('Sales in USD ($)')\n",
1078 | "plt.show()\n"
1079 | ]
1080 | },
1081 | {
1082 | "cell_type": "markdown",
1083 | "metadata": {},
1084 | "source": [
1085 | "#### What time should we display advertisements to maximize likelihood of customers buying products?"
1086 | ]
1087 | },
1088 | {
1089 | "cell_type": "code",
1090 | "execution_count": 16,
1091 | "metadata": {},
1092 | "outputs": [],
1093 | "source": [
1094 | "all_data['Order Date'] = pd.to_datetime(all_data['Order Date'])"
1095 | ]
1096 | },
1097 | {
1098 | "cell_type": "code",
1099 | "execution_count": 17,
1100 | "metadata": {},
1101 | "outputs": [
1102 | {
1103 | "data": {
1104 | "text/html": [
1105 | "\n",
1106 | "\n",
1119 | "
\n",
1120 | " \n",
1121 | " \n",
1122 | " | \n",
1123 | " Order ID | \n",
1124 | " Product | \n",
1125 | " Quantity Ordered | \n",
1126 | " Price Each | \n",
1127 | " Order Date | \n",
1128 | " Purchase Address | \n",
1129 | " Month | \n",
1130 | " Sales | \n",
1131 | " City | \n",
1132 | "
\n",
1133 | " \n",
1134 | " \n",
1135 | " \n",
1136 | " 0 | \n",
1137 | " 176558 | \n",
1138 | " USB-C Charging Cable | \n",
1139 | " 2 | \n",
1140 | " 11.95 | \n",
1141 | " 2019-04-19 08:46:00 | \n",
1142 | " 917 1st St, Dallas, TX 75001 | \n",
1143 | " 4 | \n",
1144 | " 23.90 | \n",
1145 | " Dallas TX | \n",
1146 | "
\n",
1147 | " \n",
1148 | " 2 | \n",
1149 | " 176559 | \n",
1150 | " Bose SoundSport Headphones | \n",
1151 | " 1 | \n",
1152 | " 99.99 | \n",
1153 | " 2019-04-07 22:30:00 | \n",
1154 | " 682 Chestnut St, Boston, MA 02215 | \n",
1155 | " 4 | \n",
1156 | " 99.99 | \n",
1157 | " Boston MA | \n",
1158 | "
\n",
1159 | " \n",
1160 | " 3 | \n",
1161 | " 176560 | \n",
1162 | " Google Phone | \n",
1163 | " 1 | \n",
1164 | " 600.00 | \n",
1165 | " 2019-04-12 14:38:00 | \n",
1166 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
1167 | " 4 | \n",
1168 | " 600.00 | \n",
1169 | " Los Angeles CA | \n",
1170 | "
\n",
1171 | " \n",
1172 | " 4 | \n",
1173 | " 176560 | \n",
1174 | " Wired Headphones | \n",
1175 | " 1 | \n",
1176 | " 11.99 | \n",
1177 | " 2019-04-12 14:38:00 | \n",
1178 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
1179 | " 4 | \n",
1180 | " 11.99 | \n",
1181 | " Los Angeles CA | \n",
1182 | "
\n",
1183 | " \n",
1184 | " 5 | \n",
1185 | " 176561 | \n",
1186 | " Wired Headphones | \n",
1187 | " 1 | \n",
1188 | " 11.99 | \n",
1189 | " 2019-04-30 09:27:00 | \n",
1190 | " 333 8th St, Los Angeles, CA 90001 | \n",
1191 | " 4 | \n",
1192 | " 11.99 | \n",
1193 | " Los Angeles CA | \n",
1194 | "
\n",
1195 | " \n",
1196 | "
\n",
1197 | "
"
1198 | ],
1199 | "text/plain": [
1200 | " Order ID Product Quantity Ordered Price Each \\\n",
1201 | "0 176558 USB-C Charging Cable 2 11.95 \n",
1202 | "2 176559 Bose SoundSport Headphones 1 99.99 \n",
1203 | "3 176560 Google Phone 1 600.00 \n",
1204 | "4 176560 Wired Headphones 1 11.99 \n",
1205 | "5 176561 Wired Headphones 1 11.99 \n",
1206 | "\n",
1207 | " Order Date Purchase Address Month Sales \\\n",
1208 | "0 2019-04-19 08:46:00 917 1st St, Dallas, TX 75001 4 23.90 \n",
1209 | "2 2019-04-07 22:30:00 682 Chestnut St, Boston, MA 02215 4 99.99 \n",
1210 | "3 2019-04-12 14:38:00 669 Spruce St, Los Angeles, CA 90001 4 600.00 \n",
1211 | "4 2019-04-12 14:38:00 669 Spruce St, Los Angeles, CA 90001 4 11.99 \n",
1212 | "5 2019-04-30 09:27:00 333 8th St, Los Angeles, CA 90001 4 11.99 \n",
1213 | "\n",
1214 | " City \n",
1215 | "0 Dallas TX \n",
1216 | "2 Boston MA \n",
1217 | "3 Los Angeles CA \n",
1218 | "4 Los Angeles CA \n",
1219 | "5 Los Angeles CA "
1220 | ]
1221 | },
1222 | "execution_count": 17,
1223 | "metadata": {},
1224 | "output_type": "execute_result"
1225 | }
1226 | ],
1227 | "source": [
1228 | "all_data.head()"
1229 | ]
1230 | },
1231 | {
1232 | "cell_type": "code",
1233 | "execution_count": 18,
1234 | "metadata": {},
1235 | "outputs": [
1236 | {
1237 | "data": {
1238 | "text/html": [
1239 | "\n",
1240 | "\n",
1253 | "
\n",
1254 | " \n",
1255 | " \n",
1256 | " | \n",
1257 | " Order ID | \n",
1258 | " Product | \n",
1259 | " Quantity Ordered | \n",
1260 | " Price Each | \n",
1261 | " Order Date | \n",
1262 | " Purchase Address | \n",
1263 | " Month | \n",
1264 | " Sales | \n",
1265 | " City | \n",
1266 | " Hour | \n",
1267 | "
\n",
1268 | " \n",
1269 | " \n",
1270 | " \n",
1271 | " 0 | \n",
1272 | " 176558 | \n",
1273 | " USB-C Charging Cable | \n",
1274 | " 2 | \n",
1275 | " 11.95 | \n",
1276 | " 2019-04-19 08:46:00 | \n",
1277 | " 917 1st St, Dallas, TX 75001 | \n",
1278 | " 4 | \n",
1279 | " 23.90 | \n",
1280 | " Dallas TX | \n",
1281 | " 8 | \n",
1282 | "
\n",
1283 | " \n",
1284 | " 2 | \n",
1285 | " 176559 | \n",
1286 | " Bose SoundSport Headphones | \n",
1287 | " 1 | \n",
1288 | " 99.99 | \n",
1289 | " 2019-04-07 22:30:00 | \n",
1290 | " 682 Chestnut St, Boston, MA 02215 | \n",
1291 | " 4 | \n",
1292 | " 99.99 | \n",
1293 | " Boston MA | \n",
1294 | " 22 | \n",
1295 | "
\n",
1296 | " \n",
1297 | " 3 | \n",
1298 | " 176560 | \n",
1299 | " Google Phone | \n",
1300 | " 1 | \n",
1301 | " 600.00 | \n",
1302 | " 2019-04-12 14:38:00 | \n",
1303 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
1304 | " 4 | \n",
1305 | " 600.00 | \n",
1306 | " Los Angeles CA | \n",
1307 | " 14 | \n",
1308 | "
\n",
1309 | " \n",
1310 | " 4 | \n",
1311 | " 176560 | \n",
1312 | " Wired Headphones | \n",
1313 | " 1 | \n",
1314 | " 11.99 | \n",
1315 | " 2019-04-12 14:38:00 | \n",
1316 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
1317 | " 4 | \n",
1318 | " 11.99 | \n",
1319 | " Los Angeles CA | \n",
1320 | " 14 | \n",
1321 | "
\n",
1322 | " \n",
1323 | " 5 | \n",
1324 | " 176561 | \n",
1325 | " Wired Headphones | \n",
1326 | " 1 | \n",
1327 | " 11.99 | \n",
1328 | " 2019-04-30 09:27:00 | \n",
1329 | " 333 8th St, Los Angeles, CA 90001 | \n",
1330 | " 4 | \n",
1331 | " 11.99 | \n",
1332 | " Los Angeles CA | \n",
1333 | " 9 | \n",
1334 | "
\n",
1335 | " \n",
1336 | "
\n",
1337 | "
"
1338 | ],
1339 | "text/plain": [
1340 | " Order ID Product Quantity Ordered Price Each \\\n",
1341 | "0 176558 USB-C Charging Cable 2 11.95 \n",
1342 | "2 176559 Bose SoundSport Headphones 1 99.99 \n",
1343 | "3 176560 Google Phone 1 600.00 \n",
1344 | "4 176560 Wired Headphones 1 11.99 \n",
1345 | "5 176561 Wired Headphones 1 11.99 \n",
1346 | "\n",
1347 | " Order Date Purchase Address Month Sales \\\n",
1348 | "0 2019-04-19 08:46:00 917 1st St, Dallas, TX 75001 4 23.90 \n",
1349 | "2 2019-04-07 22:30:00 682 Chestnut St, Boston, MA 02215 4 99.99 \n",
1350 | "3 2019-04-12 14:38:00 669 Spruce St, Los Angeles, CA 90001 4 600.00 \n",
1351 | "4 2019-04-12 14:38:00 669 Spruce St, Los Angeles, CA 90001 4 11.99 \n",
1352 | "5 2019-04-30 09:27:00 333 8th St, Los Angeles, CA 90001 4 11.99 \n",
1353 | "\n",
1354 | " City Hour \n",
1355 | "0 Dallas TX 8 \n",
1356 | "2 Boston MA 22 \n",
1357 | "3 Los Angeles CA 14 \n",
1358 | "4 Los Angeles CA 14 \n",
1359 | "5 Los Angeles CA 9 "
1360 | ]
1361 | },
1362 | "execution_count": 18,
1363 | "metadata": {},
1364 | "output_type": "execute_result"
1365 | }
1366 | ],
1367 | "source": [
1368 | "# By hour column\n",
1369 | "all_data['Hour'] = all_data['Order Date'].dt.hour\n",
1370 | "all_data.head()"
1371 | ]
1372 | },
1373 | {
1374 | "cell_type": "code",
1375 | "execution_count": 19,
1376 | "metadata": {},
1377 | "outputs": [
1378 | {
1379 | "data": {
1380 | "text/html": [
1381 | "\n",
1382 | "\n",
1395 | "
\n",
1396 | " \n",
1397 | " \n",
1398 | " | \n",
1399 | " Order ID | \n",
1400 | " Product | \n",
1401 | " Quantity Ordered | \n",
1402 | " Price Each | \n",
1403 | " Order Date | \n",
1404 | " Purchase Address | \n",
1405 | " Month | \n",
1406 | " Sales | \n",
1407 | " City | \n",
1408 | " Hour | \n",
1409 | " Minute | \n",
1410 | "
\n",
1411 | " \n",
1412 | " \n",
1413 | " \n",
1414 | " 0 | \n",
1415 | " 176558 | \n",
1416 | " USB-C Charging Cable | \n",
1417 | " 2 | \n",
1418 | " 11.95 | \n",
1419 | " 2019-04-19 08:46:00 | \n",
1420 | " 917 1st St, Dallas, TX 75001 | \n",
1421 | " 4 | \n",
1422 | " 23.90 | \n",
1423 | " Dallas TX | \n",
1424 | " 8 | \n",
1425 | " 46 | \n",
1426 | "
\n",
1427 | " \n",
1428 | " 2 | \n",
1429 | " 176559 | \n",
1430 | " Bose SoundSport Headphones | \n",
1431 | " 1 | \n",
1432 | " 99.99 | \n",
1433 | " 2019-04-07 22:30:00 | \n",
1434 | " 682 Chestnut St, Boston, MA 02215 | \n",
1435 | " 4 | \n",
1436 | " 99.99 | \n",
1437 | " Boston MA | \n",
1438 | " 22 | \n",
1439 | " 30 | \n",
1440 | "
\n",
1441 | " \n",
1442 | " 3 | \n",
1443 | " 176560 | \n",
1444 | " Google Phone | \n",
1445 | " 1 | \n",
1446 | " 600.00 | \n",
1447 | " 2019-04-12 14:38:00 | \n",
1448 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
1449 | " 4 | \n",
1450 | " 600.00 | \n",
1451 | " Los Angeles CA | \n",
1452 | " 14 | \n",
1453 | " 38 | \n",
1454 | "
\n",
1455 | " \n",
1456 | " 4 | \n",
1457 | " 176560 | \n",
1458 | " Wired Headphones | \n",
1459 | " 1 | \n",
1460 | " 11.99 | \n",
1461 | " 2019-04-12 14:38:00 | \n",
1462 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
1463 | " 4 | \n",
1464 | " 11.99 | \n",
1465 | " Los Angeles CA | \n",
1466 | " 14 | \n",
1467 | " 38 | \n",
1468 | "
\n",
1469 | " \n",
1470 | " 5 | \n",
1471 | " 176561 | \n",
1472 | " Wired Headphones | \n",
1473 | " 1 | \n",
1474 | " 11.99 | \n",
1475 | " 2019-04-30 09:27:00 | \n",
1476 | " 333 8th St, Los Angeles, CA 90001 | \n",
1477 | " 4 | \n",
1478 | " 11.99 | \n",
1479 | " Los Angeles CA | \n",
1480 | " 9 | \n",
1481 | " 27 | \n",
1482 | "
\n",
1483 | " \n",
1484 | "
\n",
1485 | "
"
1486 | ],
1487 | "text/plain": [
1488 | " Order ID Product Quantity Ordered Price Each \\\n",
1489 | "0 176558 USB-C Charging Cable 2 11.95 \n",
1490 | "2 176559 Bose SoundSport Headphones 1 99.99 \n",
1491 | "3 176560 Google Phone 1 600.00 \n",
1492 | "4 176560 Wired Headphones 1 11.99 \n",
1493 | "5 176561 Wired Headphones 1 11.99 \n",
1494 | "\n",
1495 | " Order Date Purchase Address Month Sales \\\n",
1496 | "0 2019-04-19 08:46:00 917 1st St, Dallas, TX 75001 4 23.90 \n",
1497 | "2 2019-04-07 22:30:00 682 Chestnut St, Boston, MA 02215 4 99.99 \n",
1498 | "3 2019-04-12 14:38:00 669 Spruce St, Los Angeles, CA 90001 4 600.00 \n",
1499 | "4 2019-04-12 14:38:00 669 Spruce St, Los Angeles, CA 90001 4 11.99 \n",
1500 | "5 2019-04-30 09:27:00 333 8th St, Los Angeles, CA 90001 4 11.99 \n",
1501 | "\n",
1502 | " City Hour Minute \n",
1503 | "0 Dallas TX 8 46 \n",
1504 | "2 Boston MA 22 30 \n",
1505 | "3 Los Angeles CA 14 38 \n",
1506 | "4 Los Angeles CA 14 38 \n",
1507 | "5 Los Angeles CA 9 27 "
1508 | ]
1509 | },
1510 | "execution_count": 19,
1511 | "metadata": {},
1512 | "output_type": "execute_result"
1513 | }
1514 | ],
1515 | "source": [
1516 | "# by Minute column\n",
1517 | "all_data['Minute'] = all_data['Order Date'].dt.minute\n",
1518 | "all_data.head()"
1519 | ]
1520 | },
1521 | {
1522 | "cell_type": "code",
1523 | "execution_count": 20,
1524 | "metadata": {},
1525 | "outputs": [
1526 | {
1527 | "data": {
1528 | "text/plain": [
1529 | "[,\n",
1530 | " ,\n",
1531 | " ,\n",
1532 | " ,\n",
1533 | " ,\n",
1534 | " ,\n",
1535 | " ,\n",
1536 | " ,\n",
1537 | " ,\n",
1538 | " ]"
1539 | ]
1540 | },
1541 | "execution_count": 20,
1542 | "metadata": {},
1543 | "output_type": "execute_result"
1544 | },
1545 | {
1546 | "data": {
1547 | "image/png": "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\n",
1548 | "text/plain": [
1549 | ""
1550 | ]
1551 | },
1552 | "metadata": {
1553 | "needs_background": "light"
1554 | },
1555 | "output_type": "display_data"
1556 | }
1557 | ],
1558 | "source": [
1559 | "import matplotlib.pyplot as plt\n",
1560 | "\n",
1561 | "hours = [hour for hour, df in all_data.groupby('Hour')]\n",
1562 | "\n",
1563 | "plt.xticks(hours)\n",
1564 | "plt.xlabel('Hour')\n",
1565 | "plt.ylabel('Number of Orders')\n",
1566 | "plt.grid()\n",
1567 | "plt.plot(hours, all_data.groupby(['Hour']).count())"
1568 | ]
1569 | },
1570 | {
1571 | "cell_type": "markdown",
1572 | "metadata": {},
1573 | "source": [
1574 | "#### What products are most often sold together?"
1575 | ]
1576 | },
1577 | {
1578 | "cell_type": "code",
1579 | "execution_count": 28,
1580 | "metadata": {},
1581 | "outputs": [
1582 | {
1583 | "name": "stderr",
1584 | "output_type": "stream",
1585 | "text": [
1586 | "C:\\Users\\petra\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:6: SettingWithCopyWarning: \n",
1587 | "A value is trying to be set on a copy of a slice from a DataFrame.\n",
1588 | "Try using .loc[row_indexer,col_indexer] = value instead\n",
1589 | "\n",
1590 | "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
1591 | " \n"
1592 | ]
1593 | }
1594 | ],
1595 | "source": [
1596 | "#Get duplicated Order ID's \n",
1597 | "# https://stackoverflow.com/questions/43348194/pandas-select-rows-if-id-appear-several-time\n",
1598 | "df = all_data[all_data['Order ID'].duplicated(keep=False)]\n",
1599 | "\n",
1600 | "# Referenced: https://stackoverflow.com/questions/27298178/concatenate-strings-from-several-rows-using-pandas-groupby\n",
1601 | "df['Grouped'] = df.groupby('Order ID')['Product'].transform(lambda x: ','.join(x))\n",
1602 | "df2 = df[['Order ID', 'Grouped']].drop_duplicates()"
1603 | ]
1604 | },
1605 | {
1606 | "cell_type": "code",
1607 | "execution_count": 29,
1608 | "metadata": {
1609 | "collapsed": true,
1610 | "jupyter": {
1611 | "outputs_hidden": true
1612 | }
1613 | },
1614 | "outputs": [
1615 | {
1616 | "data": {
1617 | "text/html": [
1618 | "\n",
1619 | "\n",
1632 | "
\n",
1633 | " \n",
1634 | " \n",
1635 | " | \n",
1636 | " Order ID | \n",
1637 | " Product | \n",
1638 | " Quantity Ordered | \n",
1639 | " Price Each | \n",
1640 | " Order Date | \n",
1641 | " Purchase Address | \n",
1642 | " Month | \n",
1643 | " Sales | \n",
1644 | " City | \n",
1645 | " Hour | \n",
1646 | " Minute | \n",
1647 | " Grouped | \n",
1648 | "
\n",
1649 | " \n",
1650 | " \n",
1651 | " \n",
1652 | " 3 | \n",
1653 | " 176560 | \n",
1654 | " Google Phone | \n",
1655 | " 1 | \n",
1656 | " 600.00 | \n",
1657 | " 2019-04-12 14:38:00 | \n",
1658 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
1659 | " 4 | \n",
1660 | " 600.00 | \n",
1661 | " Los Angeles CA | \n",
1662 | " 14 | \n",
1663 | " 38 | \n",
1664 | " Google Phone,Wired Headphones | \n",
1665 | "
\n",
1666 | " \n",
1667 | " 4 | \n",
1668 | " 176560 | \n",
1669 | " Wired Headphones | \n",
1670 | " 1 | \n",
1671 | " 11.99 | \n",
1672 | " 2019-04-12 14:38:00 | \n",
1673 | " 669 Spruce St, Los Angeles, CA 90001 | \n",
1674 | " 4 | \n",
1675 | " 11.99 | \n",
1676 | " Los Angeles CA | \n",
1677 | " 14 | \n",
1678 | " 38 | \n",
1679 | " Google Phone,Wired Headphones | \n",
1680 | "
\n",
1681 | " \n",
1682 | " 18 | \n",
1683 | " 176574 | \n",
1684 | " Google Phone | \n",
1685 | " 1 | \n",
1686 | " 600.00 | \n",
1687 | " 2019-04-03 19:42:00 | \n",
1688 | " 20 Hill St, Los Angeles, CA 90001 | \n",
1689 | " 4 | \n",
1690 | " 600.00 | \n",
1691 | " Los Angeles CA | \n",
1692 | " 19 | \n",
1693 | " 42 | \n",
1694 | " Google Phone,USB-C Charging Cable | \n",
1695 | "
\n",
1696 | " \n",
1697 | " 19 | \n",
1698 | " 176574 | \n",
1699 | " USB-C Charging Cable | \n",
1700 | " 1 | \n",
1701 | " 11.95 | \n",
1702 | " 2019-04-03 19:42:00 | \n",
1703 | " 20 Hill St, Los Angeles, CA 90001 | \n",
1704 | " 4 | \n",
1705 | " 11.95 | \n",
1706 | " Los Angeles CA | \n",
1707 | " 19 | \n",
1708 | " 42 | \n",
1709 | " Google Phone,USB-C Charging Cable | \n",
1710 | "
\n",
1711 | " \n",
1712 | " 30 | \n",
1713 | " 176585 | \n",
1714 | " Bose SoundSport Headphones | \n",
1715 | " 1 | \n",
1716 | " 99.99 | \n",
1717 | " 2019-04-07 11:31:00 | \n",
1718 | " 823 Highland St, Boston, MA 02215 | \n",
1719 | " 4 | \n",
1720 | " 99.99 | \n",
1721 | " Boston MA | \n",
1722 | " 11 | \n",
1723 | " 31 | \n",
1724 | " Bose SoundSport Headphones,Bose SoundSport Hea... | \n",
1725 | "
\n",
1726 | " \n",
1727 | " 31 | \n",
1728 | " 176585 | \n",
1729 | " Bose SoundSport Headphones | \n",
1730 | " 1 | \n",
1731 | " 99.99 | \n",
1732 | " 2019-04-07 11:31:00 | \n",
1733 | " 823 Highland St, Boston, MA 02215 | \n",
1734 | " 4 | \n",
1735 | " 99.99 | \n",
1736 | " Boston MA | \n",
1737 | " 11 | \n",
1738 | " 31 | \n",
1739 | " Bose SoundSport Headphones,Bose SoundSport Hea... | \n",
1740 | "
\n",
1741 | " \n",
1742 | " 32 | \n",
1743 | " 176586 | \n",
1744 | " AAA Batteries (4-pack) | \n",
1745 | " 2 | \n",
1746 | " 2.99 | \n",
1747 | " 2019-04-10 17:00:00 | \n",
1748 | " 365 Center St, San Francisco, CA 94016 | \n",
1749 | " 4 | \n",
1750 | " 5.98 | \n",
1751 | " San Francisco CA | \n",
1752 | " 17 | \n",
1753 | " 0 | \n",
1754 | " AAA Batteries (4-pack),Google Phone | \n",
1755 | "
\n",
1756 | " \n",
1757 | " 33 | \n",
1758 | " 176586 | \n",
1759 | " Google Phone | \n",
1760 | " 1 | \n",
1761 | " 600.00 | \n",
1762 | " 2019-04-10 17:00:00 | \n",
1763 | " 365 Center St, San Francisco, CA 94016 | \n",
1764 | " 4 | \n",
1765 | " 600.00 | \n",
1766 | " San Francisco CA | \n",
1767 | " 17 | \n",
1768 | " 0 | \n",
1769 | " AAA Batteries (4-pack),Google Phone | \n",
1770 | "
\n",
1771 | " \n",
1772 | " 119 | \n",
1773 | " 176672 | \n",
1774 | " Lightning Charging Cable | \n",
1775 | " 1 | \n",
1776 | " 14.95 | \n",
1777 | " 2019-04-12 11:07:00 | \n",
1778 | " 778 Maple St, New York City, NY 10001 | \n",
1779 | " 4 | \n",
1780 | " 14.95 | \n",
1781 | " New York City NY | \n",
1782 | " 11 | \n",
1783 | " 7 | \n",
1784 | " Lightning Charging Cable,USB-C Charging Cable | \n",
1785 | "
\n",
1786 | " \n",
1787 | " 120 | \n",
1788 | " 176672 | \n",
1789 | " USB-C Charging Cable | \n",
1790 | " 1 | \n",
1791 | " 11.95 | \n",
1792 | " 2019-04-12 11:07:00 | \n",
1793 | " 778 Maple St, New York City, NY 10001 | \n",
1794 | " 4 | \n",
1795 | " 11.95 | \n",
1796 | " New York City NY | \n",
1797 | " 11 | \n",
1798 | " 7 | \n",
1799 | " Lightning Charging Cable,USB-C Charging Cable | \n",
1800 | "
\n",
1801 | " \n",
1802 | "
\n",
1803 | "
"
1804 | ],
1805 | "text/plain": [
1806 | " Order ID Product Quantity Ordered Price Each \\\n",
1807 | "3 176560 Google Phone 1 600.00 \n",
1808 | "4 176560 Wired Headphones 1 11.99 \n",
1809 | "18 176574 Google Phone 1 600.00 \n",
1810 | "19 176574 USB-C Charging Cable 1 11.95 \n",
1811 | "30 176585 Bose SoundSport Headphones 1 99.99 \n",
1812 | "31 176585 Bose SoundSport Headphones 1 99.99 \n",
1813 | "32 176586 AAA Batteries (4-pack) 2 2.99 \n",
1814 | "33 176586 Google Phone 1 600.00 \n",
1815 | "119 176672 Lightning Charging Cable 1 14.95 \n",
1816 | "120 176672 USB-C Charging Cable 1 11.95 \n",
1817 | "\n",
1818 | " Order Date Purchase Address Month \\\n",
1819 | "3 2019-04-12 14:38:00 669 Spruce St, Los Angeles, CA 90001 4 \n",
1820 | "4 2019-04-12 14:38:00 669 Spruce St, Los Angeles, CA 90001 4 \n",
1821 | "18 2019-04-03 19:42:00 20 Hill St, Los Angeles, CA 90001 4 \n",
1822 | "19 2019-04-03 19:42:00 20 Hill St, Los Angeles, CA 90001 4 \n",
1823 | "30 2019-04-07 11:31:00 823 Highland St, Boston, MA 02215 4 \n",
1824 | "31 2019-04-07 11:31:00 823 Highland St, Boston, MA 02215 4 \n",
1825 | "32 2019-04-10 17:00:00 365 Center St, San Francisco, CA 94016 4 \n",
1826 | "33 2019-04-10 17:00:00 365 Center St, San Francisco, CA 94016 4 \n",
1827 | "119 2019-04-12 11:07:00 778 Maple St, New York City, NY 10001 4 \n",
1828 | "120 2019-04-12 11:07:00 778 Maple St, New York City, NY 10001 4 \n",
1829 | "\n",
1830 | " Sales City Hour Minute \\\n",
1831 | "3 600.00 Los Angeles CA 14 38 \n",
1832 | "4 11.99 Los Angeles CA 14 38 \n",
1833 | "18 600.00 Los Angeles CA 19 42 \n",
1834 | "19 11.95 Los Angeles CA 19 42 \n",
1835 | "30 99.99 Boston MA 11 31 \n",
1836 | "31 99.99 Boston MA 11 31 \n",
1837 | "32 5.98 San Francisco CA 17 0 \n",
1838 | "33 600.00 San Francisco CA 17 0 \n",
1839 | "119 14.95 New York City NY 11 7 \n",
1840 | "120 11.95 New York City NY 11 7 \n",
1841 | "\n",
1842 | " Grouped \n",
1843 | "3 Google Phone,Wired Headphones \n",
1844 | "4 Google Phone,Wired Headphones \n",
1845 | "18 Google Phone,USB-C Charging Cable \n",
1846 | "19 Google Phone,USB-C Charging Cable \n",
1847 | "30 Bose SoundSport Headphones,Bose SoundSport Hea... \n",
1848 | "31 Bose SoundSport Headphones,Bose SoundSport Hea... \n",
1849 | "32 AAA Batteries (4-pack),Google Phone \n",
1850 | "33 AAA Batteries (4-pack),Google Phone \n",
1851 | "119 Lightning Charging Cable,USB-C Charging Cable \n",
1852 | "120 Lightning Charging Cable,USB-C Charging Cable "
1853 | ]
1854 | },
1855 | "execution_count": 29,
1856 | "metadata": {},
1857 | "output_type": "execute_result"
1858 | }
1859 | ],
1860 | "source": [
1861 | "df.head(10)"
1862 | ]
1863 | },
1864 | {
1865 | "cell_type": "code",
1866 | "execution_count": 38,
1867 | "metadata": {},
1868 | "outputs": [
1869 | {
1870 | "name": "stdout",
1871 | "output_type": "stream",
1872 | "text": [
1873 | "('iPhone', 'Lightning Charging Cable') 2140\n",
1874 | "('Google Phone', 'USB-C Charging Cable') 2116\n",
1875 | "('iPhone', 'Wired Headphones') 987\n",
1876 | "('Google Phone', 'Wired Headphones') 949\n",
1877 | "('iPhone', 'Apple Airpods Headphones') 799\n",
1878 | "('Vareebadd Phone', 'USB-C Charging Cable') 773\n",
1879 | "('Google Phone', 'Bose SoundSport Headphones') 503\n",
1880 | "('USB-C Charging Cable', 'Wired Headphones') 452\n",
1881 | "('Vareebadd Phone', 'Wired Headphones') 327\n",
1882 | "('Lightning Charging Cable', 'Wired Headphones') 253\n"
1883 | ]
1884 | }
1885 | ],
1886 | "source": [
1887 | "from itertools import combinations\n",
1888 | "from collections import Counter\n",
1889 | "\n",
1890 | "count = Counter()\n",
1891 | "\n",
1892 | "for row in df['Grouped']:\n",
1893 | " row_list = row.split(',')\n",
1894 | " count.update(Counter(combinations(row_list, 2)))\n",
1895 | "\n",
1896 | "for key, value in count.most_common(10):\n",
1897 | " print(key, value)"
1898 | ]
1899 | },
1900 | {
1901 | "cell_type": "markdown",
1902 | "metadata": {},
1903 | "source": [
1904 | "#### 5. What products sold the most? Why do you think it sold the most?"
1905 | ]
1906 | },
1907 | {
1908 | "cell_type": "code",
1909 | "execution_count": 50,
1910 | "metadata": {},
1911 | "outputs": [],
1912 | "source": [
1913 | "product_group = all_data.groupby('Product')\n",
1914 | "quantity_ordered = product_group.sum()['Quantity Ordered']"
1915 | ]
1916 | },
1917 | {
1918 | "cell_type": "code",
1919 | "execution_count": 51,
1920 | "metadata": {},
1921 | "outputs": [
1922 | {
1923 | "data": {
1924 | "text/plain": [
1925 | "Product\n",
1926 | "20in Monitor 4129\n",
1927 | "27in 4K Gaming Monitor 6244\n",
1928 | "27in FHD Monitor 7550\n",
1929 | "34in Ultrawide Monitor 6199\n",
1930 | "AA Batteries (4-pack) 27635\n",
1931 | "AAA Batteries (4-pack) 31017\n",
1932 | "Apple Airpods Headphones 15661\n",
1933 | "Bose SoundSport Headphones 13457\n",
1934 | "Flatscreen TV 4819\n",
1935 | "Google Phone 5532\n",
1936 | "LG Dryer 646\n",
1937 | "LG Washing Machine 666\n",
1938 | "Lightning Charging Cable 23217\n",
1939 | "Macbook Pro Laptop 4728\n",
1940 | "ThinkPad Laptop 4130\n",
1941 | "USB-C Charging Cable 23975\n",
1942 | "Vareebadd Phone 2068\n",
1943 | "Wired Headphones 20557\n",
1944 | "iPhone 6849\n",
1945 | "Name: Quantity Ordered, dtype: int64"
1946 | ]
1947 | },
1948 | "execution_count": 51,
1949 | "metadata": {},
1950 | "output_type": "execute_result"
1951 | }
1952 | ],
1953 | "source": [
1954 | "quantity_ordered"
1955 | ]
1956 | },
1957 | {
1958 | "cell_type": "code",
1959 | "execution_count": 53,
1960 | "metadata": {},
1961 | "outputs": [
1962 | {
1963 | "data": {
1964 | "image/png": "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\n",
1965 | "text/plain": [
1966 | ""
1967 | ]
1968 | },
1969 | "metadata": {
1970 | "needs_background": "light"
1971 | },
1972 | "output_type": "display_data"
1973 | }
1974 | ],
1975 | "source": [
1976 | "products = [product for product, df in product_group]\n",
1977 | "\n",
1978 | "plt.bar(products, quantity_ordered)\n",
1979 | "plt.xticks(products, rotation ='vertical', size=8)\n",
1980 | "plt.xlabel('Product')\n",
1981 | "plt.ylabel('Quantity Ordered')\n",
1982 | "plt.show()"
1983 | ]
1984 | },
1985 | {
1986 | "cell_type": "code",
1987 | "execution_count": 58,
1988 | "metadata": {},
1989 | "outputs": [
1990 | {
1991 | "name": "stderr",
1992 | "output_type": "stream",
1993 | "text": [
1994 | "C:\\Users\\petra\\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",
1995 | " app.launch_new_instance()\n"
1996 | ]
1997 | },
1998 | {
1999 | "data": {
2000 | "image/png": "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\n",
2001 | "text/plain": [
2002 | ""
2003 | ]
2004 | },
2005 | "metadata": {
2006 | "needs_background": "light"
2007 | },
2008 | "output_type": "display_data"
2009 | }
2010 | ],
2011 | "source": [
2012 | "# Referenced: https://stackoverflow.com/questions/14762181/adding-a-y-axis-label-to-secondary-y-axis-in-matplotlib\n",
2013 | "\n",
2014 | "prices = all_data.groupby('Product').mean()['Price Each']\n",
2015 | "\n",
2016 | "fig, ax1 = plt.subplots()\n",
2017 | "\n",
2018 | "ax2 = ax1.twinx()\n",
2019 | "ax1.bar(products, quantity_ordered, color='g')\n",
2020 | "ax2.plot(products, prices, color='b')\n",
2021 | "\n",
2022 | "ax1.set_xlabel('Product Name')\n",
2023 | "ax1.set_ylabel('Quantity Ordered', color='g')\n",
2024 | "ax2.set_ylabel('Price ($)', color='b')\n",
2025 | "ax1.set_xticklabels(products, rotation='vertical', size=8)\n",
2026 | "\n",
2027 | "fig.show()"
2028 | ]
2029 | },
2030 | {
2031 | "cell_type": "code",
2032 | "execution_count": null,
2033 | "metadata": {},
2034 | "outputs": [],
2035 | "source": []
2036 | }
2037 | ],
2038 | "metadata": {
2039 | "kernelspec": {
2040 | "display_name": "Python 3",
2041 | "language": "python",
2042 | "name": "python3"
2043 | },
2044 | "language_info": {
2045 | "codemirror_mode": {
2046 | "name": "ipython",
2047 | "version": 3
2048 | },
2049 | "file_extension": ".py",
2050 | "mimetype": "text/x-python",
2051 | "name": "python",
2052 | "nbconvert_exporter": "python",
2053 | "pygments_lexer": "ipython3",
2054 | "version": "3.7.4"
2055 | }
2056 | },
2057 | "nbformat": 4,
2058 | "nbformat_minor": 4
2059 | }
2060 |
--------------------------------------------------------------------------------
/SalesAnalysis/Sales_Data_Analysis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PetraLee2019/Python-Sales-Data-Analysis/75746fb651d101834ecc4301bd6cc5907e57a7bc/SalesAnalysis/Sales_Data_Analysis.png
--------------------------------------------------------------------------------