Skip to content

Instantly share code, notes, and snippets.

@FavioVazquez
Created July 19, 2019 19:30
Show Gist options
  • Save FavioVazquez/1700b1a941b17532fa6bf09e9dfd8e3e to your computer and use it in GitHub Desktop.
Save FavioVazquez/1700b1a941b17532fa6bf09e9dfd8e3e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style> /* Tables*/\n",
"\n",
" .data_type {\n",
" font-size: 0.8em;\n",
" font-weight: normal;\n",
" }\n",
"\n",
" .column_name {\n",
" font-size: 1.2em;\n",
" }\n",
"\n",
" .info_items {\n",
" margin: 10px 0;\n",
" font-size: 0.8em;\n",
" }\n",
"\n",
" .optimus_table td {\n",
" border: 0px;\n",
" }\n",
"\n",
" .optimus_table tr:nth-child(even) {\n",
" background-color: #f2f2f2 !important;\n",
" }\n",
"\n",
" .optimus_table tr:nth-child(odd) {\n",
" background-color: #ffffff !important;\n",
" }\n",
"\n",
" .optimus_table thead {\n",
" border-bottom: 1px solid black;\n",
" }\n",
" .optimus_table{\n",
" font-size: 12px;\n",
" }\n",
"\n",
" .optimus_table tbody{\n",
" font-family: monospace;\n",
" border-bottom: 1px solid #cccccc;\n",
" }\n",
"\n",
" /* Profiler */\n",
" .main{\n",
" width:100%;\n",
" overflow:auto;\n",
" border-bottom:1px solid #eeeeee;\n",
" padding: 10px 0;\n",
" }\n",
" .panel_profiler{\n",
" margin-right:2%;\n",
" float:left;\n",
" padding-bottom:2%;\n",
" }\n",
" .panel_profiler tbody{\n",
" font-family:monospace;\n",
" }\n",
" .title_profiler{\n",
" padding:20px;\n",
" background-color: #eeeeee\n",
" }\n",
" .info{\n",
" overflow: auto\n",
" }\n",
" .main td, main th{\n",
" padding:0em\n",
" }\n",
" .panel_profiler td {\n",
" padding:0.2em\n",
" }\n",
" .none, .true{\n",
" color:#0000ff\n",
" }\n",
" .optimus_table th {\n",
" font-family:sans-serif;\n",
" }\n",
"\n",
" .info_items{\n",
" font-family:sans-serif;\n",
" font-size:10px;\n",
" }\n",
"</style>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Import the necessary libraries\n",
"from optimus import Optimus\n",
"from pyspark.sql.functions import *\n",
"import matplotlib.pyplot as plt \n",
"import pandas as pd\n",
"import numpy as np\n",
"op = Optimus()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Read the data and create Spark DF"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"url = 'https://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv'\n",
" \n",
"chipo_pd = pd.read_csv(url, sep = '\\t')\n",
"chipo_pd[['item_name', 'choice_description', 'item_price']] = chipo_pd[['item_name', 'choice_description', 'item_price']].astype(str)\n",
"\n",
"chipo = op.spark.createDataFrame(chipo_pd)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# See the first 10 entries"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
"\n",
"\n",
"<div class=\"info_items\">Viewing 10 of 4622 rows / 5 columns</div>\n",
"<div class=\"info_items\">1 partition(s)</div>\n",
"\n",
"<table class=\"optimus_table\">\n",
" <thead>\n",
" <tr>\n",
" \n",
" <th>\n",
" <div class=\"column_name\">order_id</div>\n",
" <div class=\"data_type\">1 (bigint)</div>\n",
" <div class=\"data_type\">\n",
" \n",
" nullable\n",
" \n",
" </div>\n",
" </th>\n",
" \n",
" <th>\n",
" <div class=\"column_name\">quantity</div>\n",
" <div class=\"data_type\">2 (bigint)</div>\n",
" <div class=\"data_type\">\n",
" \n",
" nullable\n",
" \n",
" </div>\n",
" </th>\n",
" \n",
" <th>\n",
" <div class=\"column_name\">item_name</div>\n",
" <div class=\"data_type\">3 (string)</div>\n",
" <div class=\"data_type\">\n",
" \n",
" nullable\n",
" \n",
" </div>\n",
" </th>\n",
" \n",
" <th>\n",
" <div class=\"column_name\">choice_description</div>\n",
" <div class=\"data_type\">4 (string)</div>\n",
" <div class=\"data_type\">\n",
" \n",
" nullable\n",
" \n",
" </div>\n",
" </th>\n",
" \n",
" <th>\n",
" <div class=\"column_name\">item_price</div>\n",
" <div class=\"data_type\">5 (string)</div>\n",
" <div class=\"data_type\">\n",
" \n",
" nullable\n",
" \n",
" </div>\n",
" </th>\n",
" \n",
" </tr>\n",
"\n",
" </thead>\n",
" <tbody>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Chips&#8901;and&#8901;Fresh&#8901;Tomato&#8901;Salsa'>Chips&#8901;and&#8901;Fresh&#8901;Tomato&#8901;Salsa\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='nan'>nan\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='$2.39&#8901;'>$2.39&#8901;\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Izze'>Izze\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='[Clementine]'>[Clementine]\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='$3.39&#8901;'>$3.39&#8901;\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Nantucket&#8901;Nectar'>Nantucket&#8901;Nectar\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='[Apple]'>[Apple]\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='$3.39&#8901;'>$3.39&#8901;\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Chips&#8901;and&#8901;Tomatillo-Green&#8901;Chili&#8901;Salsa'>Chips&#8901;and&#8901;Tomatillo-Green&#8901;Chili&#8901;Salsa\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='nan'>nan\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='$2.39&#8901;'>$2.39&#8901;\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='2'>2\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='2'>2\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Chicken&#8901;Bowl'>Chicken&#8901;Bowl\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='[Tomatillo-Red&#8901;Chili&#8901;Salsa&#8901;(Hot),&#8901;[Black&#8901;Beans,&#8901;Rice,&#8901;Cheese,&#8901;Sour&#8901;Cream]]'>[Tomatillo-Red&#8901;Chili&#8901;Salsa&#8901;(Hot),&#8901;[Black&#8901;Beans,&#8901;Rice,&#8901;Cheese,&#8901;Sour&#8901;Cream]]\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='$16.98&#8901;'>$16.98&#8901;\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='3'>3\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Chicken&#8901;Bowl'>Chicken&#8901;Bowl\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='[Fresh&#8901;Tomato&#8901;Salsa&#8901;(Mild),&#8901;[Rice,&#8901;Cheese,&#8901;Sour&#8901;Cream,&#8901;Guacamole,&#8901;Lettuce]]'>[Fresh&#8901;Tomato&#8901;Salsa&#8901;(Mild),&#8901;[Rice,&#8901;Cheese,&#8901;Sour&#8901;Cream,&#8901;Guacamole,&#8901;Lettuce]]\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='$10.98&#8901;'>$10.98&#8901;\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='3'>3\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Side&#8901;of&#8901;Chips'>Side&#8901;of&#8901;Chips\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='nan'>nan\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='$1.69&#8901;'>$1.69&#8901;\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='4'>4\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Steak&#8901;Burrito'>Steak&#8901;Burrito\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='[Tomatillo&#8901;Red&#8901;Chili&#8901;Salsa,&#8901;[Fajita&#8901;Vegetables,&#8901;Black&#8901;Beans,&#8901;Pinto&#8901;Beans,&#8901;Cheese,&#8901;Sour&#8901;Cream,&#8901;Guacamole,&#8901;Lettuce]]'>[Tomatillo&#8901;Red&#8901;Chili&#8901;Salsa,&#8901;[Fajita&#8901;Vegetables,&#8901;Black&#8901;Beans,&#8901;Pinto&#8901;Bean...\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='$11.75&#8901;'>$11.75&#8901;\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='4'>4\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Steak&#8901;Soft&#8901;Tacos'>Steak&#8901;Soft&#8901;Tacos\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='[Tomatillo&#8901;Green&#8901;Chili&#8901;Salsa,&#8901;[Pinto&#8901;Beans,&#8901;Cheese,&#8901;Sour&#8901;Cream,&#8901;Lettuce]]'>[Tomatillo&#8901;Green&#8901;Chili&#8901;Salsa,&#8901;[Pinto&#8901;Beans,&#8901;Cheese,&#8901;Sour&#8901;Cream,&#8901;Lettuce]]\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='$9.25&#8901;'>$9.25&#8901;\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='5'>5\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Steak&#8901;Burrito'>Steak&#8901;Burrito\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='[Fresh&#8901;Tomato&#8901;Salsa,&#8901;[Rice,&#8901;Black&#8901;Beans,&#8901;Pinto&#8901;Beans,&#8901;Cheese,&#8901;Sour&#8901;Cream,&#8901;Lettuce]]'>[Fresh&#8901;Tomato&#8901;Salsa,&#8901;[Rice,&#8901;Black&#8901;Beans,&#8901;Pinto&#8901;Beans,&#8901;Cheese,&#8901;Sour&#890...\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='$9.25&#8901;'>$9.25&#8901;\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" </tbody>\n",
"</table>\n",
"\n",
"\n",
"<div class=\"info_items\">Viewing 10 of 4622 rows / 5 columns</div>\n",
"<div class=\"info_items\">1 partition(s)</div>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"chipo.table(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Create a histogram of the top 5 items bought"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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okWLaGpqAooP9X333ZeRI0cycuRIHnjgAQDuvvtu9ttvP4455hi23357TjjhBCKCCy+8kL/+9a/sv//+7L///gA0NTWxaNEiJkyYwHPPPceIESM4++yzGTt2LL/73e9WxnXCCSdw44030pkavgZhZtZWU6dO5eqrr2b69OksX76ckSNHsttuu61x/80224zbbruNfv368eyzz3L88cevTCSPPvooTz31FFtssQV77703999/P2eccQY/+tGPuOuuuxg0aNBqr3Xeeefx5JNPMn36dADuueceJk6cyFFHHcXSpUt54IEHmDx58vti6AjXIMzM2ui+++7j6KOPZv3112fAgAEceeSRLe7/7rvvcuqpp7Lzzjtz7LHH8vTTT6/ctsceezB06FB69erFiBEjmDVrVrti+djHPsazzz7LwoULueqqq/jUpz5Fnz6d+53fNQgzsw7q06cP7733HsBq3UonTpzIkCFDeOyxx3jvvffo16/fym3rrrvuyuXevXuzfPly2mvs2LFcccUVXH311Vx66aUd+AnKuQZhZtZGH/3oR/nd737H3/72N5YtW8bNN98MFNcJpk6dCsB11123cv+lS5ey+eab06tXLy6//HJWrFjR6ntsuOGGLFu2rE3lJ510Eueffz4AO+64Y80/15o4QZiZtdHIkSM57rjj2GWXXTj00EPZfffdATjrrLO4+OKL2XXXXVm0aNHK/b/4xS8yefJkdtllF5555hn69+/f6nuMHz+eQw45ZOVF6oqBAwey9957s9NOO3H22WcDMGTIEHbYYQdOPvnkTvwpV2n4yfrczdWsZ5gxYwY77LBD7jBWc84557DBBhtw1llnZXn/N998k5133plp06ax0UYble5Tdt7aOlmfaxBmZj3Q7bffzg477MDpp5++xuTQUb5IbWZWo3POOSfbex900EHMnt2mG8PVzDUIMzMr5QRhZj1GT75mmkNHz5cThJn1CP369WPx4sVOEm1UuR9E9diL9qrbNQhJHwKuqSr6APBN4LJU3gTMAj4dEa+qmJf2AuAw4E3gpIiYVq/4zKxnGTp0KHPnzmXhwoW5Q+kxKneUq1XdEkRE/AUYASCpNzAPuAGYANwREedJmpDWvwYcCgxPjz2Bi9OzmRl9+/at+c5oVpuuamI6EHguImYDY4DKjFKTgaPS8hjgsig8CGwsafMuis/M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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"(chipo.groupby(\"item_name\")\n",
" .sum(\"quantity\")\n",
" .cols.rename(\"sum(quantity)\", \"quantity\")\n",
" .sort(desc(\"quantity\"))\n",
" .toPandas()[0:5].plot(kind=\"bar\"))\n",
"\n",
"x_labels = [row.item_name for row in (chipo.groupby(\"item_name\")\n",
" .sum(\"quantity\")\n",
" .cols.rename(\"sum(quantity)\", \"quantity\")\n",
" .sort(desc(\"quantity\"))\n",
" .select(\"item_name\")\n",
" .collect())][0:5]\n",
"\n",
"plt.xticks(np.arange(5), x_labels)\n",
"plt.xlabel('Items')\n",
"plt.ylabel('Price')\n",
"plt.title('Most ordered Chipotle\\'s Items')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Create a scatterplot with the number of items orderered per order price"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"# Use substr (like in SQL) to get from the first numer to the end and then cast it\n",
"chipo = chipo.withColumn(\"item_price\", chipo.item_price.substr(2,10).cast(\"float\"))"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
"\n",
"\n",
"<div class=\"info_items\">Viewing 5 of 4622 rows / 5 columns</div>\n",
"<div class=\"info_items\">1 partition(s)</div>\n",
"\n",
"<table class=\"optimus_table\">\n",
" <thead>\n",
" <tr>\n",
" \n",
" <th>\n",
" <div class=\"column_name\">order_id</div>\n",
" <div class=\"data_type\">1 (bigint)</div>\n",
" <div class=\"data_type\">\n",
" \n",
" nullable\n",
" \n",
" </div>\n",
" </th>\n",
" \n",
" <th>\n",
" <div class=\"column_name\">quantity</div>\n",
" <div class=\"data_type\">2 (bigint)</div>\n",
" <div class=\"data_type\">\n",
" \n",
" nullable\n",
" \n",
" </div>\n",
" </th>\n",
" \n",
" <th>\n",
" <div class=\"column_name\">item_name</div>\n",
" <div class=\"data_type\">3 (string)</div>\n",
" <div class=\"data_type\">\n",
" \n",
" nullable\n",
" \n",
" </div>\n",
" </th>\n",
" \n",
" <th>\n",
" <div class=\"column_name\">choice_description</div>\n",
" <div class=\"data_type\">4 (string)</div>\n",
" <div class=\"data_type\">\n",
" \n",
" nullable\n",
" \n",
" </div>\n",
" </th>\n",
" \n",
" <th>\n",
" <div class=\"column_name\">item_price</div>\n",
" <div class=\"data_type\">5 (float)</div>\n",
" <div class=\"data_type\">\n",
" \n",
" nullable\n",
" \n",
" </div>\n",
" </th>\n",
" \n",
" </tr>\n",
"\n",
" </thead>\n",
" <tbody>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Chips&#8901;and&#8901;Fresh&#8901;Tomato&#8901;Salsa'>Chips&#8901;and&#8901;Fresh&#8901;Tomato&#8901;Salsa\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='nan'>nan\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='2.390000104904175'>2.390000104904175\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Izze'>Izze\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='[Clementine]'>[Clementine]\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='3.390000104904175'>3.390000104904175\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Nantucket&#8901;Nectar'>Nantucket&#8901;Nectar\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='[Apple]'>[Apple]\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='3.390000104904175'>3.390000104904175\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='1'>1\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Chips&#8901;and&#8901;Tomatillo-Green&#8901;Chili&#8901;Salsa'>Chips&#8901;and&#8901;Tomatillo-Green&#8901;Chili&#8901;Salsa\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='nan'>nan\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='2.390000104904175'>2.390000104904175\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='2'>2\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='2'>2\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='Chicken&#8901;Bowl'>Chicken&#8901;Bowl\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='[Tomatillo-Red&#8901;Chili&#8901;Salsa&#8901;(Hot),&#8901;[Black&#8901;Beans,&#8901;Rice,&#8901;Cheese,&#8901;Sour&#8901;Cream]]'>[Tomatillo-Red&#8901;Chili&#8901;Salsa&#8901;(Hot),&#8901;[Black&#8901;Beans,&#8901;Rice,&#8901;Cheese,&#8901;Sour&#8901;Cream]]\n",
" </div>\n",
" </td>\n",
" \n",
" <td>\n",
" <div class=\" \"\n",
" title='16.979999542236328'>16.979999542236328\n",
" </div>\n",
" </td>\n",
" \n",
" </tr>\n",
" \n",
" </tbody>\n",
"</table>\n",
"\n",
"\n",
"<div class=\"info_items\">Viewing 5 of 4622 rows / 5 columns</div>\n",
"<div class=\"info_items\">1 partition(s)</div>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"chipo.table(5)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"orders = chipo.groupby('order_id').sum().cols.rename([ (\"sum(quantity)\",(\"quantity\")), (\"sum(item_price)\",(\"item_price\"))])"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"orders.plot.scatter([\"item_price\", \"quantity\"])\n",
"plt.xlabel('Order Price')\n",
"plt.ylabel('Items ordered')\n",
"plt.title('Number of items ordered per order price')\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment