From 8f72eee2973d0fb82b7f6bb96cc1bd8795c5e5a0 Mon Sep 17 00:00:00 2001 From: Kohei Seko Date: Mon, 11 Aug 2025 16:03:47 -0300 Subject: [PATCH] =?UTF-8?q?Adicionei=20o=20ambiente=20virtual=20e=20finali?= =?UTF-8?q?za=C3=A7=C3=A3o=20do=20exerc=C3=ADcio=20chipotle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Chipotle/Exercises.ipynb | 573 +++++++++++++++--- 1 file changed, 503 insertions(+), 70 deletions(-) diff --git a/01_Getting_&_Knowing_Your_Data/Chipotle/Exercises.ipynb b/01_Getting_&_Knowing_Your_Data/Chipotle/Exercises.ipynb index 03e1fc603..c523dc408 100644 --- a/01_Getting_&_Knowing_Your_Data/Chipotle/Exercises.ipynb +++ b/01_Getting_&_Knowing_Your_Data/Chipotle/Exercises.ipynb @@ -19,12 +19,15 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 83, "metadata": { "collapsed": false }, "outputs": [], - "source": [] + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] }, { "cell_type": "markdown", @@ -42,12 +45,15 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], - "source": [] + "source": [ + "url = \"https://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv\"\n", + "chipo = pd.read_table(url)" + ] }, { "cell_type": "markdown", @@ -58,13 +64,159 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "scrolled": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
order_idquantityitem_namechoice_descriptionitem_price
011Chips and Fresh Tomato SalsaNaN$2.39
111Izze[Clementine]$3.39
211Nantucket Nectar[Apple]$3.39
311Chips and Tomatillo-Green Chili SalsaNaN$2.39
422Chicken Bowl[Tomatillo-Red Chili Salsa (Hot), [Black Beans...$16.98
531Chicken Bowl[Fresh Tomato Salsa (Mild), [Rice, Cheese, Sou...$10.98
631Side of ChipsNaN$1.69
741Steak Burrito[Tomatillo Red Chili Salsa, [Fajita Vegetables...$11.75
841Steak Soft Tacos[Tomatillo Green Chili Salsa, [Pinto Beans, Ch...$9.25
951Steak Burrito[Fresh Tomato Salsa, [Rice, Black Beans, Pinto...$9.25
\n", + "
" + ], + "text/plain": [ + " order_id quantity item_name \\\n", + "0 1 1 Chips and Fresh Tomato Salsa \n", + "1 1 1 Izze \n", + "2 1 1 Nantucket Nectar \n", + "3 1 1 Chips and Tomatillo-Green Chili Salsa \n", + "4 2 2 Chicken Bowl \n", + "5 3 1 Chicken Bowl \n", + "6 3 1 Side of Chips \n", + "7 4 1 Steak Burrito \n", + "8 4 1 Steak Soft Tacos \n", + "9 5 1 Steak Burrito \n", + "\n", + " choice_description item_price \n", + "0 NaN $2.39 \n", + "1 [Clementine] $3.39 \n", + "2 [Apple] $3.39 \n", + "3 NaN $2.39 \n", + "4 [Tomatillo-Red Chili Salsa (Hot), [Black Beans... $16.98 \n", + "5 [Fresh Tomato Salsa (Mild), [Rice, Cheese, Sou... $10.98 \n", + "6 NaN $1.69 \n", + "7 [Tomatillo Red Chili Salsa, [Fajita Vegetables... $11.75 \n", + "8 [Tomatillo Green Chili Salsa, [Pinto Beans, Ch... $9.25 \n", + "9 [Fresh Tomato Salsa, [Rice, Black Beans, Pinto... $9.25 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chipo.head(10)" + ] }, { "cell_type": "markdown", @@ -75,26 +227,57 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 60, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "4622" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Solution 1\n", - "\n" + "chipo.shape[0]" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 62, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 4622 entries, 0 to 4621\n", + "Data columns (total 6 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 order_id 4622 non-null int64 \n", + " 1 quantity 4622 non-null int64 \n", + " 2 item_name 4622 non-null object \n", + " 3 choice_description 3376 non-null object \n", + " 4 item_price 4622 non-null float64\n", + " 5 average 4622 non-null float64\n", + "dtypes: float64(2), int64(2), object(2)\n", + "memory usage: 216.8+ KB\n" + ] + } + ], "source": [ "# Solution 2\n", - "\n" + "chipo.info()\n" ] }, { @@ -106,12 +289,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "5" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chipo.shape[1]" + ] }, { "cell_type": "markdown", @@ -122,12 +318,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['order_id', 'quantity', 'item_name', 'choice_description',\n", + " 'item_price'],\n", + " dtype='object')\n" + ] + } + ], + "source": [ + "print(chipo.columns)" + ] }, { "cell_type": "markdown", @@ -138,12 +346,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "RangeIndex(start=0, stop=4622, step=1)" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chipo.index" + ] }, { "cell_type": "markdown", @@ -154,12 +375,70 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 80, "metadata": { "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
order_idquantity
item_name
Chicken Bowl713926761
\n", + "
" + ], + "text/plain": [ + " order_id quantity\n", + "item_name \n", + "Chicken Bowl 713926 761" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chipo.groupby(\"item_name\").agg({\n", + " 'order_id': 'sum',\n", + " 'quantity': 'sum'\n", + "}).sort_values(by='quantity', ascending=False).iloc[[0], [0, 1]]\n", + "\n", + "# Chicken Bowl" + ] }, { "cell_type": "markdown", @@ -170,12 +449,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": { "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(761)" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chipo.groupby(\"item_name\")['quantity'].sum().sort_values(ascending=False).iloc[0]" + ] }, { "cell_type": "markdown", @@ -190,8 +482,65 @@ "metadata": { "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
order_idquantity
choice_description
[Diet Coke]123455159
\n", + "
" + ], + "text/plain": [ + " order_id quantity\n", + "choice_description \n", + "[Diet Coke] 123455 159" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chipo.groupby(\"choice_description\").agg({\n", + " 'order_id': 'sum',\n", + " 'quantity': 'sum'\n", + "}).sort_values(by='quantity', ascending=False).iloc[[0], [0, 1]]\n", + "# Diet coke " + ] }, { "cell_type": "markdown", @@ -202,12 +551,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "metadata": { "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(4972)" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chipo['quantity'].sum()" + ] }, { "cell_type": "markdown", @@ -225,12 +587,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 82, "metadata": { "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "dtype('float64')" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chipo['item_price'].dtype" + ] }, { "cell_type": "markdown", @@ -241,12 +616,14 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 47, "metadata": { "collapsed": true }, "outputs": [], - "source": [] + "source": [ + "chipo['item_price'] = chipo['item_price'].apply(lambda x: float(x.replace('$', '')))" + ] }, { "cell_type": "markdown", @@ -257,12 +634,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 49, "metadata": { "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 4622 entries, 0 to 4621\n", + "Series name: item_price\n", + "Non-Null Count Dtype \n", + "-------------- ----- \n", + "4622 non-null float64\n", + "dtypes: float64(1)\n", + "memory usage: 36.2 KB\n" + ] + } + ], + "source": [ + "chipo['item_price'].info()" + ] }, { "cell_type": "markdown", @@ -273,12 +667,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 51, "metadata": { "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "np.float64(34500.16)" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chipo['item_price'].sum()" + ] }, { "cell_type": "markdown", @@ -289,12 +696,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 52, "metadata": { "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(4622)" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chipo['item_price'].count()" + ] }, { "cell_type": "markdown", @@ -305,26 +725,26 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "np.float64(21.39423118865867)" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Solution 1\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Solution 2\n", - "\n" + "chipo['revenue'] = chipo['item_price'] * chipo['quantity']\n", + "chipo.groupby('order_id')['revenue'].sum().mean()" ] }, { @@ -336,32 +756,45 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 56, "metadata": { "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "50" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(chipo['item_name'].unique())" + ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python [default]", + "display_name": ".env", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" + "pygments_lexer": "ipython3", + "version": "3.13.2" } }, "nbformat": 4,