├── 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 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | "
order_iduser_ideval_setorder_numberorder_doworder_hour_of_daydays_since_prior_order
1662934152762599829prior86206.0
21128922552682127073prior21103.0
455604192681627431prior3587.0
771057253390746322prior1511NaN
1556678226572793508prior132117.0
\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 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | "
aisle_idaisle
01prepared soups salads
12specialty cheeses
23energy granola bars
34instant foods
45marinades meat preparation
\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 | " \n", 261 | " \n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | "
department_iddepartment
01frozen
12other
23bakery
34produce
45alcohol
\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 | " \n", 340 | " \n", 341 | " \n", 342 | " \n", 343 | " \n", 344 | " \n", 345 | " \n", 346 | " \n", 347 | " \n", 348 | " \n", 349 | " \n", 350 | " \n", 351 | " \n", 352 | " \n", 353 | " \n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | " \n", 358 | " \n", 359 | " \n", 360 | " \n", 361 | " \n", 362 | " \n", 363 | " \n", 364 | " \n", 365 | " \n", 366 | " \n", 367 | " \n", 368 | " \n", 369 | " \n", 370 | " \n", 371 | " \n", 372 | " \n", 373 | " \n", 374 | " \n", 375 | " \n", 376 | " \n", 377 | " \n", 378 | " \n", 379 | " \n", 380 | " \n", 381 | " \n", 382 | "
order_idproduct_idadd_to_cart_orderreordered
653139668937931371111
1666938217582792679030
2310944224373173927521
2803592529564623426271
3199808233751024099261
\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 | " \n", 431 | " \n", 432 | " \n", 433 | " \n", 434 | " \n", 435 | " \n", 436 | " \n", 437 | " \n", 438 | " \n", 439 | " \n", 440 | " \n", 441 | " \n", 442 | " \n", 443 | " \n", 444 | " \n", 445 | " \n", 446 | " \n", 447 | " \n", 448 | " \n", 449 | " \n", 450 | " \n", 451 | " \n", 452 | " \n", 453 | " \n", 454 | " \n", 455 | " \n", 456 | " \n", 457 | " \n", 458 | " \n", 459 | " \n", 460 | " \n", 461 | " \n", 462 | " \n", 463 | " \n", 464 | " \n", 465 | " \n", 466 | " \n", 467 | " \n", 468 | " \n", 469 | " \n", 470 | " \n", 471 | " \n", 472 | " \n", 473 | "
product_idproduct_nameaisle_iddepartment_id
01Chocolate Sandwich Cookies6119
12All-Seasons Salt10413
23Robust Golden Unsweetened Oolong Tea947
34Smart Ones Classic Favorites Mini Rigatoni Wit...381
45Green Chile Anytime Sauce513
\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 | --------------------------------------------------------------------------------