├── README.md
├── iPhone Data Analysis using SQL
└── apple_products.csv
└── E-Commerce Final Project Python + SQL
└── Ecommerce Data Analysis.ipynb
/README.md:
--------------------------------------------------------------------------------
1 | # sql-for-data-engineering-course
2 | sql-for-data-engineering-course
3 |
--------------------------------------------------------------------------------
/iPhone Data Analysis using SQL/apple_products.csv:
--------------------------------------------------------------------------------
1 | Product Name,Product URL,Brand,Sale Price,Mrp,Discount Percentage,Number Of Ratings,Number Of Reviews,Upc,Star Rating,Ram
2 | "APPLE iPhone 8 Plus (Gold, 64 GB)",https://www.flipkart.com/apple-iphone-8-plus-gold-64-gb/p/itmexrgvuzgzttzh?pid=MOBEXRGV7EHHTGUH,Apple,49900,49900,0,3431,356,MOBEXRGV7EHHTGUH,4.6,2 GB
3 | "APPLE iPhone 8 Plus (Space Grey, 256 GB)",https://www.flipkart.com/apple-iphone-8-plus-space-grey-256-gb/p/itmexrgvzkbyqgtf?pid=MOBEXRGVAC6TJT4F,Apple,84900,84900,0,3431,356,MOBEXRGVAC6TJT4F,4.6,2 GB
4 | "APPLE iPhone 8 Plus (Silver, 256 GB)",https://www.flipkart.com/apple-iphone-8-plus-silver-256-gb/p/itmexrgvxatuyrqw?pid=MOBEXRGVGETABXWZ,Apple,84900,84900,0,3431,356,MOBEXRGVGETABXWZ,4.6,2 GB
5 | "APPLE iPhone 8 (Silver, 256 GB)",https://www.flipkart.com/apple-iphone-8-silver-256-gb/p/itmexrgvae48gzhp?pid=MOBEXRGVMZWUHCBA,Apple,77000,77000,0,11202,794,MOBEXRGVMZWUHCBA,4.5,2 GB
6 | "APPLE iPhone 8 (Gold, 256 GB)",https://www.flipkart.com/apple-iphone-8-gold-256-gb/p/itmexrgv8bvfbzgw?pid=MOBEXRGVPK7PFEJZ,Apple,77000,77000,0,11202,794,MOBEXRGVPK7PFEJZ,4.5,2 GB
7 | "APPLE iPhone 8 Plus (Silver, 64 GB)",https://www.flipkart.com/apple-iphone-8-plus-silver-64-gb/p/itmexrgv7yfjbryy?pid=MOBEXRGVQGYYP8FV,Apple,49900,49900,0,3431,356,MOBEXRGVQGYYP8FV,4.6,2 GB
8 | "APPLE iPhone 8 Plus (Space Grey, 64 GB)",https://www.flipkart.com/apple-iphone-8-plus-space-grey-64-gb/p/itmexrgvehtzhh9v?pid=MOBEXRGVQKBREZP8,Apple,49900,49900,0,3431,356,MOBEXRGVQKBREZP8,4.6,2 GB
9 | "APPLE iPhone 8 (Space Grey, 256 GB)",https://www.flipkart.com/apple-iphone-8-space-grey-256-gb/p/itmexrgvypzqw6df?pid=MOBEXRGVZFZGZEWV,Apple,77000,77000,0,11202,794,MOBEXRGVZFZGZEWV,4.5,2 GB
10 | "APPLE iPhone XS Max (Silver, 64 GB)",https://www.flipkart.com/apple-iphone-xs-max-silver-64-gb/p/itmf944ehzsh7emx?pid=MOBF944E2XAHW8V5,Apple,89900,89900,0,1454,149,MOBF944E2XAHW8V5,4.6,4 GB
11 | "Apple iPhone XR ((PRODUCT)RED, 128 GB) (Includes EarPods, Power Adapter)",https://www.flipkart.com/apple-iphone-xr-product-red-128-gb-includes-earpods-power-adapter/p/itmf9z7zbkvjzegf?pid=MOBF9Z7ZHQC23PWQ,Apple,41999,52900,20,79512,6796,MOBF9Z7ZHQC23PWQ,4.6,4 GB
12 | "Apple iPhone XR (Black, 64 GB) (Includes EarPods, Power Adapter)",https://www.flipkart.com/apple-iphone-xr-black-64-gb-includes-earpods-power-adapter/p/itmf9z7zxu4uqyz2?pid=MOBF9Z7ZPHGV4GNH,Apple,39999,47900,16,79512,6796,MOBF9Z7ZPHGV4GNH,4.6,4 GB
13 | "Apple iPhone XR (Coral, 128 GB) (Includes EarPods, Power Adapter)",https://www.flipkart.com/apple-iphone-xr-coral-128-gb-includes-earpods-power-adapter/p/itmf9z7zgxx5wgez?pid=MOBF9Z7ZS6GF5UAP,Apple,41999,52900,20,79582,6804,MOBF9Z7ZS6GF5UAP,4.6,4 GB
14 | "Apple iPhone XR (Black, 128 GB) (Includes EarPods, Power Adapter)",https://www.flipkart.com/apple-iphone-xr-black-128-gb-includes-earpods-power-adapter/p/itmf9z7zhdgzwmzm?pid=MOBF9Z7ZYWNFGZUC,Apple,41999,52900,20,79512,6796,MOBF9Z7ZYWNFGZUC,4.6,3 GB
15 | "Apple iPhone XR (White, 128 GB) (Includes EarPods, Power Adapter)",https://www.flipkart.com/apple-iphone-xr-white-128-gb-includes-earpods-power-adapter/p/itmf9z7zrz4tbhwm?pid=MOBF9Z7ZZY3HCDZZ,Apple,41999,52900,20,79512,6796,MOBF9Z7ZZY3HCDZZ,4.6,4 GB
16 | "APPLE iPhone 11 Pro Max (Gold, 256 GB)",https://www.flipkart.com/apple-iphone-11-pro-max-gold-256-gb/p/itm94c6536eefc46?pid=MOBFKCTS7HCHSPFH,Apple,131900,131900,0,1078,101,MOBFKCTS7HCHSPFH,4.7,4 GB
17 | "APPLE iPhone 11 Pro Max (Gold, 64 GB)",https://www.flipkart.com/apple-iphone-11-pro-max-gold-64-gb/p/itm6ef18218efdf6?pid=MOBFKCTSAPAYNSGG,Apple,117100,117100,0,1078,101,MOBFKCTSAPAYNSGG,4.7,4 GB
18 | "APPLE iPhone 11 Pro Max (Midnight Green, 256 GB)",https://www.flipkart.com/apple-iphone-11-pro-max-midnight-green-256-gb/p/itm68e0db18f9ecc?pid=MOBFKCTSCAAKGQV7,Apple,131900,131900,0,1078,101,MOBFKCTSCAAKGQV7,4.7,4 GB
19 | "APPLE iPhone 11 Pro Max (Space Grey, 64 GB)",https://www.flipkart.com/apple-iphone-11-pro-max-space-grey-64-gb/p/itme0101031155f8?pid=MOBFKCTSKDMKCGQS,Apple,117100,117100,0,1078,101,MOBFKCTSKDMKCGQS,4.7,4 GB
20 | "APPLE iPhone 11 Pro (Midnight Green, 64 GB)",https://www.flipkart.com/apple-iphone-11-pro-midnight-green-64-gb/p/itm471de0d2e8474?pid=MOBFKCTSN3TG3RFJ,Apple,74999,106600,29,7088,523,MOBFKCTSN3TG3RFJ,4.6,4 GB
21 | "APPLE iPhone 11 Pro (Space Grey, 512 GB)",https://www.flipkart.com/apple-iphone-11-pro-space-grey-512-gb/p/itmcd1f0ddbf1c21?pid=MOBFKCTSRTHRQTFT,Apple,117900,140300,15,7088,523,MOBFKCTSRTHRQTFT,4.6,4 GB
22 | "APPLE iPhone 11 Pro Max (Midnight Green, 64 GB)",https://www.flipkart.com/apple-iphone-11-pro-max-midnight-green-64-gb/p/itmab1763b5ca244?pid=MOBFKCTSRYPAQNYT,Apple,117100,117100,0,1078,101,MOBFKCTSRYPAQNYT,4.7,4 GB
23 | "APPLE iPhone 11 Pro (Midnight Green, 512 GB)",https://www.flipkart.com/apple-iphone-11-pro-midnight-green-512-gb/p/itm0bdd954387ca9?pid=MOBFKCTSSJCWYGCC,Apple,117900,140300,15,7088,523,MOBFKCTSSJCWYGCC,4.6,4 GB
24 | "APPLE iPhone 11 Pro (Space Grey, 256 GB)",https://www.flipkart.com/apple-iphone-11-pro-space-grey-256-gb/p/itmbecef22a95790?pid=MOBFKCTSWGYSAS9X,Apple,99900,121300,17,7081,522,MOBFKCTSWGYSAS9X,4.6,4 GB
25 | "Apple iPhone SE (White, 256 GB) (Includes EarPods, Power Adapter)",https://www.flipkart.com/apple-iphone-se-white-256-gb-includes-earpods-power-adapter/p/itm4d73793c30c4c?pid=MOBFRFXHPZCHAPEH,Apple,44999,54900,18,95909,8161,MOBFRFXHPZCHAPEH,4.5,2 GB
26 | "APPLE iPhone 12 Pro (Silver, 512 GB)",https://www.flipkart.com/apple-iphone-12-pro-silver-512-gb/p/itm0ccf9fc219a71?pid=MOBFWBYZ5UY6ZBVA,Apple,140900,149900,6,542,42,MOBFWBYZ5UY6ZBVA,4.5,4 GB
27 | "APPLE iPhone 12 Pro Max (Pacific Blue, 256 GB)",https://www.flipkart.com/apple-iphone-12-pro-max-pacific-blue-256-gb/p/itm3a0860c94250e?pid=MOBFWBYZ8STJXCVT,Apple,130900,139900,6,580,45,MOBFWBYZ8STJXCVT,4.6,6 GB
28 | "APPLE iPhone 12 Mini (White, 128 GB)",https://www.flipkart.com/apple-iphone-12-mini-white-128-gb/p/itm9098fa76548ba?pid=MOBFWBYZAGXJRDGB,Apple,64900,74900,13,740,64,MOBFWBYZAGXJRDGB,4.5,4 GB
29 | "APPLE iPhone 12 Pro (Graphite, 256 GB)",https://www.flipkart.com/apple-iphone-12-pro-graphite-256-gb/p/itm4fa4da575698c?pid=MOBFWBYZBA36UB7G,Apple,120900,129900,6,545,42,MOBFWBYZBA36UB7G,4.5,6 GB
30 | "APPLE iPhone 12 Mini (White, 64 GB)",https://www.flipkart.com/apple-iphone-12-mini-white-64-gb/p/itmf3b16d1640898?pid=MOBFWBYZBH4CEC4C,Apple,59900,69900,14,740,64,MOBFWBYZBH4CEC4C,4.5,4 GB
31 | "APPLE iPhone 12 (White, 128 GB)",https://www.flipkart.com/apple-iphone-12-white-128-gb/p/itm95393f4c6cc59?pid=MOBFWBYZBTZFGJF9,Apple,75900,84900,10,2101,180,MOBFWBYZBTZFGJF9,4.6,6 GB
32 | "APPLE iPhone 12 Pro (Graphite, 128 GB)",https://www.flipkart.com/apple-iphone-12-pro-graphite-128-gb/p/itm03e5f2595d843?pid=MOBFWBYZBZ7Y56WD,Apple,110900,119900,7,545,42,MOBFWBYZBZ7Y56WD,4.5,6 GB
33 | "APPLE iPhone 12 Pro Max (Graphite, 256 GB)",https://www.flipkart.com/apple-iphone-12-pro-max-graphite-256-gb/p/itm8dbdf0b986725?pid=MOBFWBYZEF6XQ5ZW,Apple,130900,139900,6,580,45,MOBFWBYZEF6XQ5ZW,4.6,6 GB
34 | "APPLE iPhone 12 Pro Max (Graphite, 128 GB)",https://www.flipkart.com/apple-iphone-12-pro-max-graphite-128-gb/p/itm973c298184f51?pid=MOBFWBYZFDGQSDWS,Apple,120900,129900,6,580,45,MOBFWBYZFDGQSDWS,4.6,6 GB
35 | "APPLE iPhone 12 Mini (Black, 128 GB)",https://www.flipkart.com/apple-iphone-12-mini-black-128-gb/p/itm0eb512c195bdf?pid=MOBFWBYZH2AMPNPD,Apple,64900,74900,13,730,63,MOBFWBYZH2AMPNPD,4.5,4 GB
36 | "APPLE iPhone 12 Mini (Blue, 128 GB)",https://www.flipkart.com/apple-iphone-12-mini-blue-128-gb/p/itm9b6cdec9700ee?pid=MOBFWBYZHU58PHCZ,Apple,64900,74900,13,730,63,MOBFWBYZHU58PHCZ,4.5,4 GB
37 | "APPLE iPhone 12 (Black, 128 GB)",https://www.flipkart.com/apple-iphone-12-black-128-gb/p/itmf1f0a58f1ecd7?pid=MOBFWBYZK3HACR72,Apple,75900,84900,10,2101,180,MOBFWBYZK3HACR72,4.6,6 GB
38 | "APPLE iPhone 12 (Blue, 128 GB)",https://www.flipkart.com/apple-iphone-12-blue-128-gb/p/itm02853ae92e90a?pid=MOBFWBYZKPTZF9VG,Apple,75900,84900,10,2101,180,MOBFWBYZKPTZF9VG,4.6,6 GB
39 | "APPLE iPhone 12 Pro Max (Silver, 128 GB)",https://www.flipkart.com/apple-iphone-12-pro-max-silver-128-gb/p/itm5a51ba742a17e?pid=MOBFWBYZNSNVGGZC,Apple,120900,129900,6,580,45,MOBFWBYZNSNVGGZC,4.6,6 GB
40 | "APPLE iPhone 12 Mini (Red, 64 GB)",https://www.flipkart.com/apple-iphone-12-mini-red-64-gb/p/itm255dd64643767?pid=MOBFWBYZNVWGWN2U,Apple,59900,69900,14,740,64,MOBFWBYZNVWGWN2U,4.5,6 GB
41 | "APPLE iPhone 12 Pro Max (Gold, 128 GB)",https://www.flipkart.com/apple-iphone-12-pro-max-gold-128-gb/p/itme3ae592065711?pid=MOBFWBYZQVKT77YH,Apple,120900,129900,6,580,45,MOBFWBYZQVKT77YH,4.6,6 GB
42 | "APPLE iPhone 12 (Green, 128 GB)",https://www.flipkart.com/apple-iphone-12-green-128-gb/p/itm4e0a120f7d9c4?pid=MOBFWBYZQXUEHF48,Apple,75900,84900,10,2092,178,MOBFWBYZQXUEHF48,4.6,6 GB
43 | "APPLE iPhone 12 Pro (Pacific Blue, 512 GB)",https://www.flipkart.com/apple-iphone-12-pro-pacific-blue-512-gb/p/itm8a39d6779b04e?pid=MOBFWBYZTHSXKMGW,Apple,140900,149900,6,545,42,MOBFWBYZTHSXKMGW,4.5,4 GB
44 | "APPLE iPhone 12 (White, 64 GB)",https://www.flipkart.com/apple-iphone-12-white-64-gb/p/itm8b88bdc03cd79?pid=MOBFWBYZTK33MBG9,Apple,70900,79900,11,2101,180,MOBFWBYZTK33MBG9,4.6,6 GB
45 | "APPLE iPhone 12 (Black, 64 GB)",https://www.flipkart.com/apple-iphone-12-black-64-gb/p/itma2559422bf7c7?pid=MOBFWBYZU5FWK2VP,Apple,70900,79900,11,2092,178,MOBFWBYZU5FWK2VP,4.6,6 GB
46 | "APPLE iPhone 12 (Red, 128 GB)",https://www.flipkart.com/apple-iphone-12-red-128-gb/p/itma7bd86885ed98?pid=MOBFWBYZUHPFWQRD,Apple,75900,84900,10,2101,180,MOBFWBYZUHPFWQRD,4.6,6 GB
47 | "APPLE iPhone 12 Mini (Black, 64 GB)",https://www.flipkart.com/apple-iphone-12-mini-black-64-gb/p/itm38b727191eb08?pid=MOBFWBYZXSEGBS6F,Apple,59900,69900,14,740,64,MOBFWBYZXSEGBS6F,4.5,4 GB
48 | "APPLE iPhone 12 Pro (Pacific Blue, 128 GB)",https://www.flipkart.com/apple-iphone-12-pro-pacific-blue-128-gb/p/itm97c833296c221?pid=MOBFWBYZXYSCEEEH,Apple,110900,119900,7,545,42,MOBFWBYZXYSCEEEH,4.5,6 GB
49 | "APPLE iPhone 12 Pro Max (Pacific Blue, 128 GB)",https://www.flipkart.com/apple-iphone-12-pro-max-pacific-blue-128-gb/p/itmd89812b558a03?pid=MOBFWBYZZABKHZQA,Apple,120900,129900,6,580,45,MOBFWBYZZABKHZQA,4.6,6 GB
50 | "APPLE iPhone 12 Pro Max (Silver, 256 GB)",https://www.flipkart.com/apple-iphone-12-pro-max-silver-256-gb/p/itm30faf74442adb?pid=MOBFWBYZZH4AM8FE,Apple,130900,139900,6,580,45,MOBFWBYZZH4AM8FE,4.6,6 GB
51 | "APPLE iPhone 12 Pro Max (Gold, 256 GB)",https://www.flipkart.com/apple-iphone-12-pro-max-gold-256-gb/p/itm1e0354f5bbc8c?pid=MOBFWBYZZPW8JHQF,Apple,130900,139900,6,580,45,MOBFWBYZZPW8JHQF,4.6,6 GB
52 | "APPLE iPhone 11 (White, 128 GB)",https://www.flipkart.com/apple-iphone-11-white-128-gb/p/itme32df47ea6742?pid=MOBFWQ6B7KKRXDDS,Apple,54999,59900,8,43707,3357,MOBFWQ6B7KKRXDDS,4.6,4 GB
53 | "APPLE iPhone 11 (Red, 128 GB)",https://www.flipkart.com/apple-iphone-11-red-128-gb/p/itm8d14bd0e33a1c?pid=MOBFWQ6BEZTNK59G,Apple,54999,59900,8,43707,3357,MOBFWQ6BEZTNK59G,4.6,4 GB
54 | "APPLE iPhone SE (White, 64 GB)",https://www.flipkart.com/apple-iphone-se-white-64-gb/p/itma00a19e11c81b?pid=MOBFWQ6BGWDVGF3E,Apple,29999,39900,24,95807,8154,MOBFWQ6BGWDVGF3E,4.5,2 GB
55 | "APPLE iPhone SE (Black, 128 GB)",https://www.flipkart.com/apple-iphone-se-black-128-gb/p/itma9285ccc6af28?pid=MOBFWQ6BHUEVZPXD,Apple,34999,44900,22,95909,8161,MOBFWQ6BHUEVZPXD,4.5,2 GB
56 | "APPLE iPhone SE (White, 128 GB)",https://www.flipkart.com/apple-iphone-se-white-128-gb/p/itmc2a0f593a4ad8?pid=MOBFWQ6BJEHMUUZY,Apple,34999,44900,22,95807,8154,MOBFWQ6BJEHMUUZY,4.5,2 GB
57 | "APPLE iPhone SE (Red, 128 GB)",https://www.flipkart.com/apple-iphone-se-red-128-gb/p/itma4202509da171?pid=MOBFWQ6BJTVFKPEJ,Apple,34999,44900,22,95909,8161,MOBFWQ6BJTVFKPEJ,4.5,2 GB
58 | "APPLE iPhone 11 (Black, 128 GB)",https://www.flipkart.com/apple-iphone-11-black-128-gb/p/itm8244e8d955aba?pid=MOBFWQ6BKRYBP5X8,Apple,54999,59900,8,43470,3331,MOBFWQ6BKRYBP5X8,4.6,4 GB
59 | "APPLE iPhone SE (Black, 64 GB)",https://www.flipkart.com/apple-iphone-se-black-64-gb/p/itm4d3d5718a5c95?pid=MOBFWQ6BR3MK7AUG,Apple,29999,39900,24,95909,8161,MOBFWQ6BR3MK7AUG,4.5,4 GB
60 | "APPLE iPhone 11 (Purple, 64 GB)",https://www.flipkart.com/apple-iphone-11-purple-64-gb/p/itm2b8d03427ddac?pid=MOBFWQ6BTFFJKGKE,Apple,46999,54900,14,43470,3331,MOBFWQ6BTFFJKGKE,4.6,4 GB
61 | "APPLE iPhone 11 (White, 64 GB)",https://www.flipkart.com/apple-iphone-11-white-64-gb/p/itmfc6a7091eb20b?pid=MOBFWQ6BVWVEH3XE,Apple,46999,54900,14,43470,3331,MOBFWQ6BVWVEH3XE,4.6,4 GB
62 | "APPLE iPhone 11 (Black, 64 GB)",https://www.flipkart.com/apple-iphone-11-black-64-gb/p/itm4e5041ba101fd?pid=MOBFWQ6BXGJCEYNY,Apple,46999,54900,14,43470,3331,MOBFWQ6BXGJCEYNY,4.6,4 GB
63 | "APPLE iPhone 11 (Red, 64 GB)",https://www.flipkart.com/apple-iphone-11-red-64-gb/p/itmc3935326f2feb?pid=MOBFWQ6BYYV3FCU7,Apple,46999,54900,14,43470,3331,MOBFWQ6BYYV3FCU7,4.6,4 GB
64 |
--------------------------------------------------------------------------------
/E-Commerce Final Project Python + SQL/Ecommerce Data Analysis.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 150,
6 | "id": "ff3aef03",
7 | "metadata": {},
8 | "outputs": [],
9 | "source": [
10 | "import pandas as pd\n",
11 | "import psycopg2\n",
12 | "from sqlalchemy import create_engine"
13 | ]
14 | },
15 | {
16 | "cell_type": "code",
17 | "execution_count": 151,
18 | "id": "4032bc31",
19 | "metadata": {},
20 | "outputs": [],
21 | "source": [
22 | "order_df = pd.read_csv(\"data/orders.csv\").sample(10000)"
23 | ]
24 | },
25 | {
26 | "cell_type": "code",
27 | "execution_count": 152,
28 | "id": "334e25bd",
29 | "metadata": {},
30 | "outputs": [
31 | {
32 | "data": {
33 | "text/html": [
34 | "
\n",
35 | "\n",
48 | "
\n",
49 | " \n",
50 | " \n",
51 | " | \n",
52 | " order_id | \n",
53 | " user_id | \n",
54 | " eval_set | \n",
55 | " order_number | \n",
56 | " order_dow | \n",
57 | " order_hour_of_day | \n",
58 | " days_since_prior_order | \n",
59 | "
\n",
60 | " \n",
61 | " \n",
62 | " \n",
63 | " | 1662934 | \n",
64 | " 1527625 | \n",
65 | " 99829 | \n",
66 | " prior | \n",
67 | " 8 | \n",
68 | " 6 | \n",
69 | " 20 | \n",
70 | " 6.0 | \n",
71 | "
\n",
72 | " \n",
73 | " | 2112892 | \n",
74 | " 2552682 | \n",
75 | " 127073 | \n",
76 | " prior | \n",
77 | " 2 | \n",
78 | " 1 | \n",
79 | " 10 | \n",
80 | " 3.0 | \n",
81 | "
\n",
82 | " \n",
83 | " | 455604 | \n",
84 | " 1926816 | \n",
85 | " 27431 | \n",
86 | " prior | \n",
87 | " 3 | \n",
88 | " 5 | \n",
89 | " 8 | \n",
90 | " 7.0 | \n",
91 | "
\n",
92 | " \n",
93 | " | 771057 | \n",
94 | " 2533907 | \n",
95 | " 46322 | \n",
96 | " prior | \n",
97 | " 1 | \n",
98 | " 5 | \n",
99 | " 11 | \n",
100 | " NaN | \n",
101 | "
\n",
102 | " \n",
103 | " | 1556678 | \n",
104 | " 2265727 | \n",
105 | " 93508 | \n",
106 | " prior | \n",
107 | " 13 | \n",
108 | " 2 | \n",
109 | " 11 | \n",
110 | " 7.0 | \n",
111 | "
\n",
112 | " \n",
113 | "
\n",
114 | "
"
115 | ],
116 | "text/plain": [
117 | " order_id user_id eval_set order_number order_dow \\\n",
118 | "1662934 1527625 99829 prior 8 6 \n",
119 | "2112892 2552682 127073 prior 2 1 \n",
120 | "455604 1926816 27431 prior 3 5 \n",
121 | "771057 2533907 46322 prior 1 5 \n",
122 | "1556678 2265727 93508 prior 13 2 \n",
123 | "\n",
124 | " order_hour_of_day days_since_prior_order \n",
125 | "1662934 20 6.0 \n",
126 | "2112892 10 3.0 \n",
127 | "455604 8 7.0 \n",
128 | "771057 11 NaN \n",
129 | "1556678 11 7.0 "
130 | ]
131 | },
132 | "execution_count": 152,
133 | "metadata": {},
134 | "output_type": "execute_result"
135 | }
136 | ],
137 | "source": [
138 | "order_df.head()"
139 | ]
140 | },
141 | {
142 | "cell_type": "code",
143 | "execution_count": 153,
144 | "id": "fd7f1838",
145 | "metadata": {},
146 | "outputs": [],
147 | "source": [
148 | "aisles_df = pd.read_csv(\"data/aisles.csv\")\n",
149 | "departments_df = pd.read_csv(\"data/departments.csv\")\n",
150 | "order_products_df = pd.read_csv(\"data/order_products.csv\").sample(10000)\n",
151 | "products_df = pd.read_csv(\"data/products.csv\")"
152 | ]
153 | },
154 | {
155 | "cell_type": "code",
156 | "execution_count": 154,
157 | "id": "f02fac6e",
158 | "metadata": {},
159 | "outputs": [
160 | {
161 | "data": {
162 | "text/html": [
163 | "\n",
164 | "\n",
177 | "
\n",
178 | " \n",
179 | " \n",
180 | " | \n",
181 | " aisle_id | \n",
182 | " aisle | \n",
183 | "
\n",
184 | " \n",
185 | " \n",
186 | " \n",
187 | " | 0 | \n",
188 | " 1 | \n",
189 | " prepared soups salads | \n",
190 | "
\n",
191 | " \n",
192 | " | 1 | \n",
193 | " 2 | \n",
194 | " specialty cheeses | \n",
195 | "
\n",
196 | " \n",
197 | " | 2 | \n",
198 | " 3 | \n",
199 | " energy granola bars | \n",
200 | "
\n",
201 | " \n",
202 | " | 3 | \n",
203 | " 4 | \n",
204 | " instant foods | \n",
205 | "
\n",
206 | " \n",
207 | " | 4 | \n",
208 | " 5 | \n",
209 | " marinades meat preparation | \n",
210 | "
\n",
211 | " \n",
212 | "
\n",
213 | "
"
214 | ],
215 | "text/plain": [
216 | " aisle_id aisle\n",
217 | "0 1 prepared soups salads\n",
218 | "1 2 specialty cheeses\n",
219 | "2 3 energy granola bars\n",
220 | "3 4 instant foods\n",
221 | "4 5 marinades meat preparation"
222 | ]
223 | },
224 | "execution_count": 154,
225 | "metadata": {},
226 | "output_type": "execute_result"
227 | }
228 | ],
229 | "source": [
230 | "aisles_df.head()"
231 | ]
232 | },
233 | {
234 | "cell_type": "code",
235 | "execution_count": 155,
236 | "id": "af28960e",
237 | "metadata": {},
238 | "outputs": [
239 | {
240 | "data": {
241 | "text/html": [
242 | "\n",
243 | "\n",
256 | "
\n",
257 | " \n",
258 | " \n",
259 | " | \n",
260 | " department_id | \n",
261 | " department | \n",
262 | "
\n",
263 | " \n",
264 | " \n",
265 | " \n",
266 | " | 0 | \n",
267 | " 1 | \n",
268 | " frozen | \n",
269 | "
\n",
270 | " \n",
271 | " | 1 | \n",
272 | " 2 | \n",
273 | " other | \n",
274 | "
\n",
275 | " \n",
276 | " | 2 | \n",
277 | " 3 | \n",
278 | " bakery | \n",
279 | "
\n",
280 | " \n",
281 | " | 3 | \n",
282 | " 4 | \n",
283 | " produce | \n",
284 | "
\n",
285 | " \n",
286 | " | 4 | \n",
287 | " 5 | \n",
288 | " alcohol | \n",
289 | "
\n",
290 | " \n",
291 | "
\n",
292 | "
"
293 | ],
294 | "text/plain": [
295 | " department_id department\n",
296 | "0 1 frozen\n",
297 | "1 2 other\n",
298 | "2 3 bakery\n",
299 | "3 4 produce\n",
300 | "4 5 alcohol"
301 | ]
302 | },
303 | "execution_count": 155,
304 | "metadata": {},
305 | "output_type": "execute_result"
306 | }
307 | ],
308 | "source": [
309 | "departments_df.head()"
310 | ]
311 | },
312 | {
313 | "cell_type": "code",
314 | "execution_count": 156,
315 | "id": "abcb9cea",
316 | "metadata": {},
317 | "outputs": [
318 | {
319 | "data": {
320 | "text/html": [
321 | "\n",
322 | "\n",
335 | "
\n",
336 | " \n",
337 | " \n",
338 | " | \n",
339 | " order_id | \n",
340 | " product_id | \n",
341 | " add_to_cart_order | \n",
342 | " reordered | \n",
343 | "
\n",
344 | " \n",
345 | " \n",
346 | " \n",
347 | " | 6531396 | \n",
348 | " 689379 | \n",
349 | " 31371 | \n",
350 | " 11 | \n",
351 | " 1 | \n",
352 | "
\n",
353 | " \n",
354 | " | 16669382 | \n",
355 | " 1758279 | \n",
356 | " 26790 | \n",
357 | " 3 | \n",
358 | " 0 | \n",
359 | "
\n",
360 | " \n",
361 | " | 23109442 | \n",
362 | " 2437317 | \n",
363 | " 39275 | \n",
364 | " 2 | \n",
365 | " 1 | \n",
366 | "
\n",
367 | " \n",
368 | " | 28035925 | \n",
369 | " 2956462 | \n",
370 | " 34262 | \n",
371 | " 7 | \n",
372 | " 1 | \n",
373 | "
\n",
374 | " \n",
375 | " | 31998082 | \n",
376 | " 3375102 | \n",
377 | " 40992 | \n",
378 | " 6 | \n",
379 | " 1 | \n",
380 | "
\n",
381 | " \n",
382 | "
\n",
383 | "
"
384 | ],
385 | "text/plain": [
386 | " order_id product_id add_to_cart_order reordered\n",
387 | "6531396 689379 31371 11 1\n",
388 | "16669382 1758279 26790 3 0\n",
389 | "23109442 2437317 39275 2 1\n",
390 | "28035925 2956462 34262 7 1\n",
391 | "31998082 3375102 40992 6 1"
392 | ]
393 | },
394 | "execution_count": 156,
395 | "metadata": {},
396 | "output_type": "execute_result"
397 | }
398 | ],
399 | "source": [
400 | "order_products_df.head()"
401 | ]
402 | },
403 | {
404 | "cell_type": "code",
405 | "execution_count": 157,
406 | "id": "d2b87aa0",
407 | "metadata": {},
408 | "outputs": [
409 | {
410 | "data": {
411 | "text/html": [
412 | "\n",
413 | "\n",
426 | "
\n",
427 | " \n",
428 | " \n",
429 | " | \n",
430 | " product_id | \n",
431 | " product_name | \n",
432 | " aisle_id | \n",
433 | " department_id | \n",
434 | "
\n",
435 | " \n",
436 | " \n",
437 | " \n",
438 | " | 0 | \n",
439 | " 1 | \n",
440 | " Chocolate Sandwich Cookies | \n",
441 | " 61 | \n",
442 | " 19 | \n",
443 | "
\n",
444 | " \n",
445 | " | 1 | \n",
446 | " 2 | \n",
447 | " All-Seasons Salt | \n",
448 | " 104 | \n",
449 | " 13 | \n",
450 | "
\n",
451 | " \n",
452 | " | 2 | \n",
453 | " 3 | \n",
454 | " Robust Golden Unsweetened Oolong Tea | \n",
455 | " 94 | \n",
456 | " 7 | \n",
457 | "
\n",
458 | " \n",
459 | " | 3 | \n",
460 | " 4 | \n",
461 | " Smart Ones Classic Favorites Mini Rigatoni Wit... | \n",
462 | " 38 | \n",
463 | " 1 | \n",
464 | "
\n",
465 | " \n",
466 | " | 4 | \n",
467 | " 5 | \n",
468 | " Green Chile Anytime Sauce | \n",
469 | " 5 | \n",
470 | " 13 | \n",
471 | "
\n",
472 | " \n",
473 | "
\n",
474 | "
"
475 | ],
476 | "text/plain": [
477 | " product_id product_name aisle_id \\\n",
478 | "0 1 Chocolate Sandwich Cookies 61 \n",
479 | "1 2 All-Seasons Salt 104 \n",
480 | "2 3 Robust Golden Unsweetened Oolong Tea 94 \n",
481 | "3 4 Smart Ones Classic Favorites Mini Rigatoni Wit... 38 \n",
482 | "4 5 Green Chile Anytime Sauce 5 \n",
483 | "\n",
484 | " department_id \n",
485 | "0 19 \n",
486 | "1 13 \n",
487 | "2 7 \n",
488 | "3 1 \n",
489 | "4 13 "
490 | ]
491 | },
492 | "execution_count": 157,
493 | "metadata": {},
494 | "output_type": "execute_result"
495 | }
496 | ],
497 | "source": [
498 | "products_df.head()"
499 | ]
500 | },
501 | {
502 | "cell_type": "code",
503 | "execution_count": 162,
504 | "id": "11db21a9",
505 | "metadata": {},
506 | "outputs": [],
507 | "source": [
508 | "#connection\n",
509 | "try:\n",
510 | " conn = psycopg2.connect(dbname=\"ecom_analysis\", user='postgres', password='root', port='5432')\n",
511 | "except:\n",
512 | " print(\"connection was unsuccessful\")"
513 | ]
514 | },
515 | {
516 | "cell_type": "code",
517 | "execution_count": 163,
518 | "id": "9e1859c8",
519 | "metadata": {},
520 | "outputs": [],
521 | "source": [
522 | "cur = conn.cursor()"
523 | ]
524 | },
525 | {
526 | "cell_type": "code",
527 | "execution_count": 164,
528 | "id": "fa50096e",
529 | "metadata": {},
530 | "outputs": [],
531 | "source": [
532 | "engine = create_engine('postgresql+psycopg2://postgres:root@localhost/ecom_analysis')"
533 | ]
534 | },
535 | {
536 | "cell_type": "code",
537 | "execution_count": 165,
538 | "id": "a0c51d2b",
539 | "metadata": {},
540 | "outputs": [],
541 | "source": [
542 | "cur.execute(\"\"\"\n",
543 | "CREATE TABLE aisles (\n",
544 | " aisle_id INTEGER PRIMARY KEY,\n",
545 | " ailse VARCHAR\n",
546 | ")\n",
547 | "\"\"\")"
548 | ]
549 | },
550 | {
551 | "cell_type": "code",
552 | "execution_count": 166,
553 | "id": "edff6d7d",
554 | "metadata": {},
555 | "outputs": [],
556 | "source": [
557 | "cur.execute(\"\"\"\n",
558 | "CREATE TABLE departments (\n",
559 | " department_id INTEGER PRIMARY KEY,\n",
560 | " department VARCHAR(255)\n",
561 | ")\n",
562 | "\"\"\")"
563 | ]
564 | },
565 | {
566 | "cell_type": "code",
567 | "execution_count": 167,
568 | "id": "b514f17e",
569 | "metadata": {},
570 | "outputs": [],
571 | "source": [
572 | "cur.execute(\"\"\"\n",
573 | "CREATE TABLE products (\n",
574 | " product_id INTEGER PRIMARY KEY,\n",
575 | " product_name VARCHAR(255),\n",
576 | " aisle_id INTEGER,\n",
577 | " department_id INTEGER,\n",
578 | " FOREIGN KEY (aisle_id) REFERENCES aisles (aisle_id),\n",
579 | " FOREIGN KEY (department_id) REFERENCES departments (department_id)\n",
580 | ")\n",
581 | "\"\"\")"
582 | ]
583 | },
584 | {
585 | "cell_type": "code",
586 | "execution_count": 168,
587 | "id": "932f83bf",
588 | "metadata": {},
589 | "outputs": [],
590 | "source": [
591 | "cur.execute(\"\"\"\n",
592 | "CREATE TABLE orders (\n",
593 | " order_id INTEGER PRIMARY KEY,\n",
594 | " user_id INTEGER,\n",
595 | " order_number INTEGER,\n",
596 | " order_dow INTEGER,\n",
597 | " order_hour_of_day INTEGER,\n",
598 | " days_since_prior_order INTEGER )\n",
599 | "\"\"\")"
600 | ]
601 | },
602 | {
603 | "cell_type": "code",
604 | "execution_count": 169,
605 | "id": "8d036ca0",
606 | "metadata": {},
607 | "outputs": [],
608 | "source": [
609 | "cur.execute(\"\"\"\n",
610 | "CREATE TABLE order_products (\n",
611 | " order_id INTEGER,\n",
612 | " product_id INTEGER,\n",
613 | " add_to_cart_order INTEGER,\n",
614 | " reordered INTEGER,\n",
615 | " PRIMARY KEY (order_id, product_id),\n",
616 | " FOREIGN KEY (order_id) REFERENCES orders (order_id),\n",
617 | " FOREIGN KEY (product_id) REFERENCES products (product_id)\n",
618 | " )\n",
619 | "\"\"\")"
620 | ]
621 | },
622 | {
623 | "cell_type": "code",
624 | "execution_count": 170,
625 | "id": "69dea348",
626 | "metadata": {},
627 | "outputs": [],
628 | "source": [
629 | "conn.commit()"
630 | ]
631 | },
632 | {
633 | "cell_type": "code",
634 | "execution_count": null,
635 | "id": "9c327826",
636 | "metadata": {},
637 | "outputs": [],
638 | "source": [
639 | "order_df.drop('eval_set', inplace=True, axis=1)"
640 | ]
641 | },
642 | {
643 | "cell_type": "code",
644 | "execution_count": null,
645 | "id": "0ede28e5",
646 | "metadata": {},
647 | "outputs": [],
648 | "source": [
649 | "aisles_df.to_sql('aisles', con=engine, if_exists='append', index=False)"
650 | ]
651 | },
652 | {
653 | "cell_type": "code",
654 | "execution_count": null,
655 | "id": "26339de5",
656 | "metadata": {},
657 | "outputs": [],
658 | "source": [
659 | "departments_df.to_sql('departments', con=engine, if_exists='append', index=False)"
660 | ]
661 | },
662 | {
663 | "cell_type": "code",
664 | "execution_count": null,
665 | "id": "c61b80c1",
666 | "metadata": {},
667 | "outputs": [],
668 | "source": [
669 | "products_df.to_sql('products', con=engine, if_exists='append', index=False)"
670 | ]
671 | },
672 | {
673 | "cell_type": "code",
674 | "execution_count": null,
675 | "id": "6bf5758b",
676 | "metadata": {},
677 | "outputs": [],
678 | "source": [
679 | "order_df.to_sql('orders', con=engine, if_exists='append', index=False)"
680 | ]
681 | },
682 | {
683 | "cell_type": "code",
684 | "execution_count": null,
685 | "id": "a162fadd",
686 | "metadata": {},
687 | "outputs": [],
688 | "source": [
689 | "order_products_df.to_sql('order_products', con=engine, if_exists='append', index=False)"
690 | ]
691 | },
692 | {
693 | "cell_type": "code",
694 | "execution_count": null,
695 | "id": "6a8cd23f",
696 | "metadata": {},
697 | "outputs": [],
698 | "source": []
699 | }
700 | ],
701 | "metadata": {
702 | "kernelspec": {
703 | "display_name": "Python 3 (ipykernel)",
704 | "language": "python",
705 | "name": "python3"
706 | },
707 | "language_info": {
708 | "codemirror_mode": {
709 | "name": "ipython",
710 | "version": 3
711 | },
712 | "file_extension": ".py",
713 | "mimetype": "text/x-python",
714 | "name": "python",
715 | "nbconvert_exporter": "python",
716 | "pygments_lexer": "ipython3",
717 | "version": "3.10.6"
718 | }
719 | },
720 | "nbformat": 4,
721 | "nbformat_minor": 5
722 | }
723 |
--------------------------------------------------------------------------------