diff --git a/.DS_Store b/.DS_Store index fb82229e0..99ad0b6ca 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..ea86e46fa --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: ['paypal.me/guisamora'] diff --git a/01_Getting_&_Knowing_Your_Data/Chipotle/Exercise_with_Solutions.ipynb b/01_Getting_&_Knowing_Your_Data/Chipotle/Exercise_with_Solutions.ipynb index 3e441a17d..32d1e7df8 100644 --- a/01_Getting_&_Knowing_Your_Data/Chipotle/Exercise_with_Solutions.ipynb +++ b/01_Getting_&_Knowing_Your_Data/Chipotle/Exercise_with_Solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Ex2 - Getting and Knowing your Data" + "# Ex2 - Getting and Knowing your Data\n", + "\n", + "Check out [Chipotle Exercises Video Tutorial](https://www.youtube.com/watch?v=lpuYZ5EUyS8&list=PLgJhDSE2ZLxaY_DigHeiIDC1cD09rXgJv&index=2) to watch a data scientist go through the exercises" ] }, { @@ -19,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 1, "metadata": { "collapsed": false }, @@ -45,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -65,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": { "collapsed": false, "scrolled": false @@ -197,14 +199,13 @@ "9 [Fresh Tomato Salsa, [Rice, Black Beans, Pinto... $9.25 " ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "chipo.head(10)\n", - "# chipo['choice_description'][4]" + "chipo.head(10)" ] }, { @@ -214,6 +215,30 @@ "### Step 5. What is the number of observations in the dataset?" ] }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "4622" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution 1\n", + "\n", + "chipo.shape[0] # entries <= 4622 observations" + ] + }, { "cell_type": "code", "execution_count": 5, @@ -236,25 +261,12 @@ "dtypes: int64(2), object(3)\n", "memory usage: 180.6+ KB\n" ] - }, - { - "data": { - "text/plain": [ - "4622" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "chipo.info()#\n", - "\n", - "# OR\n", + "# Solution 2\n", "\n", - "chipo.shape[0]\n", - "# 4622 observations" + "chipo.info() # entries <= 4622 observations" ] }, { @@ -350,12 +362,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. Which was the most ordered item? " + "### Step 9. Which was the most-ordered item? " ] }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -393,7 +405,7 @@ "Chicken Bowl 713926 761" ] }, - "execution_count": 41, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -409,12 +421,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 10. How many items were ordered?" + "### Step 10. For the most-ordered item, how many items were ordered?" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -452,7 +464,7 @@ "Chicken Bowl 713926 761" ] }, - "execution_count": 21, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -473,7 +485,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -511,7 +523,7 @@ "[Diet Coke] 123455 159" ] }, - "execution_count": 23, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -532,7 +544,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -543,7 +555,7 @@ "4972" ] }, - "execution_count": 42, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -560,9 +572,45 @@ "### Step 13. Turn the item price into a float" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 13.a. Check the item price type" + ] + }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "dtype('O')" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chipo.item_price.dtype" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 13.b. Create a lambda function and change the type of item price" + ] + }, + { + "cell_type": "code", + "execution_count": 14, "metadata": { "collapsed": true }, @@ -572,6 +620,35 @@ "chipo.item_price = chipo.item_price.apply(dollarizer)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 13.c. Check the item price type" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "dtype('float64')" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chipo.item_price.dtype" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -581,7 +658,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -609,7 +686,7 @@ }, { "cell_type": "code", - "execution_count": 130, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -620,25 +697,26 @@ "1834" ] }, - "execution_count": 130, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "chipo.order_id.value_counts().count()" + "orders = chipo.order_id.value_counts().count()\n", + "orders" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 16. What is the average amount per order?" + "### Step 16. What is the average revenue amount per order?" ] }, { "cell_type": "code", - "execution_count": 140, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -646,21 +724,44 @@ { "data": { "text/plain": [ - "18.811428571428689" + "21.394231188658654" ] }, - "execution_count": 4, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "order_grouped = chipo.groupby(by=['order_id']).sum()\n", - "order_grouped.mean()['item_price']\n", + "# Solution 1\n", "\n", - "# Or \n", + "chipo['revenue'] = chipo['quantity'] * chipo['item_price']\n", + "order_grouped = chipo.groupby(by=['order_id']).sum()\n", + "order_grouped.mean()['revenue']" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "21.394231188658654" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution 2\n", "\n", - "#chipo.groupby(by=['order_id']).sum().mean()['item_price']" + "chipo.groupby(by=['order_id']).sum().mean()['revenue']" ] }, { @@ -672,7 +773,7 @@ }, { "cell_type": "code", - "execution_count": 148, + "execution_count": 33, "metadata": { "collapsed": false }, @@ -683,7 +784,7 @@ "50" ] }, - "execution_count": 148, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -699,6 +800,18 @@ "display_name": "Python [default]", "language": "python", "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" } }, "nbformat": 4, diff --git a/01_Getting_&_Knowing_Your_Data/Chipotle/Exercises.ipynb b/01_Getting_&_Knowing_Your_Data/Chipotle/Exercises.ipynb index 854e5997d..03e1fc603 100644 --- a/01_Getting_&_Knowing_Your_Data/Chipotle/Exercises.ipynb +++ b/01_Getting_&_Knowing_Your_Data/Chipotle/Exercises.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Getting and Knowing your Data" + "# Ex2 - Getting and Knowing your Data" ] }, { @@ -60,7 +60,8 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": false }, "outputs": [], "source": [] @@ -74,12 +75,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], - "source": [] + "source": [ + "# Solution 1\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Solution 2\n", + "\n" + ] }, { "cell_type": "markdown", @@ -92,7 +108,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [] @@ -133,7 +149,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. Which was the most ordered item?" + "### Step 9. Which was the most-ordered item? " ] }, { @@ -149,7 +165,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 10. How many items were ordered?" + "### Step 10. For the most-ordered item, how many items were ordered?" ] }, { @@ -200,6 +216,29 @@ "### Step 13. Turn the item price into a float" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 13.a. Check the item price type" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 13.b. Create a lambda function and change the type of item price" + ] + }, { "cell_type": "code", "execution_count": null, @@ -213,7 +252,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 14. How much was the revenue for the period in the dataset?" + "#### Step 13.c. Check the item price type" ] }, { @@ -229,14 +268,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 15. How many orders were made in the period?" + "### Step 14. How much was the revenue for the period in the dataset?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [] @@ -245,18 +284,49 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 16. What is the average amount per order?" + "### Step 15. How many orders were made in the period?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 16. What is the average revenue amount per order?" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Solution 1\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Solution 2\n", + "\n" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -268,13 +338,14 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [] } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "language": "python", diff --git a/01_Getting_&_Knowing_Your_Data/Chipotle/Solutions.ipynb b/01_Getting_&_Knowing_Your_Data/Chipotle/Solutions.ipynb index f77a7ca47..b497173bf 100644 --- a/01_Getting_&_Knowing_Your_Data/Chipotle/Solutions.ipynb +++ b/01_Getting_&_Knowing_Your_Data/Chipotle/Solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Ex2 - Getting and Knowing your Data" + "# Ex2 - Getting and Knowing your Data\n", + "\n", + "Check out [Chipotle Exercises Video Tutorial](https://www.youtube.com/watch?v=lpuYZ5EUyS8&list=PLgJhDSE2ZLxaY_DigHeiIDC1cD09rXgJv&index=2) to watch a data scientist go through the exercises" ] }, { @@ -19,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 1, "metadata": { "collapsed": false }, @@ -42,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -58,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": { "collapsed": false, "scrolled": false @@ -190,7 +192,7 @@ "9 [Fresh Tomato Salsa, [Rice, Black Beans, Pinto... $9.25 " ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -204,6 +206,29 @@ "### Step 5. What is the number of observations in the dataset?" ] }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "4622" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution 1\n", + "\n" + ] + }, { "cell_type": "code", "execution_count": 5, @@ -226,19 +251,12 @@ "dtypes: int64(2), object(3)\n", "memory usage: 180.6+ KB\n" ] - }, - { - "data": { - "text/plain": [ - "4622" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" } ], - "source": [] + "source": [ + "# Solution 2\n", + "\n" + ] }, { "cell_type": "markdown", @@ -327,12 +345,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. Which was the most ordered item? " + "### Step 9. Which was the most-ordered item? " ] }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -370,7 +388,7 @@ "Chicken Bowl 713926 761" ] }, - "execution_count": 41, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -381,12 +399,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 10. How many items were ordered?" + "### Step 10. For the most-ordered item, how many items were ordered?" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -424,7 +442,7 @@ "Chicken Bowl 713926 761" ] }, - "execution_count": 21, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -440,7 +458,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -478,7 +496,7 @@ "[Diet Coke] 123455 159" ] }, - "execution_count": 23, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -494,7 +512,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -505,7 +523,7 @@ "4972" ] }, - "execution_count": 42, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -519,15 +537,76 @@ "### Step 13. Turn the item price into a float" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 13.a. Check the item price type" + ] + }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "dtype('O')" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 13.b. Create a lambda function and change the type of item price" + ] + }, + { + "cell_type": "code", + "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 13.c. Check the item price type" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "dtype('float64')" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -537,7 +616,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -561,7 +640,7 @@ }, { "cell_type": "code", - "execution_count": 130, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -572,7 +651,7 @@ "1834" ] }, - "execution_count": 130, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -583,12 +662,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 16. What is the average amount per order?" + "### Step 16. What is the average revenue amount per order?" ] }, { "cell_type": "code", - "execution_count": 140, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -596,15 +675,41 @@ { "data": { "text/plain": [ - "18.811428571428689" + "21.394231188658654" ] }, - "execution_count": 4, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "# Solution 1\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "21.394231188658654" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution 2\n", + "\n" + ] }, { "cell_type": "markdown", @@ -615,7 +720,7 @@ }, { "cell_type": "code", - "execution_count": 148, + "execution_count": 33, "metadata": { "collapsed": false }, @@ -626,7 +731,7 @@ "50" ] }, - "execution_count": 148, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } diff --git a/01_Getting_&_Knowing_Your_Data/Occupation/Exercise_with_Solution.ipynb b/01_Getting_&_Knowing_Your_Data/Occupation/Exercise_with_Solution.ipynb index ba552f673..caf683c83 100644 --- a/01_Getting_&_Knowing_Your_Data/Occupation/Exercise_with_Solution.ipynb +++ b/01_Getting_&_Knowing_Your_Data/Occupation/Exercise_with_Solution.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Ex3 - Getting and Knowing your Data" + "# Ex3 - Getting and Knowing your Data\n", + "\n", + "Check out [Occupation Exercises Video Tutorial](https://www.youtube.com/watch?v=W8AB5s-L3Rw&list=PLgJhDSE2ZLxaY_DigHeiIDC1cD09rXgJv&index=4) to watch a data scientist go through the exercises" ] }, { @@ -19,10 +21,8 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, + "execution_count": 39, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd" @@ -44,13 +44,11 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, + "execution_count": 40, + "metadata": {}, "outputs": [], "source": [ - "users = pd.read_table('https://raw.githubusercontent.com/justmarkham/DAT8/master/data/u.user', \n", + "users = pd.read_csv('https://raw.githubusercontent.com/justmarkham/DAT8/master/data/u.user', \n", " sep='|', index_col='user_id')" ] }, @@ -63,9 +61,8 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 41, "metadata": { - "collapsed": false, "scrolled": true }, "outputs": [ @@ -73,6 +70,19 @@ "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -300,7 +310,7 @@ "25 39 M engineer 55107" ] }, - "execution_count": 6, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -318,9 +328,8 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 42, "metadata": { - "collapsed": false, "scrolled": true }, "outputs": [ @@ -328,6 +337,19 @@ "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -435,7 +457,7 @@ "943 22 M student 77841" ] }, - "execution_count": 6, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -453,10 +475,8 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, + "execution_count": 43, + "metadata": {}, "outputs": [ { "data": { @@ -464,7 +484,7 @@ "943" ] }, - "execution_count": 5, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } @@ -482,10 +502,8 @@ }, { "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": false - }, + "execution_count": 44, + "metadata": {}, "outputs": [ { "data": { @@ -493,7 +511,7 @@ "4" ] }, - "execution_count": 7, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -511,18 +529,16 @@ }, { "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": false - }, + "execution_count": 45, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index([u'age', u'gender', u'occupation', u'zip_code'], dtype='object')" + "Index(['age', 'gender', 'occupation', 'zip_code'], dtype='object')" ] }, - "execution_count": 8, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -540,10 +556,8 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": false - }, + "execution_count": 46, + "metadata": {}, "outputs": [ { "data": { @@ -551,10 +565,10 @@ "Int64Index([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,\n", " ...\n", " 934, 935, 936, 937, 938, 939, 940, 941, 942, 943],\n", - " dtype='int64', name=u'user_id', length=943)" + " dtype='int64', name='user_id', length=943)" ] }, - "execution_count": 13, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } @@ -573,10 +587,8 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": false - }, + "execution_count": 47, + "metadata": {}, "outputs": [ { "data": { @@ -588,7 +600,7 @@ "dtype: object" ] }, - "execution_count": 10, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -606,10 +618,8 @@ }, { "cell_type": "code", - "execution_count": 17, - "metadata": { - "collapsed": false - }, + "execution_count": 48, + "metadata": {}, "outputs": [ { "data": { @@ -676,18 +686,18 @@ "941 student\n", "942 librarian\n", "943 student\n", - "Name: occupation, dtype: object" + "Name: occupation, Length: 943, dtype: object" ] }, - "execution_count": 17, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "users.occupation \n", + "users.occupation\n", "\n", - "#OR\n", + "#or\n", "\n", "users['occupation']" ] @@ -696,15 +706,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 12. How many different occupations there are in this dataset?" + "### Step 12. How many different occupations are in this dataset?" ] }, { "cell_type": "code", - "execution_count": 20, - "metadata": { - "collapsed": false - }, + "execution_count": 49, + "metadata": {}, "outputs": [ { "data": { @@ -712,13 +720,15 @@ "21" ] }, - "execution_count": 20, + "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "len(users.occupation.unique())" + "users.occupation.nunique()\n", + "#or by using value_counts() which returns the count of unique elements\n", + "#users.occupation.value_counts().count()" ] }, { @@ -730,29 +740,28 @@ }, { "cell_type": "code", - "execution_count": 33, - "metadata": { - "collapsed": false - }, + "execution_count": 50, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "student 196\n", - "other 105\n", - "educator 95\n", - "administrator 79\n", - "engineer 67\n", - "Name: occupation, dtype: int64" + "'student'" ] }, - "execution_count": 33, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "users.occupation.value_counts().head()" + "#Because \"most\" is asked\n", + "users.occupation.value_counts().head(1).index[0]\n", + "\n", + "#or\n", + "#to have the top 5\n", + "\n", + "# users.occupation.value_counts().head()" ] }, { @@ -764,15 +773,26 @@ }, { "cell_type": "code", - "execution_count": 21, - "metadata": { - "collapsed": false - }, + "execution_count": 51, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -829,13 +849,13 @@ "max 73.000000" ] }, - "execution_count": 21, + "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "users.describe() #Notice is only the numeric column" + "users.describe() #Notice: by default, only the numeric columns are returned. " ] }, { @@ -847,9 +867,8 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 52, "metadata": { - "collapsed": false, "scrolled": true }, "outputs": [ @@ -857,6 +876,19 @@ "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -964,13 +996,13 @@ "max 73.000000 NaN NaN NaN" ] }, - "execution_count": 22, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "users.describe(include = \"all\") #Notice is only the numeric column" + "users.describe(include = \"all\") #Notice: By default, only the numeric columns are returned." ] }, { @@ -982,10 +1014,8 @@ }, { "cell_type": "code", - "execution_count": 34, - "metadata": { - "collapsed": false - }, + "execution_count": 53, + "metadata": {}, "outputs": [ { "data": { @@ -997,7 +1027,7 @@ "Name: occupation, dtype: object" ] }, - "execution_count": 34, + "execution_count": 53, "metadata": {}, "output_type": "execute_result" } @@ -1015,18 +1045,16 @@ }, { "cell_type": "code", - "execution_count": 38, - "metadata": { - "collapsed": false - }, + "execution_count": 54, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "34.0" + "34" ] }, - "execution_count": 38, + "execution_count": 54, "metadata": {}, "output_type": "execute_result" } @@ -1044,35 +1072,50 @@ }, { "cell_type": "code", - "execution_count": 53, - "metadata": { - "collapsed": false - }, + "execution_count": 57, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "7 1\n", + "11 1\n", + "10 1\n", + "73 1\n", + "66 1\n", + "7 1\n", "Name: age, dtype: int64" ] }, - "execution_count": 53, + "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "users.age.value_counts().tail(1) #7 years, only 1 occurrence" + "users.age.value_counts().tail() #7, 10, 11, 66 and 73 years -> only 1 occurrence" ] } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "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.7.3" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/01_Getting_&_Knowing_Your_Data/Occupation/Exercises.ipynb b/01_Getting_&_Knowing_Your_Data/Occupation/Exercises.ipynb index 4e8328147..f32d9ce9f 100644 --- a/01_Getting_&_Knowing_Your_Data/Occupation/Exercises.ipynb +++ b/01_Getting_&_Knowing_Your_Data/Occupation/Exercises.ipynb @@ -183,7 +183,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 12. How many different occupations there are in this dataset?" + "### Step 12. How many different occupations are in this dataset?" ] }, { @@ -293,8 +293,9 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [default]", "language": "python", "name": "python2" }, @@ -308,7 +309,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, diff --git a/01_Getting_&_Knowing_Your_Data/Occupation/Solutions.ipynb b/01_Getting_&_Knowing_Your_Data/Occupation/Solutions.ipynb index 0daad0200..345cb8f83 100644 --- a/01_Getting_&_Knowing_Your_Data/Occupation/Solutions.ipynb +++ b/01_Getting_&_Knowing_Your_Data/Occupation/Solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Ex3 - Getting and Knowing your Data" + "# Ex3 - Getting and Knowing your Data\n", + "\n", + "Check out [Occupation Exercises Video Tutorial](https://www.youtube.com/watch?v=W8AB5s-L3Rw&list=PLgJhDSE2ZLxaY_DigHeiIDC1cD09rXgJv&index=4) to watch a data scientist go through the exercises" ] }, { @@ -19,10 +21,8 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, + "execution_count": 39, + "metadata": {}, "outputs": [], "source": [] }, @@ -42,10 +42,8 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, + "execution_count": 40, + "metadata": {}, "outputs": [], "source": [] }, @@ -58,9 +56,8 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 41, "metadata": { - "collapsed": false, "scrolled": true }, "outputs": [ @@ -68,6 +65,19 @@ "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -295,7 +305,7 @@ "25 39 M engineer 55107" ] }, - "execution_count": 6, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -311,9 +321,8 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 42, "metadata": { - "collapsed": false, "scrolled": true }, "outputs": [ @@ -321,6 +330,19 @@ "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -428,7 +450,7 @@ "943 22 M student 77841" ] }, - "execution_count": 6, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -444,10 +466,8 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, + "execution_count": 43, + "metadata": {}, "outputs": [ { "data": { @@ -455,7 +475,7 @@ "943" ] }, - "execution_count": 5, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } @@ -471,10 +491,8 @@ }, { "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": false - }, + "execution_count": 44, + "metadata": {}, "outputs": [ { "data": { @@ -482,7 +500,7 @@ "4" ] }, - "execution_count": 7, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -498,18 +516,16 @@ }, { "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": false - }, + "execution_count": 45, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index([u'age', u'gender', u'occupation', u'zip_code'], dtype='object')" + "Index(['age', 'gender', 'occupation', 'zip_code'], dtype='object')" ] }, - "execution_count": 8, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -525,10 +541,8 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": false - }, + "execution_count": 46, + "metadata": {}, "outputs": [ { "data": { @@ -536,15 +550,17 @@ "Int64Index([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,\n", " ...\n", " 934, 935, 936, 937, 938, 939, 940, 941, 942, 943],\n", - " dtype='int64', name=u'user_id', length=943)" + " dtype='int64', name='user_id', length=943)" ] }, - "execution_count": 13, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "# \"the index\" (aka \"the labels\")\n" + ] }, { "cell_type": "markdown", @@ -555,10 +571,8 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": false - }, + "execution_count": 47, + "metadata": {}, "outputs": [ { "data": { @@ -570,7 +584,7 @@ "dtype: object" ] }, - "execution_count": 10, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -586,10 +600,8 @@ }, { "cell_type": "code", - "execution_count": 17, - "metadata": { - "collapsed": false - }, + "execution_count": 48, + "metadata": {}, "outputs": [ { "data": { @@ -656,10 +668,10 @@ "941 student\n", "942 librarian\n", "943 student\n", - "Name: occupation, dtype: object" + "Name: occupation, Length: 943, dtype: object" ] }, - "execution_count": 17, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } @@ -670,15 +682,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 12. How many different occupations there are in this dataset?" + "### Step 12. How many different occupations are in this dataset?" ] }, { "cell_type": "code", - "execution_count": 20, - "metadata": { - "collapsed": false - }, + "execution_count": 49, + "metadata": {}, "outputs": [ { "data": { @@ -686,7 +696,7 @@ "21" ] }, - "execution_count": 20, + "execution_count": 49, "metadata": {}, "output_type": "execute_result" } @@ -702,23 +712,16 @@ }, { "cell_type": "code", - "execution_count": 33, - "metadata": { - "collapsed": false - }, + "execution_count": 50, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "student 196\n", - "other 105\n", - "educator 95\n", - "administrator 79\n", - "engineer 67\n", - "Name: occupation, dtype: int64" + "'student'" ] }, - "execution_count": 33, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } @@ -734,15 +737,26 @@ }, { "cell_type": "code", - "execution_count": 21, - "metadata": { - "collapsed": false - }, + "execution_count": 51, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -799,7 +813,7 @@ "max 73.000000" ] }, - "execution_count": 21, + "execution_count": 51, "metadata": {}, "output_type": "execute_result" } @@ -815,9 +829,8 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 52, "metadata": { - "collapsed": false, "scrolled": true }, "outputs": [ @@ -825,6 +838,19 @@ "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -932,7 +958,7 @@ "max 73.000000 NaN NaN NaN" ] }, - "execution_count": 22, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -948,10 +974,8 @@ }, { "cell_type": "code", - "execution_count": 34, - "metadata": { - "collapsed": false - }, + "execution_count": 53, + "metadata": {}, "outputs": [ { "data": { @@ -963,7 +987,7 @@ "Name: occupation, dtype: object" ] }, - "execution_count": 34, + "execution_count": 53, "metadata": {}, "output_type": "execute_result" } @@ -979,18 +1003,16 @@ }, { "cell_type": "code", - "execution_count": 38, - "metadata": { - "collapsed": false - }, + "execution_count": 54, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "34.0" + "34" ] }, - "execution_count": 38, + "execution_count": 54, "metadata": {}, "output_type": "execute_result" } @@ -1006,19 +1028,21 @@ }, { "cell_type": "code", - "execution_count": 53, - "metadata": { - "collapsed": false - }, + "execution_count": 57, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "7 1\n", + "11 1\n", + "10 1\n", + "73 1\n", + "66 1\n", + "7 1\n", "Name: age, dtype: int64" ] }, - "execution_count": 53, + "execution_count": 57, "metadata": {}, "output_type": "execute_result" } @@ -1027,24 +1051,25 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/01_Getting_&_Knowing_Your_Data/World Food Facts/Exercises.ipynb b/01_Getting_&_Knowing_Your_Data/World Food Facts/Exercises.ipynb index 0246d3784..ea507fa1d 100644 --- a/01_Getting_&_Knowing_Your_Data/World Food Facts/Exercises.ipynb +++ b/01_Getting_&_Knowing_Your_Data/World Food Facts/Exercises.ipynb @@ -11,7 +11,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 1. Go to [Kaggle]( https://www.kaggle.com/openfoodfacts/world-food-facts)" + "### Step 1. Go to https://www.kaggle.com/openfoodfacts/world-food-facts/data" ] }, { @@ -25,7 +25,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 3. Use the csv file and assign it to a dataframe called food" + "### Step 3. Use the tsv file and assign it to a dataframe called food" ] }, { @@ -167,8 +167,9 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [default]", "language": "python", "name": "python2" }, @@ -182,7 +183,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, diff --git a/01_Getting_&_Knowing_Your_Data/World Food Facts/Exercises_with_solutions.ipynb b/01_Getting_&_Knowing_Your_Data/World Food Facts/Exercises_with_solutions.ipynb index 38531e483..213c4e859 100644 --- a/01_Getting_&_Knowing_Your_Data/World Food Facts/Exercises_with_solutions.ipynb +++ b/01_Getting_&_Knowing_Your_Data/World Food Facts/Exercises_with_solutions.ipynb @@ -4,14 +4,15 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Ex1 - Getting and knowing your Data" + "# Ex1 - Getting and knowing your Data\n", + "Check out [World Food Facts Exercises Video Tutorial](https://youtu.be/_jCSK4cMcVw) to watch a data scientist go through the exercises" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 1. Go to https://www.kaggle.com/openfoodfacts/world-food-facts" + "### Step 1. Go to https://www.kaggle.com/openfoodfacts/world-food-facts/data" ] }, { @@ -23,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": { "collapsed": true }, @@ -37,27 +38,25 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 3. Use the csv file and assign it to a dataframe called food" + "### Step 3. Use the tsv file and assign it to a dataframe called food" ] }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, + "execution_count": 3, + "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "//anaconda/lib/python2.7/site-packages/IPython/core/interactiveshell.py:2723: DtypeWarning: Columns (0,3,5,27,36) have mixed types. Specify dtype option on import or set low_memory=False.\n", + "//anaconda/lib/python2.7/site-packages/IPython/core/interactiveshell.py:2717: DtypeWarning: Columns (0,3,5,19,20,24,25,26,27,28,36,37,38,39,48) have mixed types. Specify dtype option on import or set low_memory=False.\n", " interactivity=interactivity, compiler=compiler, result=result)\n" ] } ], "source": [ - "food = pd.read_csv('/Users/guilhermeoliveira/Desktop/world-food-facts/FoodFacts.csv')" + "food = pd.read_csv('~/Desktop/en.openfoodfacts.org.products.tsv', sep='\\t')" ] }, { @@ -69,10 +68,8 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": false - }, + "execution_count": 4, + "metadata": {}, "outputs": [ { "data": { @@ -93,31 +90,31 @@ " \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", @@ -132,38 +129,38 @@ " \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", @@ -173,21 +170,21 @@ " \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", @@ -197,21 +194,21 @@ " \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", @@ -228,63 +225,63 @@ " \n", " \n", "
generic_namequantity...caffeine_100gtaurine_100gph_100gfruits_vegetables_nuts_100gcollagen_meat_protein_ratio_100gfruits-vegetables-nuts_100gfruits-vegetables-nuts-estimate_100gcollagen-meat-protein-ratio_100gcocoa_100gchlorophyl_100gcarbon_footprint_100gnutrition_score_fr_100gnutrition_score_uk_100gcarbon-footprint_100gnutrition-score-fr_100gnutrition-score-uk_100gglycemic-index_100gwater-hardness_100g
00000000000000128663087http://world-en.openfoodfacts.org/product/0000...date-limite-app14470043642015-11-08T17:39:24Z14470043642015-11-08T17:39:24ZPoêlée à la sarladaiseNaNNaNopenfoodfacts-contributors14741038662016-09-17T09:17:46Z14741038932016-09-17T09:18:13ZFarine de blé noirNaN1kg...NaNNaN
100000000246004530http://world-en.openfoodfacts.org/product/0000...date-limite-app14345307042015-06-17T08:45:04Z14345359142015-06-17T10:11:54ZFilet de bœufNaN2.46 kg...usda-ndb-import14890699572017-03-09T14:32:37Z14890699572017-03-09T14:32:37ZBanana Chips Sweetened (Whole)NaNNaN...NaNNaNNaNNaNNaNNaN14.014.0NaNNaN
200000000362524559http://world-en.openfoodfacts.org/product/0000...tacinte14222217012015-01-25T21:35:01Z14222218552015-01-25T21:37:35ZLion Peanut x2usda-ndb-import14890699572017-03-09T14:32:37Z14890699572017-03-09T14:32:37ZPeanutsNaNNaN...NaNNaNNaNNaNNaN0.00.0NaNNaN
3000000003925916087http://world-en.openfoodfacts.org/product/0000...tacinte14222217732015-01-25T21:36:13Z14222219262015-01-25T21:38:46ZTwix x2usda-ndb-import14890557312017-03-09T10:35:31Z14890557312017-03-09T10:35:31ZOrganic Salted Nut MixNaNNaN...NaNNaNNaNNaNNaN12.012.0NaNNaN
4000000003952916094http://world-en.openfoodfacts.org/product/0000...teolemon14201470512015-01-01T21:17:31Z14391417402015-08-09T17:35:40ZPack de 2 Twixusda-ndb-import14890556532017-03-09T10:34:13Z14890556532017-03-09T10:34:13ZOrganic PolentaNaNNaN...
\n", - "

5 rows × 159 columns

\n", + "

5 rows × 163 columns

\n", "
" ], "text/plain": [ - " code url \\\n", - "0 000000000000012866 http://world-en.openfoodfacts.org/product/0000... \n", - "1 0000000024600 http://world-en.openfoodfacts.org/product/0000... \n", - "2 0000000036252 http://world-en.openfoodfacts.org/product/0000... \n", - "3 0000000039259 http://world-en.openfoodfacts.org/product/0000... \n", - "4 0000000039529 http://world-en.openfoodfacts.org/product/0000... \n", + " code url \\\n", + "0 3087 http://world-en.openfoodfacts.org/product/0000... \n", + "1 4530 http://world-en.openfoodfacts.org/product/0000... \n", + "2 4559 http://world-en.openfoodfacts.org/product/0000... \n", + "3 16087 http://world-en.openfoodfacts.org/product/0000... \n", + "4 16094 http://world-en.openfoodfacts.org/product/0000... \n", "\n", - " creator created_t created_datetime last_modified_t \\\n", - "0 date-limite-app 1447004364 2015-11-08T17:39:24Z 1447004364 \n", - "1 date-limite-app 1434530704 2015-06-17T08:45:04Z 1434535914 \n", - "2 tacinte 1422221701 2015-01-25T21:35:01Z 1422221855 \n", - "3 tacinte 1422221773 2015-01-25T21:36:13Z 1422221926 \n", - "4 teolemon 1420147051 2015-01-01T21:17:31Z 1439141740 \n", + " creator created_t created_datetime \\\n", + "0 openfoodfacts-contributors 1474103866 2016-09-17T09:17:46Z \n", + "1 usda-ndb-import 1489069957 2017-03-09T14:32:37Z \n", + "2 usda-ndb-import 1489069957 2017-03-09T14:32:37Z \n", + "3 usda-ndb-import 1489055731 2017-03-09T10:35:31Z \n", + "4 usda-ndb-import 1489055653 2017-03-09T10:34:13Z \n", "\n", - " last_modified_datetime product_name generic_name quantity \\\n", - "0 2015-11-08T17:39:24Z Poêlée à la sarladaise NaN NaN \n", - "1 2015-06-17T10:11:54Z Filet de bœuf NaN 2.46 kg \n", - "2 2015-01-25T21:37:35Z Lion Peanut x2 NaN NaN \n", - "3 2015-01-25T21:38:46Z Twix x2 NaN NaN \n", - "4 2015-08-09T17:35:40Z Pack de 2 Twix NaN NaN \n", + " last_modified_t last_modified_datetime product_name \\\n", + "0 1474103893 2016-09-17T09:18:13Z Farine de blé noir \n", + "1 1489069957 2017-03-09T14:32:37Z Banana Chips Sweetened (Whole) \n", + "2 1489069957 2017-03-09T14:32:37Z Peanuts \n", + "3 1489055731 2017-03-09T10:35:31Z Organic Salted Nut Mix \n", + "4 1489055653 2017-03-09T10:34:13Z Organic Polenta \n", "\n", - " ... caffeine_100g taurine_100g ph_100g \\\n", - "0 ... NaN NaN NaN \n", - "1 ... NaN NaN NaN \n", - "2 ... NaN NaN NaN \n", - "3 ... NaN NaN NaN \n", - "4 ... NaN NaN NaN \n", + " generic_name quantity ... fruits-vegetables-nuts_100g \\\n", + "0 NaN 1kg ... NaN \n", + "1 NaN NaN ... NaN \n", + "2 NaN NaN ... NaN \n", + "3 NaN NaN ... NaN \n", + "4 NaN NaN ... NaN \n", "\n", - " fruits_vegetables_nuts_100g collagen_meat_protein_ratio_100g cocoa_100g \\\n", - "0 NaN NaN NaN \n", - "1 NaN NaN NaN \n", - "2 NaN NaN NaN \n", - "3 NaN NaN NaN \n", - "4 NaN NaN NaN \n", + " fruits-vegetables-nuts-estimate_100g collagen-meat-protein-ratio_100g \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", "\n", - " chlorophyl_100g carbon_footprint_100g nutrition_score_fr_100g \\\n", - "0 NaN NaN NaN \n", - "1 NaN NaN NaN \n", - "2 NaN NaN NaN \n", - "3 NaN NaN NaN \n", - "4 NaN NaN NaN \n", + " cocoa_100g chlorophyl_100g carbon-footprint_100g nutrition-score-fr_100g \\\n", + "0 NaN NaN NaN NaN \n", + "1 NaN NaN NaN 14.0 \n", + "2 NaN NaN NaN 0.0 \n", + "3 NaN NaN NaN 12.0 \n", + "4 NaN NaN NaN NaN \n", "\n", - " nutrition_score_uk_100g \n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", + " nutrition-score-uk_100g glycemic-index_100g water-hardness_100g \n", + "0 NaN NaN NaN \n", + "1 14.0 NaN NaN \n", + "2 0.0 NaN NaN \n", + "3 12.0 NaN NaN \n", + "4 NaN NaN NaN \n", "\n", - "[5 rows x 159 columns]" + "[5 rows x 163 columns]" ] }, - "execution_count": 10, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -302,24 +299,41 @@ }, { "cell_type": "code", - "execution_count": 11, - "metadata": { - "collapsed": false - }, + "execution_count": 5, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "65503" + "(356027, 163)" ] }, - "execution_count": 11, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "food.shape #will give you both (observations/rows, columns)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "356027" + ] + }, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "food.shape #will give you both (observations/rows, columns)\n", "food.shape[0] #will give you only the observations/rows number" ] }, @@ -332,32 +346,30 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": false - }, + "execution_count": 7, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "(65503, 159)\n", - "159\n", + "(356027, 163)\n", + "163\n", "\n", - "RangeIndex: 65503 entries, 0 to 65502\n", - "Columns: 159 entries, code to nutrition_score_uk_100g\n", - "dtypes: float64(103), object(56)\n", - "memory usage: 79.5+ MB\n" + "RangeIndex: 356027 entries, 0 to 356026\n", + "Columns: 163 entries, code to water-hardness_100g\n", + "dtypes: float64(107), object(56)\n", + "memory usage: 442.8+ MB\n" ] } ], "source": [ - "print food.shape #will give you both (observations/rows, columns)\n", - "print food.shape[1] #will give you only the columns number\n", + "print(food.shape) #will give you both (observations/rows, columns)\n", + "print(food.shape[1]) #will give you only the columns number\n", "\n", "#OR\n", "\n", - "food.info() #Columns: 159 entries" + "food.info() #Columns: 163 entries" ] }, { @@ -369,10 +381,8 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": false - }, + "execution_count": 8, + "metadata": {}, "outputs": [ { "data": { @@ -381,14 +391,15 @@ " u'last_modified_t', u'last_modified_datetime', u'product_name',\n", " u'generic_name', u'quantity',\n", " ...\n", - " u'caffeine_100g', u'taurine_100g', u'ph_100g',\n", - " u'fruits_vegetables_nuts_100g', u'collagen_meat_protein_ratio_100g',\n", - " u'cocoa_100g', u'chlorophyl_100g', u'carbon_footprint_100g',\n", - " u'nutrition_score_fr_100g', u'nutrition_score_uk_100g'],\n", - " dtype='object', length=159)" + " u'fruits-vegetables-nuts_100g', u'fruits-vegetables-nuts-estimate_100g',\n", + " u'collagen-meat-protein-ratio_100g', u'cocoa_100g', u'chlorophyl_100g',\n", + " u'carbon-footprint_100g', u'nutrition-score-fr_100g',\n", + " u'nutrition-score-uk_100g', u'glycemic-index_100g',\n", + " u'water-hardness_100g'],\n", + " dtype='object', length=163)" ] }, - "execution_count": 13, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -406,18 +417,16 @@ }, { "cell_type": "code", - "execution_count": 14, - "metadata": { - "collapsed": false - }, + "execution_count": 9, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'glucose_100g'" + "'-glucose_100g'" ] }, - "execution_count": 14, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -435,10 +444,8 @@ }, { "cell_type": "code", - "execution_count": 15, - "metadata": { - "collapsed": false - }, + "execution_count": 10, + "metadata": {}, "outputs": [ { "data": { @@ -446,13 +453,13 @@ "dtype('float64')" ] }, - "execution_count": 15, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "food.dtypes['glucose_100g']" + "food.dtypes['-glucose_100g']" ] }, { @@ -464,18 +471,16 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": false - }, + "execution_count": 11, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "RangeIndex(start=0, stop=65503, step=1)" + "RangeIndex(start=0, stop=356027, step=1)" ] }, - "execution_count": 16, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -493,18 +498,16 @@ }, { "cell_type": "code", - "execution_count": 18, - "metadata": { - "collapsed": false - }, + "execution_count": 13, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'Flat Leaf Parsley'" + "'Lotus Organic Brown Jasmine Rice'" ] }, - "execution_count": 18, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -515,24 +518,38 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/01_Getting_&_Knowing_Your_Data/World Food Facts/Solutions.ipynb b/01_Getting_&_Knowing_Your_Data/World Food Facts/Solutions.ipynb index 6b0c98644..e51bf13c4 100644 --- a/01_Getting_&_Knowing_Your_Data/World Food Facts/Solutions.ipynb +++ b/01_Getting_&_Knowing_Your_Data/World Food Facts/Solutions.ipynb @@ -11,7 +11,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 1. Go to https://www.kaggle.com/openfoodfacts/world-food-facts" + "### Step 1. Go to https://www.kaggle.com/openfoodfacts/world-food-facts/data" ] }, { @@ -23,7 +23,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": { "collapsed": true }, @@ -34,7 +34,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 3. Use the csv file and assign it to a dataframe called food" + "### Step 3. Use the tsv file and assign it to a dataframe called food" ] }, { @@ -64,16 +64,28 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, "metadata": { - "collapsed": false, - "scrolled": true + "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -89,31 +101,31 @@ " \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", @@ -128,38 +140,38 @@ " \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", @@ -169,21 +181,21 @@ " \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", @@ -193,21 +205,21 @@ " \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", @@ -224,63 +236,63 @@ " \n", " \n", "
generic_namequantity...caffeine_100gtaurine_100gph_100gfruits_vegetables_nuts_100gcollagen_meat_protein_ratio_100gfruits-vegetables-nuts_100gfruits-vegetables-nuts-estimate_100gcollagen-meat-protein-ratio_100gcocoa_100gchlorophyl_100gcarbon_footprint_100gnutrition_score_fr_100gnutrition_score_uk_100gcarbon-footprint_100gnutrition-score-fr_100gnutrition-score-uk_100gglycemic-index_100gwater-hardness_100g
00000000000000128663087http://world-en.openfoodfacts.org/product/0000...date-limite-app14470043642015-11-08T17:39:24Z14470043642015-11-08T17:39:24ZPoêlée à la sarladaiseNaNNaNopenfoodfacts-contributors14741038662016-09-17T09:17:46Z14741038932016-09-17T09:18:13ZFarine de blé noirNaN1kg...NaNNaN
100000000246004530http://world-en.openfoodfacts.org/product/0000...date-limite-app14345307042015-06-17T08:45:04Z14345359142015-06-17T10:11:54ZFilet de bœufNaN2.46 kg...usda-ndb-import14890699572017-03-09T14:32:37Z14890699572017-03-09T14:32:37ZBanana Chips Sweetened (Whole)NaNNaN...NaNNaNNaNNaNNaNNaN14.014.0NaNNaN
200000000362524559http://world-en.openfoodfacts.org/product/0000...tacinte14222217012015-01-25T21:35:01Z14222218552015-01-25T21:37:35ZLion Peanut x2usda-ndb-import14890699572017-03-09T14:32:37Z14890699572017-03-09T14:32:37ZPeanutsNaNNaN...NaNNaNNaNNaNNaN0.00.0NaNNaN
3000000003925916087http://world-en.openfoodfacts.org/product/0000...tacinte14222217732015-01-25T21:36:13Z14222219262015-01-25T21:38:46ZTwix x2usda-ndb-import14890557312017-03-09T10:35:31Z14890557312017-03-09T10:35:31ZOrganic Salted Nut MixNaNNaN...NaNNaNNaNNaNNaN12.012.0NaNNaN
4000000003952916094http://world-en.openfoodfacts.org/product/0000...teolemon14201470512015-01-01T21:17:31Z14391417402015-08-09T17:35:40ZPack de 2 Twixusda-ndb-import14890556532017-03-09T10:34:13Z14890556532017-03-09T10:34:13ZOrganic PolentaNaNNaN...
\n", - "

5 rows × 159 columns

\n", + "

5 rows × 163 columns

\n", "
" ], "text/plain": [ - " code url \\\n", - "0 000000000000012866 http://world-en.openfoodfacts.org/product/0000... \n", - "1 0000000024600 http://world-en.openfoodfacts.org/product/0000... \n", - "2 0000000036252 http://world-en.openfoodfacts.org/product/0000... \n", - "3 0000000039259 http://world-en.openfoodfacts.org/product/0000... \n", - "4 0000000039529 http://world-en.openfoodfacts.org/product/0000... \n", + " code url \\\n", + "0 3087 http://world-en.openfoodfacts.org/product/0000... \n", + "1 4530 http://world-en.openfoodfacts.org/product/0000... \n", + "2 4559 http://world-en.openfoodfacts.org/product/0000... \n", + "3 16087 http://world-en.openfoodfacts.org/product/0000... \n", + "4 16094 http://world-en.openfoodfacts.org/product/0000... \n", "\n", - " creator created_t created_datetime last_modified_t \\\n", - "0 date-limite-app 1447004364 2015-11-08T17:39:24Z 1447004364 \n", - "1 date-limite-app 1434530704 2015-06-17T08:45:04Z 1434535914 \n", - "2 tacinte 1422221701 2015-01-25T21:35:01Z 1422221855 \n", - "3 tacinte 1422221773 2015-01-25T21:36:13Z 1422221926 \n", - "4 teolemon 1420147051 2015-01-01T21:17:31Z 1439141740 \n", + " creator created_t created_datetime \\\n", + "0 openfoodfacts-contributors 1474103866 2016-09-17T09:17:46Z \n", + "1 usda-ndb-import 1489069957 2017-03-09T14:32:37Z \n", + "2 usda-ndb-import 1489069957 2017-03-09T14:32:37Z \n", + "3 usda-ndb-import 1489055731 2017-03-09T10:35:31Z \n", + "4 usda-ndb-import 1489055653 2017-03-09T10:34:13Z \n", "\n", - " last_modified_datetime product_name generic_name quantity \\\n", - "0 2015-11-08T17:39:24Z Poêlée à la sarladaise NaN NaN \n", - "1 2015-06-17T10:11:54Z Filet de bœuf NaN 2.46 kg \n", - "2 2015-01-25T21:37:35Z Lion Peanut x2 NaN NaN \n", - "3 2015-01-25T21:38:46Z Twix x2 NaN NaN \n", - "4 2015-08-09T17:35:40Z Pack de 2 Twix NaN NaN \n", + " last_modified_t last_modified_datetime product_name \\\n", + "0 1474103893 2016-09-17T09:18:13Z Farine de blé noir \n", + "1 1489069957 2017-03-09T14:32:37Z Banana Chips Sweetened (Whole) \n", + "2 1489069957 2017-03-09T14:32:37Z Peanuts \n", + "3 1489055731 2017-03-09T10:35:31Z Organic Salted Nut Mix \n", + "4 1489055653 2017-03-09T10:34:13Z Organic Polenta \n", "\n", - " ... caffeine_100g taurine_100g ph_100g \\\n", - "0 ... NaN NaN NaN \n", - "1 ... NaN NaN NaN \n", - "2 ... NaN NaN NaN \n", - "3 ... NaN NaN NaN \n", - "4 ... NaN NaN NaN \n", + " generic_name quantity ... fruits-vegetables-nuts_100g \\\n", + "0 NaN 1kg ... NaN \n", + "1 NaN NaN ... NaN \n", + "2 NaN NaN ... NaN \n", + "3 NaN NaN ... NaN \n", + "4 NaN NaN ... NaN \n", "\n", - " fruits_vegetables_nuts_100g collagen_meat_protein_ratio_100g cocoa_100g \\\n", - "0 NaN NaN NaN \n", - "1 NaN NaN NaN \n", - "2 NaN NaN NaN \n", - "3 NaN NaN NaN \n", - "4 NaN NaN NaN \n", + " fruits-vegetables-nuts-estimate_100g collagen-meat-protein-ratio_100g \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", "\n", - " chlorophyl_100g carbon_footprint_100g nutrition_score_fr_100g \\\n", - "0 NaN NaN NaN \n", - "1 NaN NaN NaN \n", - "2 NaN NaN NaN \n", - "3 NaN NaN NaN \n", - "4 NaN NaN NaN \n", + " cocoa_100g chlorophyl_100g carbon-footprint_100g nutrition-score-fr_100g \\\n", + "0 NaN NaN NaN NaN \n", + "1 NaN NaN NaN 14.0 \n", + "2 NaN NaN NaN 0.0 \n", + "3 NaN NaN NaN 12.0 \n", + "4 NaN NaN NaN NaN \n", "\n", - " nutrition_score_uk_100g \n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", + " nutrition-score-uk_100g glycemic-index_100g water-hardness_100g \n", + "0 NaN NaN NaN \n", + "1 14.0 NaN NaN \n", + "2 0.0 NaN NaN \n", + "3 12.0 NaN NaN \n", + "4 NaN NaN NaN \n", "\n", - "[5 rows x 159 columns]" + "[5 rows x 163 columns]" ] }, - "execution_count": 10, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -296,7 +308,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -304,10 +316,30 @@ { "data": { "text/plain": [ - "65503" + "(356027, 163)" ] }, - "execution_count": 11, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "356027" + ] + }, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -323,7 +355,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -332,13 +364,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "(65503, 159)\n", - "159\n", + "(356027, 163)\n", + "163\n", "\n", - "RangeIndex: 65503 entries, 0 to 65502\n", - "Columns: 159 entries, code to nutrition_score_uk_100g\n", - "dtypes: float64(103), object(56)\n", - "memory usage: 79.5+ MB\n" + "RangeIndex: 356027 entries, 0 to 356026\n", + "Columns: 163 entries, code to water-hardness_100g\n", + "dtypes: float64(107), object(56)\n", + "memory usage: 442.8+ MB\n" ] } ], @@ -353,7 +385,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -361,18 +393,19 @@ { "data": { "text/plain": [ - "Index([u'code', u'url', u'creator', u'created_t', u'created_datetime',\n", - " u'last_modified_t', u'last_modified_datetime', u'product_name',\n", - " u'generic_name', u'quantity',\n", + "Index(['code', 'url', 'creator', 'created_t', 'created_datetime',\n", + " 'last_modified_t', 'last_modified_datetime', 'product_name',\n", + " 'generic_name', 'quantity',\n", " ...\n", - " u'caffeine_100g', u'taurine_100g', u'ph_100g',\n", - " u'fruits_vegetables_nuts_100g', u'collagen_meat_protein_ratio_100g',\n", - " u'cocoa_100g', u'chlorophyl_100g', u'carbon_footprint_100g',\n", - " u'nutrition_score_fr_100g', u'nutrition_score_uk_100g'],\n", - " dtype='object', length=159)" + " 'fruits-vegetables-nuts_100g', 'fruits-vegetables-nuts-estimate_100g',\n", + " 'collagen-meat-protein-ratio_100g', 'cocoa_100g', 'chlorophyl_100g',\n", + " 'carbon-footprint_100g', 'nutrition-score-fr_100g',\n", + " 'nutrition-score-uk_100g', 'glycemic-index_100g',\n", + " 'water-hardness_100g'],\n", + " dtype='object', length=163)" ] }, - "execution_count": 13, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -388,7 +421,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -396,10 +429,10 @@ { "data": { "text/plain": [ - "'glucose_100g'" + "'-glucose_100g'" ] }, - "execution_count": 14, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -450,7 +483,7 @@ { "data": { "text/plain": [ - "RangeIndex(start=0, stop=65503, step=1)" + "RangeIndex(start=0, stop=356027, step=1)" ] }, "execution_count": 16, @@ -469,7 +502,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -477,10 +510,10 @@ { "data": { "text/plain": [ - "'Flat Leaf Parsley'" + "'Lotus Organic Brown Jasmine Rice'" ] }, - "execution_count": 18, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -489,24 +522,25 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [default]", "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.11" + "pygments_lexer": "ipython3", + "version": "3.6.4" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/02_Filtering_&_Sorting/.DS_Store b/02_Filtering_&_Sorting/.DS_Store new file mode 100644 index 000000000..b086e3fb3 Binary files /dev/null and b/02_Filtering_&_Sorting/.DS_Store differ diff --git a/02_Filtering_&_Sorting/Chipotle/Exercises.ipynb b/02_Filtering_&_Sorting/Chipotle/Exercises.ipynb index b8aa55a99..dfb68245d 100644 --- a/02_Filtering_&_Sorting/Chipotle/Exercises.ipynb +++ b/02_Filtering_&_Sorting/Chipotle/Exercises.ipynb @@ -118,7 +118,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 8. How many times were a Veggie Salad Bowl ordered?" + "### Step 8. How many times was a Veggie Salad Bowl ordered?" ] }, { @@ -134,7 +134,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. How many times people orderd more than one Canned Soda?" + "### Step 9. How many times did someone order more than one Canned Soda?" ] }, { diff --git a/02_Filtering_&_Sorting/Chipotle/Exercises_with_solutions.ipynb b/02_Filtering_&_Sorting/Chipotle/Exercises_with_solutions.ipynb index e487dad97..773dd80df 100644 --- a/02_Filtering_&_Sorting/Chipotle/Exercises_with_solutions.ipynb +++ b/02_Filtering_&_Sorting/Chipotle/Exercises_with_solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Ex1 - Filtering and Sorting Data" + "# Ex1 - Filtering and Sorting Data\n", + "\n", + "Check out [Chipotle Exercises Video Tutorial](https://youtu.be/ZZPiWZpdekA) to watch a data scientist go through the exercises" ] }, { @@ -19,10 +21,8 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": false - }, + "execution_count": 2, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd" @@ -44,14 +44,12 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, + "execution_count": 28, + "metadata": {}, "outputs": [], "source": [ "url = 'https://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv'\n", - " \n", + "\n", "chipo = pd.read_csv(url, sep = '\\t')" ] }, @@ -64,50 +62,1373 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, + "execution_count": 21, + "metadata": {}, "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", + " \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", + " \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", + " \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", + " \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", + " \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
422Chicken Bowl[Tomatillo-Red Chili Salsa (Hot), [Black Beans...16.98
531Chicken Bowl[Fresh Tomato Salsa (Mild), [Rice, Cheese, Sou...10.98
741Steak Burrito[Tomatillo Red Chili Salsa, [Fajita Vegetables...11.75
1371Chicken Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
23121Chicken Burrito[[Tomatillo-Green Chili Salsa (Medium), Tomati...10.98
39191Barbacoa Bowl[Roasted Chili Corn Salsa, [Fajita Vegetables,...11.75
42201Chicken Bowl[Roasted Chili Corn Salsa, [Rice, Black Beans,...11.25
43201Steak Burrito[Fresh Tomato Salsa, [Rice, Pinto Beans, Chees...11.75
45211Chicken Burrito[Tomatillo-Red Chili Salsa (Hot), [Black Beans...10.98
52241Chicken Burrito[Roasted Chili Corn Salsa (Medium), [Black Bea...10.98
57261Veggie Burrito[Tomatillo Red Chili Salsa, [Fajita Vegetables...11.25
58271Barbacoa Bowl[Roasted Chili Corn Salsa, [Fajita Vegetables,...11.75
62281Veggie Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
68301Chicken Burrito[Tomatillo-Red Chili Salsa (Hot), [Black Beans...10.98
79351Chicken Soft Tacos[Roasted Chili Corn Salsa, [Rice, Cheese, Lett...11.25
90401Steak Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Chees...11.75
91401Steak Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Chees...11.75
93411Carnitas Burrito[Roasted Chili Corn Salsa, [Sour Cream, Guacam...11.75
97431Carnitas Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.75
123541Chicken Bowl[Fresh Tomato Salsa, [Guacamole, Cheese, Sour ...11.25
130571Barbacoa Burrito[Roasted Chili Corn Salsa, [Rice, Pinto Beans,...11.75
134591Chicken Burrito[Roasted Chili Corn Salsa (Medium), [Rice, Bla...10.98
135602Chicken Salad Bowl[Tomatillo Green Chili Salsa, [Sour Cream, Che...22.50
136611Barbacoa Bowl[Tomatillo Red Chili Salsa, [Fajita Vegetables...11.75
138621Chicken Bowl[Fresh Tomato Salsa, [Rice, Fajita Vegetables,...11.25
140631Chicken Bowl[Tomatillo Green Chili Salsa, [Rice, Sour Crea...11.25
142641Chicken Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
143641Veggie Bowl[Tomatillo Red Chili Salsa, [Fajita Vegetables...11.25
144651Barbacoa Burrito[Tomatillo Red Chili Salsa, [Rice, Sour Cream,...11.75
147661Steak Burrito[Tomatillo-Green Chili Salsa (Medium), [Rice, ...11.48
..................
450417911Carnitas Bowl[Fresh Tomato Salsa, [Rice, Sour Cream, Guacam...11.75
450617921Chicken Bowl[Fresh Tomato Salsa, [Rice, Cheese, Sour Cream...11.25
451017931Barbacoa Bowl[Guacamole]11.49
451817961Steak Bowl[Tomatillo Red Chili Salsa, [Rice, Black Beans...11.75
452117981Chicken Burrito[Roasted Chili Corn Salsa, [Guacamole, Lettuce...11.25
452317981Steak Crispy Tacos[Tomatillo Green Chili Salsa, [Cheese, Sour Cr...11.75
453318021Chicken Burrito[Tomatillo Red Chili Salsa, [Fajita Vegetables...11.25
454018051Chicken Bowl[Tomatillo Green Chili Salsa, [Fajita Vegetabl...11.25
455318101Chicken Bowl[Roasted Chili Corn Salsa, [Black Beans, Sour ...11.25
455418101Steak Crispy Tacos[Roasted Chili Corn Salsa, [Fajita Vegetables,...11.75
455618111Chicken Burrito[Tomatillo Green Chili Salsa, [Fajita Vegetabl...11.25
455918121Chicken Burrito[Tomatillo Red Chili Salsa, [Rice, Cheese, Gua...11.25
456118132Chicken Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Pinto...17.50
456418151Chicken Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
457618201Chicken Bowl[Fresh Tomato Salsa, [Rice, Cheese, Sour Cream...11.25
458018221Chicken Salad Bowl[Fresh Tomato Salsa, [Black Beans, Cheese, Gua...11.25
458618241Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Chees...11.25
458718241Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Chees...11.25
458918251Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Sour ...11.25
459018251Chicken Bowl[Roasted Chili Corn Salsa, [Rice, Black Beans,...11.25
459218251Barbacoa Burrito[Tomatillo Red Chili Salsa, [Rice, Fajita Vege...11.75
459318251Carnitas Bowl[Roasted Chili Corn Salsa, [Rice, Sour Cream, ...11.75
459418251Barbacoa Bowl[Roasted Chili Corn Salsa, [Pinto Beans, Sour ...11.75
460718291Steak Burrito[Tomatillo Green Chili Salsa, [Rice, Cheese, S...11.75
460818291Veggie Burrito[Tomatillo Red Chili Salsa, [Fajita Vegetables...11.25
461018301Steak Burrito[Fresh Tomato Salsa, [Rice, Sour Cream, Cheese...11.75
461118301Veggie Burrito[Tomatillo Green Chili Salsa, [Rice, Fajita Ve...11.25
461718331Steak Burrito[Fresh Tomato Salsa, [Rice, Black Beans, Sour ...11.75
461818331Steak Burrito[Fresh Tomato Salsa, [Rice, Sour Cream, Cheese...11.75
461918341Chicken Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Pinto...11.25
\n", + "

1130 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " order_id quantity item_name \\\n", + "4 2 2 Chicken Bowl \n", + "5 3 1 Chicken Bowl \n", + "7 4 1 Steak Burrito \n", + "13 7 1 Chicken Bowl \n", + "23 12 1 Chicken Burrito \n", + "39 19 1 Barbacoa Bowl \n", + "42 20 1 Chicken Bowl \n", + "43 20 1 Steak Burrito \n", + "45 21 1 Chicken Burrito \n", + "52 24 1 Chicken Burrito \n", + "57 26 1 Veggie Burrito \n", + "58 27 1 Barbacoa Bowl \n", + "62 28 1 Veggie Bowl \n", + "68 30 1 Chicken Burrito \n", + "79 35 1 Chicken Soft Tacos \n", + "90 40 1 Steak Bowl \n", + "91 40 1 Steak Bowl \n", + "93 41 1 Carnitas Burrito \n", + "97 43 1 Carnitas Bowl \n", + "123 54 1 Chicken Bowl \n", + "130 57 1 Barbacoa Burrito \n", + "134 59 1 Chicken Burrito \n", + "135 60 2 Chicken Salad Bowl \n", + "136 61 1 Barbacoa Bowl \n", + "138 62 1 Chicken Bowl \n", + "140 63 1 Chicken Bowl \n", + "142 64 1 Chicken Bowl \n", + "143 64 1 Veggie Bowl \n", + "144 65 1 Barbacoa Burrito \n", + "147 66 1 Steak Burrito \n", + "... ... ... ... \n", + "4504 1791 1 Carnitas Bowl \n", + "4506 1792 1 Chicken Bowl \n", + "4510 1793 1 Barbacoa Bowl \n", + "4518 1796 1 Steak Bowl \n", + "4521 1798 1 Chicken Burrito \n", + "4523 1798 1 Steak Crispy Tacos \n", + "4533 1802 1 Chicken Burrito \n", + "4540 1805 1 Chicken Bowl \n", + "4553 1810 1 Chicken Bowl \n", + "4554 1810 1 Steak Crispy Tacos \n", + "4556 1811 1 Chicken Burrito \n", + "4559 1812 1 Chicken Burrito \n", + "4561 1813 2 Chicken Salad Bowl \n", + "4564 1815 1 Chicken Bowl \n", + "4576 1820 1 Chicken Bowl \n", + "4580 1822 1 Chicken Salad Bowl \n", + "4586 1824 1 Chicken Bowl \n", + "4587 1824 1 Chicken Bowl \n", + "4589 1825 1 Chicken Bowl \n", + "4590 1825 1 Chicken Bowl \n", + "4592 1825 1 Barbacoa Burrito \n", + "4593 1825 1 Carnitas Bowl \n", + "4594 1825 1 Barbacoa Bowl \n", + "4607 1829 1 Steak Burrito \n", + "4608 1829 1 Veggie Burrito \n", + "4610 1830 1 Steak Burrito \n", + "4611 1830 1 Veggie Burrito \n", + "4617 1833 1 Steak Burrito \n", + "4618 1833 1 Steak Burrito \n", + "4619 1834 1 Chicken Salad Bowl \n", + "\n", + " choice_description item_price \n", + "4 [Tomatillo-Red Chili Salsa (Hot), [Black Beans... 16.98 \n", + "5 [Fresh Tomato Salsa (Mild), [Rice, Cheese, Sou... 10.98 \n", + "7 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.75 \n", + "13 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "23 [[Tomatillo-Green Chili Salsa (Medium), Tomati... 10.98 \n", + "39 [Roasted Chili Corn Salsa, [Fajita Vegetables,... 11.75 \n", + "42 [Roasted Chili Corn Salsa, [Rice, Black Beans,... 11.25 \n", + "43 [Fresh Tomato Salsa, [Rice, Pinto Beans, Chees... 11.75 \n", + "45 [Tomatillo-Red Chili Salsa (Hot), [Black Beans... 10.98 \n", + "52 [Roasted Chili Corn Salsa (Medium), [Black Bea... 10.98 \n", + "57 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.25 \n", + "58 [Roasted Chili Corn Salsa, [Fajita Vegetables,... 11.75 \n", + "62 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "68 [Tomatillo-Red Chili Salsa (Hot), [Black Beans... 10.98 \n", + "79 [Roasted Chili Corn Salsa, [Rice, Cheese, Lett... 11.25 \n", + "90 [Fresh Tomato Salsa, [Rice, Black Beans, Chees... 11.75 \n", + "91 [Fresh Tomato Salsa, [Fajita Vegetables, Chees... 11.75 \n", + "93 [Roasted Chili Corn Salsa, [Sour Cream, Guacam... 11.75 \n", + "97 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.75 \n", + "123 [Fresh Tomato Salsa, [Guacamole, Cheese, Sour ... 11.25 \n", + "130 [Roasted Chili Corn Salsa, [Rice, Pinto Beans,... 11.75 \n", + "134 [Roasted Chili Corn Salsa (Medium), [Rice, Bla... 10.98 \n", + "135 [Tomatillo Green Chili Salsa, [Sour Cream, Che... 22.50 \n", + "136 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.75 \n", + "138 [Fresh Tomato Salsa, [Rice, Fajita Vegetables,... 11.25 \n", + "140 [Tomatillo Green Chili Salsa, [Rice, Sour Crea... 11.25 \n", + "142 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "143 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.25 \n", + "144 [Tomatillo Red Chili Salsa, [Rice, Sour Cream,... 11.75 \n", + "147 [Tomatillo-Green Chili Salsa (Medium), [Rice, ... 11.48 \n", + "... ... ... \n", + "4504 [Fresh Tomato Salsa, [Rice, Sour Cream, Guacam... 11.75 \n", + "4506 [Fresh Tomato Salsa, [Rice, Cheese, Sour Cream... 11.25 \n", + "4510 [Guacamole] 11.49 \n", + "4518 [Tomatillo Red Chili Salsa, [Rice, Black Beans... 11.75 \n", + "4521 [Roasted Chili Corn Salsa, [Guacamole, Lettuce... 11.25 \n", + "4523 [Tomatillo Green Chili Salsa, [Cheese, Sour Cr... 11.75 \n", + "4533 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.25 \n", + "4540 [Tomatillo Green Chili Salsa, [Fajita Vegetabl... 11.25 \n", + "4553 [Roasted Chili Corn Salsa, [Black Beans, Sour ... 11.25 \n", + "4554 [Roasted Chili Corn Salsa, [Fajita Vegetables,... 11.75 \n", + "4556 [Tomatillo Green Chili Salsa, [Fajita Vegetabl... 11.25 \n", + "4559 [Tomatillo Red Chili Salsa, [Rice, Cheese, Gua... 11.25 \n", + "4561 [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... 17.50 \n", + "4564 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "4576 [Fresh Tomato Salsa, [Rice, Cheese, Sour Cream... 11.25 \n", + "4580 [Fresh Tomato Salsa, [Black Beans, Cheese, Gua... 11.25 \n", + "4586 [Fresh Tomato Salsa, [Rice, Black Beans, Chees... 11.25 \n", + "4587 [Fresh Tomato Salsa, [Rice, Black Beans, Chees... 11.25 \n", + "4589 [Fresh Tomato Salsa, [Rice, Black Beans, Sour ... 11.25 \n", + "4590 [Roasted Chili Corn Salsa, [Rice, Black Beans,... 11.25 \n", + "4592 [Tomatillo Red Chili Salsa, [Rice, Fajita Vege... 11.75 \n", + "4593 [Roasted Chili Corn Salsa, [Rice, Sour Cream, ... 11.75 \n", + "4594 [Roasted Chili Corn Salsa, [Pinto Beans, Sour ... 11.75 \n", + "4607 [Tomatillo Green Chili Salsa, [Rice, Cheese, S... 11.75 \n", + "4608 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.25 \n", + "4610 [Fresh Tomato Salsa, [Rice, Sour Cream, Cheese... 11.75 \n", + "4611 [Tomatillo Green Chili Salsa, [Rice, Fajita Ve... 11.25 \n", + "4617 [Fresh Tomato Salsa, [Rice, Black Beans, Sour ... 11.75 \n", + "4618 [Fresh Tomato Salsa, [Rice, Sour Cream, Cheese... 11.75 \n", + "4619 [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... 11.25 \n", + "\n", + "[1130 rows x 5 columns]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# clean the item_price column and transform it in a float\n", + "prices = [float(value[1 : -1]) for value in chipo.item_price]\n", + "\n", + "# reassign the column with the cleaned prices\n", + "chipo.item_price = prices\n", + "\n", + "# delete the duplicates in item_name and quantity\n", + "chipo_filtered = chipo.drop_duplicates(['item_name','quantity','choice_description'])\n", + "\n", + "# chipo_filtered\n", + "\n", + "# select only the products with quantity equals to 1\n", + "chipo_one_prod = chipo_filtered[chipo_filtered.quantity == 1]\n", + "chipo_one_prod\n", + "\n", + "# chipo_one_prod[chipo_one_prod['item_price']>10].item_name.nunique()\n", + "# chipo_one_prod[chipo_one_prod['item_price']>10]\n", + "\n", + "\n", + "\n", + "chipo.query('price_per_item > 10').item_name.nunique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 5. What is the price of each item? \n", + "###### print a data frame with only two columns item_name and item_price" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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
531Chicken Bowl[Fresh Tomato Salsa (Mild), [Rice, Cheese, Sou...10.98
1371Chicken Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
19101Chicken Bowl[Tomatillo Red Chili Salsa, [Fajita Vegetables...8.75
26131Chicken Bowl[Roasted Chili Corn Salsa (Medium), [Pinto Bea...8.49
42201Chicken Bowl[Roasted Chili Corn Salsa, [Rice, Black Beans,...11.25
76341Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Pinto...8.75
78341Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Chees...8.75
99441Chicken Bowl[Tomatillo Red Chili Salsa, [Rice, Fajita Vege...8.75
110491Chicken Bowl[Tomatillo Red Chili Salsa, [Rice, Black Beans...8.75
123541Chicken Bowl[Fresh Tomato Salsa, [Guacamole, Cheese, Sour ...11.25
138621Chicken Bowl[Fresh Tomato Salsa, [Rice, Fajita Vegetables,...11.25
140631Chicken Bowl[Tomatillo Green Chili Salsa, [Rice, Sour Crea...11.25
142641Chicken Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
160731Chicken Bowl[Fresh Tomato Salsa (Mild), [Black Beans, Rice...8.49
176791Chicken Bowl[Roasted Chili Corn Salsa (Medium), [Black Bea...10.98
182821Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Sour ...8.75
193861Chicken Bowl[Fresh Tomato Salsa, [Rice, Cheese, Sour Cream]]8.75
199891Chicken Bowl[[Roasted Chili Corn Salsa (Medium), Tomatillo...10.98
206921Chicken Bowl[Fresh Tomato Salsa, [Rice, Cheese, Lettuce]]8.75
209931Chicken Bowl[Roasted Chili Corn Salsa, [Fajita Vegetables,...11.25
211931Chicken Bowl[Roasted Chili Corn Salsa, [Fajita Vegetables,...11.25
218961Chicken Bowl[Tomatillo Green Chili Salsa, [Rice, Black Bea...8.75
220971Chicken Bowl[Roasted Chili Corn Salsa, [Rice, Black Beans,...8.75
224981Chicken Bowl[Tomatillo Green Chili Salsa, [Rice, Pinto Bea...8.75
2311021Chicken Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...8.75
2521101Chicken Bowl[Tomatillo Red Chili Salsa, [Rice, Cheese, Let...8.75
2571111Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Cheese]]8.75
2841241Chicken Bowl[Fresh Tomato Salsa, [Rice, Cheese, Sour Cream]]8.75
2901261Chicken Bowl[Roasted Chili Corn Salsa, [Fajita Vegetables,...11.25
2911271Chicken Bowl[Tomatillo Green Chili Salsa, [Rice, Sour Crea...11.25
..................
444317711Chicken Bowl[Tomatillo Green Chili Salsa, [Rice, Pinto Bea...8.75
444417711Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Sour ...8.75
446517791Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Cheese]]8.75
448117861Chicken Bowl[Fresh Tomato Salsa, Rice]8.75
448317861Chicken Bowl[Fresh Tomato Salsa, [Rice, Pinto Beans, Chees...11.25
448417861Chicken Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
448617861Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Chees...11.25
448817861Chicken Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...8.75
449517881Chicken Bowl[Fresh Tomato Salsa, [Rice, Pinto Beans, Sour ...11.25
449817891Chicken Bowl[Tomatillo Green Chili Salsa, [Fajita Vegetabl...11.25
450617921Chicken Bowl[Fresh Tomato Salsa, [Rice, Cheese, Sour Cream...11.25
451117941Chicken Bowl[Roasted Chili Corn Salsa, [Rice, Fajita Veget...8.75
453218021Chicken Bowl[Roasted Chili Corn Salsa, [Rice, Black Beans,...8.75
453718041Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Chees...8.75
454018051Chicken Bowl[Tomatillo Green Chili Salsa, [Fajita Vegetabl...11.25
455318101Chicken Bowl[Roasted Chili Corn Salsa, [Black Beans, Sour ...11.25
455518111Chicken Bowl[Roasted Chili Corn Salsa, [Fajita Vegetables,...8.75
456418151Chicken Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
457418191Chicken Bowl[Roasted Chili Corn Salsa, [Rice, Cheese, Lett...8.75
457618201Chicken Bowl[Fresh Tomato Salsa, [Rice, Cheese, Sour Cream...11.25
458118221Chicken Bowl[Tomatillo Red Chili Salsa, [Rice, Black Beans...8.75
458318231Chicken Bowl[Tomatillo Green Chili Salsa, [Rice, Black Bea...8.75
458618241Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Chees...11.25
458718241Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Chees...11.25
458918251Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Sour ...11.25
459018251Chicken Bowl[Roasted Chili Corn Salsa, [Rice, Black Beans,...11.25
459118251Chicken Bowl[Tomatillo Red Chili Salsa, [Rice, Black Beans...8.75
459518261Chicken Bowl[Tomatillo Green Chili Salsa, [Rice, Black Bea...8.75
459918271Chicken Bowl[Roasted Chili Corn Salsa, [Cheese, Lettuce]]8.75
460418281Chicken Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Chees...8.75
\n", + "

693 rows × 5 columns

\n", + "
" + ], "text/plain": [ - "1130" + " order_id quantity item_name \\\n", + "5 3 1 Chicken Bowl \n", + "13 7 1 Chicken Bowl \n", + "19 10 1 Chicken Bowl \n", + "26 13 1 Chicken Bowl \n", + "42 20 1 Chicken Bowl \n", + "76 34 1 Chicken Bowl \n", + "78 34 1 Chicken Bowl \n", + "99 44 1 Chicken Bowl \n", + "110 49 1 Chicken Bowl \n", + "123 54 1 Chicken Bowl \n", + "138 62 1 Chicken Bowl \n", + "140 63 1 Chicken Bowl \n", + "142 64 1 Chicken Bowl \n", + "160 73 1 Chicken Bowl \n", + "176 79 1 Chicken Bowl \n", + "182 82 1 Chicken Bowl \n", + "193 86 1 Chicken Bowl \n", + "199 89 1 Chicken Bowl \n", + "206 92 1 Chicken Bowl \n", + "209 93 1 Chicken Bowl \n", + "211 93 1 Chicken Bowl \n", + "218 96 1 Chicken Bowl \n", + "220 97 1 Chicken Bowl \n", + "224 98 1 Chicken Bowl \n", + "231 102 1 Chicken Bowl \n", + "252 110 1 Chicken Bowl \n", + "257 111 1 Chicken Bowl \n", + "284 124 1 Chicken Bowl \n", + "290 126 1 Chicken Bowl \n", + "291 127 1 Chicken Bowl \n", + "... ... ... ... \n", + "4443 1771 1 Chicken Bowl \n", + "4444 1771 1 Chicken Bowl \n", + "4465 1779 1 Chicken Bowl \n", + "4481 1786 1 Chicken Bowl \n", + "4483 1786 1 Chicken Bowl \n", + "4484 1786 1 Chicken Bowl \n", + "4486 1786 1 Chicken Bowl \n", + "4488 1786 1 Chicken Bowl \n", + "4495 1788 1 Chicken Bowl \n", + "4498 1789 1 Chicken Bowl \n", + "4506 1792 1 Chicken Bowl \n", + "4511 1794 1 Chicken Bowl \n", + "4532 1802 1 Chicken Bowl \n", + "4537 1804 1 Chicken Bowl \n", + "4540 1805 1 Chicken Bowl \n", + "4553 1810 1 Chicken Bowl \n", + "4555 1811 1 Chicken Bowl \n", + "4564 1815 1 Chicken Bowl \n", + "4574 1819 1 Chicken Bowl \n", + "4576 1820 1 Chicken Bowl \n", + "4581 1822 1 Chicken Bowl \n", + "4583 1823 1 Chicken Bowl \n", + "4586 1824 1 Chicken Bowl \n", + "4587 1824 1 Chicken Bowl \n", + "4589 1825 1 Chicken Bowl \n", + "4590 1825 1 Chicken Bowl \n", + "4591 1825 1 Chicken Bowl \n", + "4595 1826 1 Chicken Bowl \n", + "4599 1827 1 Chicken Bowl \n", + "4604 1828 1 Chicken Bowl \n", + "\n", + " choice_description item_price \n", + "5 [Fresh Tomato Salsa (Mild), [Rice, Cheese, Sou... 10.98 \n", + "13 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "19 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 8.75 \n", + "26 [Roasted Chili Corn Salsa (Medium), [Pinto Bea... 8.49 \n", + "42 [Roasted Chili Corn Salsa, [Rice, Black Beans,... 11.25 \n", + "76 [Fresh Tomato Salsa, [Rice, Black Beans, Pinto... 8.75 \n", + "78 [Fresh Tomato Salsa, [Rice, Black Beans, Chees... 8.75 \n", + "99 [Tomatillo Red Chili Salsa, [Rice, Fajita Vege... 8.75 \n", + "110 [Tomatillo Red Chili Salsa, [Rice, Black Beans... 8.75 \n", + "123 [Fresh Tomato Salsa, [Guacamole, Cheese, Sour ... 11.25 \n", + "138 [Fresh Tomato Salsa, [Rice, Fajita Vegetables,... 11.25 \n", + "140 [Tomatillo Green Chili Salsa, [Rice, Sour Crea... 11.25 \n", + "142 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "160 [Fresh Tomato Salsa (Mild), [Black Beans, Rice... 8.49 \n", + "176 [Roasted Chili Corn Salsa (Medium), [Black Bea... 10.98 \n", + "182 [Fresh Tomato Salsa, [Rice, Black Beans, Sour ... 8.75 \n", + "193 [Fresh Tomato Salsa, [Rice, Cheese, Sour Cream]] 8.75 \n", + "199 [[Roasted Chili Corn Salsa (Medium), Tomatillo... 10.98 \n", + "206 [Fresh Tomato Salsa, [Rice, Cheese, Lettuce]] 8.75 \n", + "209 [Roasted Chili Corn Salsa, [Fajita Vegetables,... 11.25 \n", + "211 [Roasted Chili Corn Salsa, [Fajita Vegetables,... 11.25 \n", + "218 [Tomatillo Green Chili Salsa, [Rice, Black Bea... 8.75 \n", + "220 [Roasted Chili Corn Salsa, [Rice, Black Beans,... 8.75 \n", + "224 [Tomatillo Green Chili Salsa, [Rice, Pinto Bea... 8.75 \n", + "231 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 8.75 \n", + "252 [Tomatillo Red Chili Salsa, [Rice, Cheese, Let... 8.75 \n", + "257 [Fresh Tomato Salsa, [Rice, Black Beans, Cheese]] 8.75 \n", + "284 [Fresh Tomato Salsa, [Rice, Cheese, Sour Cream]] 8.75 \n", + "290 [Roasted Chili Corn Salsa, [Fajita Vegetables,... 11.25 \n", + "291 [Tomatillo Green Chili Salsa, [Rice, Sour Crea... 11.25 \n", + "... ... ... \n", + "4443 [Tomatillo Green Chili Salsa, [Rice, Pinto Bea... 8.75 \n", + "4444 [Fresh Tomato Salsa, [Rice, Black Beans, Sour ... 8.75 \n", + "4465 [Fresh Tomato Salsa, [Rice, Black Beans, Cheese]] 8.75 \n", + "4481 [Fresh Tomato Salsa, Rice] 8.75 \n", + "4483 [Fresh Tomato Salsa, [Rice, Pinto Beans, Chees... 11.25 \n", + "4484 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "4486 [Fresh Tomato Salsa, [Rice, Black Beans, Chees... 11.25 \n", + "4488 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 8.75 \n", + "4495 [Fresh Tomato Salsa, [Rice, Pinto Beans, Sour ... 11.25 \n", + "4498 [Tomatillo Green Chili Salsa, [Fajita Vegetabl... 11.25 \n", + "4506 [Fresh Tomato Salsa, [Rice, Cheese, Sour Cream... 11.25 \n", + "4511 [Roasted Chili Corn Salsa, [Rice, Fajita Veget... 8.75 \n", + "4532 [Roasted Chili Corn Salsa, [Rice, Black Beans,... 8.75 \n", + "4537 [Fresh Tomato Salsa, [Rice, Black Beans, Chees... 8.75 \n", + "4540 [Tomatillo Green Chili Salsa, [Fajita Vegetabl... 11.25 \n", + "4553 [Roasted Chili Corn Salsa, [Black Beans, Sour ... 11.25 \n", + "4555 [Roasted Chili Corn Salsa, [Fajita Vegetables,... 8.75 \n", + "4564 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "4574 [Roasted Chili Corn Salsa, [Rice, Cheese, Lett... 8.75 \n", + "4576 [Fresh Tomato Salsa, [Rice, Cheese, Sour Cream... 11.25 \n", + "4581 [Tomatillo Red Chili Salsa, [Rice, Black Beans... 8.75 \n", + "4583 [Tomatillo Green Chili Salsa, [Rice, Black Bea... 8.75 \n", + "4586 [Fresh Tomato Salsa, [Rice, Black Beans, Chees... 11.25 \n", + "4587 [Fresh Tomato Salsa, [Rice, Black Beans, Chees... 11.25 \n", + "4589 [Fresh Tomato Salsa, [Rice, Black Beans, Sour ... 11.25 \n", + "4590 [Roasted Chili Corn Salsa, [Rice, Black Beans,... 11.25 \n", + "4591 [Tomatillo Red Chili Salsa, [Rice, Black Beans... 8.75 \n", + "4595 [Tomatillo Green Chili Salsa, [Rice, Black Bea... 8.75 \n", + "4599 [Roasted Chili Corn Salsa, [Cheese, Lettuce]] 8.75 \n", + "4604 [Fresh Tomato Salsa, [Rice, Black Beans, Chees... 8.75 \n", + "\n", + "[693 rows x 5 columns]" ] }, - "execution_count": 4, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# clean the item_price column and transform it in a float\n", - "prices = [float(value[1 : -1]) for value in chipo.item_price]\n", + "# delete the duplicates in item_name and quantity\n", + "# chipo_filtered = chipo.drop_duplicates(['item_name','quantity'])\n", + "chipo[(chipo['item_name'] == 'Chicken Bowl') & (chipo['quantity'] == 1)]\n", "\n", - "# reassign the column with the cleaned prices\n", - "chipo.item_price = prices \n", + "# select only the products with quantity equals to 1\n", + "# chipo_one_prod = chipo_filtered[chipo_filtered.quantity == 1]\n", "\n", - "# make the comparison\n", - "chipo10 = chipo[chipo['item_price'] > 10.00]\n", - "chipo10.head()\n", + "# select only the item_name and item_price columns\n", + "# price_per_item = chipo_one_prod[['item_name', 'item_price']]\n", "\n", - "len(chipo10)" + "# sort the values from the most to less expensive\n", + "# price_per_item.sort_values(by = \"item_price\", ascending = False).head(20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 5. What is the price of each item? \n", - "###### print a data frame with only two columns item_name and item_price" + "### Step 6. Sort by the name of the item" ] }, { "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": false - }, + "execution_count": 25, + "metadata": {}, "outputs": [ { "data": { @@ -117,420 +1438,638 @@ " \n", " \n", " \n", + " order_id\n", + " quantity\n", " item_name\n", + " choice_description\n", " item_price\n", " \n", " \n", " \n", " \n", - " 606\n", - " Steak Salad Bowl\n", - " 11.89\n", + " 3389\n", + " 1360\n", + " 2\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 12.98\n", " \n", " \n", - " 1229\n", - " Barbacoa Salad Bowl\n", - " 11.89\n", + " 341\n", + " 148\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 1132\n", - " Carnitas Salad Bowl\n", - " 11.89\n", + " 1849\n", + " 749\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Coke]\n", + " 6.49\n", " \n", " \n", - " 7\n", - " Steak Burrito\n", - " 11.75\n", + " 1860\n", + " 754\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 168\n", - " Barbacoa Crispy Tacos\n", - " 11.75\n", + " 2713\n", + " 1076\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Coke]\n", + " 6.49\n", " \n", " \n", - " 39\n", - " Barbacoa Bowl\n", - " 11.75\n", + " 3422\n", + " 1373\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Coke]\n", + " 6.49\n", " \n", " \n", - " 738\n", - " Veggie Soft Tacos\n", - " 11.25\n", + " 553\n", + " 230\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 186\n", - " Veggie Salad Bowl\n", - " 11.25\n", + " 1916\n", + " 774\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 62\n", - " Veggie Bowl\n", - " 11.25\n", + " 1922\n", + " 776\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Coke]\n", + " 6.49\n", " \n", " \n", - " 57\n", - " Veggie Burrito\n", - " 11.25\n", + " 1937\n", + " 784\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 250\n", - " Chicken Salad\n", - " 10.98\n", + " 3836\n", + " 1537\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Coke]\n", + " 6.49\n", " \n", " \n", - " 5\n", - " Chicken Bowl\n", - " 10.98\n", + " 298\n", + " 129\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Sprite]\n", + " 6.49\n", " \n", " \n", - " 8\n", - " Steak Soft Tacos\n", - " 9.25\n", + " 1976\n", + " 798\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 554\n", - " Carnitas Crispy Tacos\n", - " 9.25\n", + " 1167\n", + " 481\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Coke]\n", + " 6.49\n", " \n", " \n", - " 237\n", - " Carnitas Soft Tacos\n", - " 9.25\n", + " 3875\n", + " 1554\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 56\n", - " Barbacoa Soft Tacos\n", - " 9.25\n", + " 1124\n", + " 465\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Coke]\n", + " 6.49\n", " \n", " \n", - " 92\n", - " Steak Crispy Tacos\n", - " 9.25\n", + " 3886\n", + " 1558\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 664\n", - " Steak Salad\n", - " 8.99\n", + " 2108\n", + " 849\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Coke]\n", + " 6.49\n", " \n", " \n", - " 54\n", - " Steak Bowl\n", - " 8.99\n", + " 3010\n", + " 1196\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 3750\n", - " Carnitas Salad\n", - " 8.99\n", + " 4535\n", + " 1803\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Lemonade]\n", + " 6.49\n", " \n", " \n", - " 21\n", - " Barbacoa Burrito\n", - " 8.99\n", + " 4169\n", + " 1664\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 27\n", - " Carnitas Burrito\n", - " 8.99\n", + " 4174\n", + " 1666\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Coke]\n", + " 6.49\n", " \n", " \n", - " 33\n", - " Carnitas Bowl\n", - " 8.99\n", + " 4527\n", + " 1800\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 11\n", - " Chicken Crispy Tacos\n", - " 8.75\n", + " 4522\n", + " 1798\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 12\n", - " Chicken Soft Tacos\n", - " 8.75\n", + " 3806\n", + " 1525\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Sprite]\n", + " 6.49\n", " \n", " \n", - " 44\n", - " Chicken Salad Bowl\n", - " 8.75\n", + " 2389\n", + " 949\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Coke]\n", + " 6.49\n", + " \n", + " \n", + " 3132\n", + " 1248\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", " \n", " \n", - " 1653\n", - " Veggie Crispy Tacos\n", + " 3141\n", + " 1253\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Lemonade]\n", + " 6.49\n", + " \n", + " \n", + " 639\n", + " 264\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Diet Coke]\n", + " 6.49\n", + " \n", + " \n", + " 1026\n", + " 422\n", + " 1\n", + " 6 Pack Soft Drink\n", + " [Sprite]\n", + " 6.49\n", + " \n", + " \n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " \n", + " \n", + " 2996\n", + " 1192\n", + " 1\n", + " Veggie Salad\n", + " [Roasted Chili Corn Salsa (Medium), [Black Bea...\n", " 8.49\n", " \n", " \n", - " 16\n", - " Chicken Burrito\n", + " 3163\n", + " 1263\n", + " 1\n", + " Veggie Salad\n", + " [[Fresh Tomato Salsa (Mild), Roasted Chili Cor...\n", + " 8.49\n", + " \n", + " \n", + " 4084\n", + " 1635\n", + " 1\n", + " Veggie Salad\n", + " [[Fresh Tomato Salsa (Mild), Roasted Chili Cor...\n", " 8.49\n", " \n", " \n", " 1694\n", + " 686\n", + " 1\n", " Veggie Salad\n", + " [[Fresh Tomato Salsa (Mild), Roasted Chili Cor...\n", " 8.49\n", " \n", " \n", - " 1414\n", - " Salad\n", - " 7.40\n", + " 2756\n", + " 1094\n", + " 1\n", + " Veggie Salad\n", + " [[Tomatillo-Green Chili Salsa (Medium), Roaste...\n", + " 8.49\n", " \n", " \n", - " 510\n", - " Burrito\n", - " 7.40\n", + " 4201\n", + " 1677\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Fresh Tomato Salsa, [Fajita Vegetables, Black...\n", + " 11.25\n", " \n", " \n", - " 520\n", - " Crispy Tacos\n", - " 7.40\n", + " 1884\n", + " 760\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Fresh Tomato Salsa, [Fajita Vegetables, Rice,...\n", + " 11.25\n", " \n", " \n", - " 673\n", - " Bowl\n", - " 7.40\n", + " 455\n", + " 195\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Fresh Tomato Salsa, [Fajita Vegetables, Rice,...\n", + " 11.25\n", " \n", " \n", - " 298\n", - " 6 Pack Soft Drink\n", - " 6.49\n", + " 3223\n", + " 1289\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Tomatillo Red Chili Salsa, [Fajita Vegetables...\n", + " 11.25\n", + " \n", + " \n", + " 2223\n", + " 896\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Roasted Chili Corn Salsa, Fajita Vegetables]\n", + " 8.75\n", + " \n", + " \n", + " 2269\n", + " 913\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Fresh Tomato Salsa, [Fajita Vegetables, Rice,...\n", + " 8.75\n", " \n", " \n", - " 10\n", - " Chips and Guacamole\n", - " 4.45\n", + " 4541\n", + " 1805\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Tomatillo Green Chili Salsa, [Fajita Vegetabl...\n", + " 8.75\n", " \n", " \n", - " 1\n", - " Izze\n", - " 3.39\n", + " 3293\n", + " 1321\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Fresh Tomato Salsa, [Rice, Black Beans, Chees...\n", + " 8.75\n", " \n", " \n", - " 2\n", - " Nantucket Nectar\n", - " 3.39\n", + " 186\n", + " 83\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Fresh Tomato Salsa, [Fajita Vegetables, Rice,...\n", + " 11.25\n", " \n", " \n", - " 674\n", - " Chips and Mild Fresh Tomato Salsa\n", - " 3.00\n", + " 960\n", + " 394\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Fresh Tomato Salsa, [Fajita Vegetables, Lettu...\n", + " 8.75\n", " \n", " \n", - " 111\n", - " Chips and Tomatillo Red Chili Salsa\n", - " 2.95\n", + " 1316\n", + " 536\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Fresh Tomato Salsa, [Fajita Vegetables, Rice,...\n", + " 8.75\n", " \n", " \n", - " 233\n", - " Chips and Roasted Chili Corn Salsa\n", - " 2.95\n", + " 2156\n", + " 869\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Tomatillo Red Chili Salsa, [Fajita Vegetables...\n", + " 11.25\n", " \n", " \n", - " 38\n", - " Chips and Tomatillo Green Chili Salsa\n", - " 2.95\n", + " 4261\n", + " 1700\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Fresh Tomato Salsa, [Fajita Vegetables, Rice,...\n", + " 11.25\n", " \n", " \n", - " 3\n", - " Chips and Tomatillo-Green Chili Salsa\n", - " 2.39\n", + " 295\n", + " 128\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Fresh Tomato Salsa, [Fajita Vegetables, Lettu...\n", + " 11.25\n", " \n", " \n", - " 300\n", - " Chips and Tomatillo-Red Chili Salsa\n", - " 2.39\n", + " 4573\n", + " 1818\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Fresh Tomato Salsa, [Fajita Vegetables, Pinto...\n", + " 8.75\n", " \n", " \n", - " 191\n", - " Chips and Roasted Chili-Corn Salsa\n", - " 2.39\n", + " 2683\n", + " 1066\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Roasted Chili Corn Salsa, [Fajita Vegetables,...\n", + " 8.75\n", " \n", " \n", - " 0\n", - " Chips and Fresh Tomato Salsa\n", - " 2.39\n", + " 496\n", + " 207\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Fresh Tomato Salsa, [Rice, Lettuce, Guacamole...\n", + " 11.25\n", + " \n", + " \n", + " 4109\n", + " 1646\n", + " 1\n", + " Veggie Salad Bowl\n", + " [Tomatillo Red Chili Salsa, [Fajita Vegetables...\n", + " 11.25\n", + " \n", + " \n", + " 738\n", + " 304\n", + " 1\n", + " Veggie Soft Tacos\n", + " [Tomatillo Red Chili Salsa, [Fajita Vegetables...\n", + " 11.25\n", + " \n", + " \n", + " 3889\n", + " 1559\n", + " 2\n", + " Veggie Soft Tacos\n", + " [Fresh Tomato Salsa (Mild), [Black Beans, Rice...\n", + " 16.98\n", " \n", " \n", - " 40\n", - " Chips\n", - " 2.15\n", + " 2384\n", + " 948\n", + " 1\n", + " Veggie Soft Tacos\n", + " [Roasted Chili Corn Salsa, [Fajita Vegetables,...\n", + " 8.75\n", " \n", " \n", - " 6\n", - " Side of Chips\n", - " 1.69\n", + " 781\n", + " 322\n", + " 1\n", + " Veggie Soft Tacos\n", + " [Fresh Tomato Salsa, [Black Beans, Cheese, Sou...\n", + " 8.75\n", " \n", " \n", - " 263\n", - " Canned Soft Drink\n", - " 1.25\n", + " 2851\n", + " 1132\n", + " 1\n", + " Veggie Soft Tacos\n", + " [Roasted Chili Corn Salsa (Medium), [Black Bea...\n", + " 8.49\n", " \n", " \n", - " 28\n", - " Canned Soda\n", - " 1.09\n", + " 1699\n", + " 688\n", + " 1\n", + " Veggie Soft Tacos\n", + " [Fresh Tomato Salsa, [Fajita Vegetables, Rice,...\n", + " 11.25\n", " \n", " \n", - " 34\n", - " Bottled Water\n", - " 1.09\n", + " 1395\n", + " 567\n", + " 1\n", + " Veggie Soft Tacos\n", + " [Fresh Tomato Salsa (Mild), [Pinto Beans, Rice...\n", + " 8.49\n", " \n", " \n", "\n", + "

4622 rows × 5 columns

\n", "" ], "text/plain": [ - " item_name item_price\n", - "606 Steak Salad Bowl 11.89\n", - "1229 Barbacoa Salad Bowl 11.89\n", - "1132 Carnitas Salad Bowl 11.89\n", - "7 Steak Burrito 11.75\n", - "168 Barbacoa Crispy Tacos 11.75\n", - "39 Barbacoa Bowl 11.75\n", - "738 Veggie Soft Tacos 11.25\n", - "186 Veggie Salad Bowl 11.25\n", - "62 Veggie Bowl 11.25\n", - "57 Veggie Burrito 11.25\n", - "250 Chicken Salad 10.98\n", - "5 Chicken Bowl 10.98\n", - "8 Steak Soft Tacos 9.25\n", - "554 Carnitas Crispy Tacos 9.25\n", - "237 Carnitas Soft Tacos 9.25\n", - "56 Barbacoa Soft Tacos 9.25\n", - "92 Steak Crispy Tacos 9.25\n", - "664 Steak Salad 8.99\n", - "54 Steak Bowl 8.99\n", - "3750 Carnitas Salad 8.99\n", - "21 Barbacoa Burrito 8.99\n", - "27 Carnitas Burrito 8.99\n", - "33 Carnitas Bowl 8.99\n", - "11 Chicken Crispy Tacos 8.75\n", - "12 Chicken Soft Tacos 8.75\n", - "44 Chicken Salad Bowl 8.75\n", - "1653 Veggie Crispy Tacos 8.49\n", - "16 Chicken Burrito 8.49\n", - "1694 Veggie Salad 8.49\n", - "1414 Salad 7.40\n", - "510 Burrito 7.40\n", - "520 Crispy Tacos 7.40\n", - "673 Bowl 7.40\n", - "298 6 Pack Soft Drink 6.49\n", - "10 Chips and Guacamole 4.45\n", - "1 Izze 3.39\n", - "2 Nantucket Nectar 3.39\n", - "674 Chips and Mild Fresh Tomato Salsa 3.00\n", - "111 Chips and Tomatillo Red Chili Salsa 2.95\n", - "233 Chips and Roasted Chili Corn Salsa 2.95\n", - "38 Chips and Tomatillo Green Chili Salsa 2.95\n", - "3 Chips and Tomatillo-Green Chili Salsa 2.39\n", - "300 Chips and Tomatillo-Red Chili Salsa 2.39\n", - "191 Chips and Roasted Chili-Corn Salsa 2.39\n", - "0 Chips and Fresh Tomato Salsa 2.39\n", - "40 Chips 2.15\n", - "6 Side of Chips 1.69\n", - "263 Canned Soft Drink 1.25\n", - "28 Canned Soda 1.09\n", - "34 Bottled Water 1.09" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# delete the duplicates in item_name and quantity\n", - "chipo_filtered = chipo.drop_duplicates(['item_name','quantity'])\n", - "\n", - "# select only the products with quantity equals to 1\n", - "chipo_one_prod = chipo_filtered[chipo_filtered.quantity == 1]\n", - "\n", - "# select only the item_name and item_price columns\n", - "price_per_item = chipo_one_prod[['item_name', 'item_price']]\n", - "\n", - "# sort the values from the most to less expensive\n", - "price_per_item.sort_values(by = \"item_price\", ascending = False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 6. Sort by the name of the item" - ] - }, - { - "cell_type": "code", - "execution_count": 156, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "3389 6 Pack Soft Drink\n", - "341 6 Pack Soft Drink\n", - "1849 6 Pack Soft Drink\n", - "1860 6 Pack Soft Drink\n", - "2713 6 Pack Soft Drink\n", - "3422 6 Pack Soft Drink\n", - "553 6 Pack Soft Drink\n", - "1916 6 Pack Soft Drink\n", - "1922 6 Pack Soft Drink\n", - "1937 6 Pack Soft Drink\n", - "3836 6 Pack Soft Drink\n", - "298 6 Pack Soft Drink\n", - "1976 6 Pack Soft Drink\n", - "1167 6 Pack Soft Drink\n", - "3875 6 Pack Soft Drink\n", - "1124 6 Pack Soft Drink\n", - "3886 6 Pack Soft Drink\n", - "2108 6 Pack Soft Drink\n", - "3010 6 Pack Soft Drink\n", - "4535 6 Pack Soft Drink\n", - "4169 6 Pack Soft Drink\n", - "4174 6 Pack Soft Drink\n", - "4527 6 Pack Soft Drink\n", - "4522 6 Pack Soft Drink\n", - "3806 6 Pack Soft Drink\n", - "2389 6 Pack Soft Drink\n", - "3132 6 Pack Soft Drink\n", - "3141 6 Pack Soft Drink\n", - "639 6 Pack Soft Drink\n", - "1026 6 Pack Soft Drink\n", - " ... \n", - "2996 Veggie Salad\n", - "3163 Veggie Salad\n", - "4084 Veggie Salad\n", - "1694 Veggie Salad\n", - "2756 Veggie Salad\n", - "4201 Veggie Salad Bowl\n", - "1884 Veggie Salad Bowl\n", - "455 Veggie Salad Bowl\n", - "3223 Veggie Salad Bowl\n", - "2223 Veggie Salad Bowl\n", - "2269 Veggie Salad Bowl\n", - "4541 Veggie Salad Bowl\n", - "3293 Veggie Salad Bowl\n", - "186 Veggie Salad Bowl\n", - "960 Veggie Salad Bowl\n", - "1316 Veggie Salad Bowl\n", - "2156 Veggie Salad Bowl\n", - "4261 Veggie Salad Bowl\n", - "295 Veggie Salad Bowl\n", - "4573 Veggie Salad Bowl\n", - "2683 Veggie Salad Bowl\n", - "496 Veggie Salad Bowl\n", - "4109 Veggie Salad Bowl\n", - "738 Veggie Soft Tacos\n", - "3889 Veggie Soft Tacos\n", - "2384 Veggie Soft Tacos\n", - "781 Veggie Soft Tacos\n", - "2851 Veggie Soft Tacos\n", - "1699 Veggie Soft Tacos\n", - "1395 Veggie Soft Tacos\n", - "Name: item_name, dtype: object" + " order_id quantity item_name \\\n", + "3389 1360 2 6 Pack Soft Drink \n", + "341 148 1 6 Pack Soft Drink \n", + "1849 749 1 6 Pack Soft Drink \n", + "1860 754 1 6 Pack Soft Drink \n", + "2713 1076 1 6 Pack Soft Drink \n", + "3422 1373 1 6 Pack Soft Drink \n", + "553 230 1 6 Pack Soft Drink \n", + "1916 774 1 6 Pack Soft Drink \n", + "1922 776 1 6 Pack Soft Drink \n", + "1937 784 1 6 Pack Soft Drink \n", + "3836 1537 1 6 Pack Soft Drink \n", + "298 129 1 6 Pack Soft Drink \n", + "1976 798 1 6 Pack Soft Drink \n", + "1167 481 1 6 Pack Soft Drink \n", + "3875 1554 1 6 Pack Soft Drink \n", + "1124 465 1 6 Pack Soft Drink \n", + "3886 1558 1 6 Pack Soft Drink \n", + "2108 849 1 6 Pack Soft Drink \n", + "3010 1196 1 6 Pack Soft Drink \n", + "4535 1803 1 6 Pack Soft Drink \n", + "4169 1664 1 6 Pack Soft Drink \n", + "4174 1666 1 6 Pack Soft Drink \n", + "4527 1800 1 6 Pack Soft Drink \n", + "4522 1798 1 6 Pack Soft Drink \n", + "3806 1525 1 6 Pack Soft Drink \n", + "2389 949 1 6 Pack Soft Drink \n", + "3132 1248 1 6 Pack Soft Drink \n", + "3141 1253 1 6 Pack Soft Drink \n", + "639 264 1 6 Pack Soft Drink \n", + "1026 422 1 6 Pack Soft Drink \n", + "... ... ... ... \n", + "2996 1192 1 Veggie Salad \n", + "3163 1263 1 Veggie Salad \n", + "4084 1635 1 Veggie Salad \n", + "1694 686 1 Veggie Salad \n", + "2756 1094 1 Veggie Salad \n", + "4201 1677 1 Veggie Salad Bowl \n", + "1884 760 1 Veggie Salad Bowl \n", + "455 195 1 Veggie Salad Bowl \n", + "3223 1289 1 Veggie Salad Bowl \n", + "2223 896 1 Veggie Salad Bowl \n", + "2269 913 1 Veggie Salad Bowl \n", + "4541 1805 1 Veggie Salad Bowl \n", + "3293 1321 1 Veggie Salad Bowl \n", + "186 83 1 Veggie Salad Bowl \n", + "960 394 1 Veggie Salad Bowl \n", + "1316 536 1 Veggie Salad Bowl \n", + "2156 869 1 Veggie Salad Bowl \n", + "4261 1700 1 Veggie Salad Bowl \n", + "295 128 1 Veggie Salad Bowl \n", + "4573 1818 1 Veggie Salad Bowl \n", + "2683 1066 1 Veggie Salad Bowl \n", + "496 207 1 Veggie Salad Bowl \n", + "4109 1646 1 Veggie Salad Bowl \n", + "738 304 1 Veggie Soft Tacos \n", + "3889 1559 2 Veggie Soft Tacos \n", + "2384 948 1 Veggie Soft Tacos \n", + "781 322 1 Veggie Soft Tacos \n", + "2851 1132 1 Veggie Soft Tacos \n", + "1699 688 1 Veggie Soft Tacos \n", + "1395 567 1 Veggie Soft Tacos \n", + "\n", + " choice_description item_price \n", + "3389 [Diet Coke] 12.98 \n", + "341 [Diet Coke] 6.49 \n", + "1849 [Coke] 6.49 \n", + "1860 [Diet Coke] 6.49 \n", + "2713 [Coke] 6.49 \n", + "3422 [Coke] 6.49 \n", + "553 [Diet Coke] 6.49 \n", + "1916 [Diet Coke] 6.49 \n", + "1922 [Coke] 6.49 \n", + "1937 [Diet Coke] 6.49 \n", + "3836 [Coke] 6.49 \n", + "298 [Sprite] 6.49 \n", + "1976 [Diet Coke] 6.49 \n", + "1167 [Coke] 6.49 \n", + "3875 [Diet Coke] 6.49 \n", + "1124 [Coke] 6.49 \n", + "3886 [Diet Coke] 6.49 \n", + "2108 [Coke] 6.49 \n", + "3010 [Diet Coke] 6.49 \n", + "4535 [Lemonade] 6.49 \n", + "4169 [Diet Coke] 6.49 \n", + "4174 [Coke] 6.49 \n", + "4527 [Diet Coke] 6.49 \n", + "4522 [Diet Coke] 6.49 \n", + "3806 [Sprite] 6.49 \n", + "2389 [Coke] 6.49 \n", + "3132 [Diet Coke] 6.49 \n", + "3141 [Lemonade] 6.49 \n", + "639 [Diet Coke] 6.49 \n", + "1026 [Sprite] 6.49 \n", + "... ... ... \n", + "2996 [Roasted Chili Corn Salsa (Medium), [Black Bea... 8.49 \n", + "3163 [[Fresh Tomato Salsa (Mild), Roasted Chili Cor... 8.49 \n", + "4084 [[Fresh Tomato Salsa (Mild), Roasted Chili Cor... 8.49 \n", + "1694 [[Fresh Tomato Salsa (Mild), Roasted Chili Cor... 8.49 \n", + "2756 [[Tomatillo-Green Chili Salsa (Medium), Roaste... 8.49 \n", + "4201 [Fresh Tomato Salsa, [Fajita Vegetables, Black... 11.25 \n", + "1884 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "455 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "3223 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.25 \n", + "2223 [Roasted Chili Corn Salsa, Fajita Vegetables] 8.75 \n", + "2269 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 8.75 \n", + "4541 [Tomatillo Green Chili Salsa, [Fajita Vegetabl... 8.75 \n", + "3293 [Fresh Tomato Salsa, [Rice, Black Beans, Chees... 8.75 \n", + "186 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "960 [Fresh Tomato Salsa, [Fajita Vegetables, Lettu... 8.75 \n", + "1316 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 8.75 \n", + "2156 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.25 \n", + "4261 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "295 [Fresh Tomato Salsa, [Fajita Vegetables, Lettu... 11.25 \n", + "4573 [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... 8.75 \n", + "2683 [Roasted Chili Corn Salsa, [Fajita Vegetables,... 8.75 \n", + "496 [Fresh Tomato Salsa, [Rice, Lettuce, Guacamole... 11.25 \n", + "4109 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.25 \n", + "738 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.25 \n", + "3889 [Fresh Tomato Salsa (Mild), [Black Beans, Rice... 16.98 \n", + "2384 [Roasted Chili Corn Salsa, [Fajita Vegetables,... 8.75 \n", + "781 [Fresh Tomato Salsa, [Black Beans, Cheese, Sou... 8.75 \n", + "2851 [Roasted Chili Corn Salsa (Medium), [Black Bea... 8.49 \n", + "1699 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "1395 [Fresh Tomato Salsa (Mild), [Pinto Beans, Rice... 8.49 \n", + "\n", + "[4622 rows x 5 columns]" ] }, - "execution_count": 156, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -552,10 +2091,8 @@ }, { "cell_type": "code", - "execution_count": 165, - "metadata": { - "collapsed": false - }, + "execution_count": 26, + "metadata": {}, "outputs": [ { "data": { @@ -593,7 +2130,7 @@ "3598 44.25 " ] }, - "execution_count": 165, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -606,15 +2143,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 8. How many times were a Veggie Salad Bowl ordered?" + "### Step 8. How many times was a Veggie Salad Bowl ordered?" ] }, { "cell_type": "code", - "execution_count": 174, - "metadata": { - "collapsed": false - }, + "execution_count": 18, + "metadata": {}, "outputs": [ { "data": { @@ -622,7 +2157,7 @@ "18" ] }, - "execution_count": 174, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -637,15 +2172,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. How many times people orderd more than one Canned Soda?" + "### Step 9. How many times did someone order more than one Canned Soda?" ] }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, + "execution_count": 28, + "metadata": {}, "outputs": [ { "data": { @@ -653,7 +2186,7 @@ "20" ] }, - "execution_count": 5, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -667,23 +2200,36 @@ "metadata": { "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python [default]", + "display_name": "Python 3", "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.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/02_Filtering_&_Sorting/Chipotle/Solutions.ipynb b/02_Filtering_&_Sorting/Chipotle/Solutions.ipynb index 74db3b386..d21f74f3e 100644 --- a/02_Filtering_&_Sorting/Chipotle/Solutions.ipynb +++ b/02_Filtering_&_Sorting/Chipotle/Solutions.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Filtering and Sorting Data" + "# Ex1 - Filtering and Sorting Data" ] }, { @@ -19,7 +19,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false }, @@ -42,7 +42,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "collapsed": false }, @@ -58,7 +58,7 @@ }, { "cell_type": "code", - "execution_count": 168, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -66,15 +66,28 @@ { "data": { "text/plain": [ - "1130" + "12" ] }, - "execution_count": 168, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "# clean the item_price column and transform it in a float\n", + "\n", + "\n", + "# reassign the column with the cleaned prices\n", + "\n", + "\n", + "# delete the duplicates in item_name and quantity\n", + "\n", + "\n", + "# select only the products with quantity equals to 1\n", + "\n", + "\n" + ] }, { "cell_type": "markdown", @@ -86,7 +99,7 @@ }, { "cell_type": "code", - "execution_count": 176, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -204,309 +217,717 @@ " Carnitas Salad\n", " 8.99\n", " \n", + " \n", + "\n", + "" + ], + "text/plain": [ + " item_name item_price\n", + "606 Steak Salad Bowl 11.89\n", + "1229 Barbacoa Salad Bowl 11.89\n", + "1132 Carnitas Salad Bowl 11.89\n", + "7 Steak Burrito 11.75\n", + "168 Barbacoa Crispy Tacos 11.75\n", + "39 Barbacoa Bowl 11.75\n", + "738 Veggie Soft Tacos 11.25\n", + "186 Veggie Salad Bowl 11.25\n", + "62 Veggie Bowl 11.25\n", + "57 Veggie Burrito 11.25\n", + "250 Chicken Salad 10.98\n", + "5 Chicken Bowl 10.98\n", + "8 Steak Soft Tacos 9.25\n", + "554 Carnitas Crispy Tacos 9.25\n", + "237 Carnitas Soft Tacos 9.25\n", + "56 Barbacoa Soft Tacos 9.25\n", + "92 Steak Crispy Tacos 9.25\n", + "664 Steak Salad 8.99\n", + "54 Steak Bowl 8.99\n", + "3750 Carnitas Salad 8.99" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# delete the duplicates in item_name and quantity\n", + "\n", + "\n", + "# select only the products with quantity equals to 1\n", + "\n", + "\n", + "# select only the item_name and item_price columns\n", + "\n", + "\n", + "# sort the values from the most to less expensive\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 6. Sort by the name of the item" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "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", + " \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", + " \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", + " \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", " \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", + " \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", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
order_idquantityitem_namechoice_descriptionitem_price
21Barbacoa Burrito8.993389136026 Pack Soft Drink[Diet Coke]12.98
27Carnitas Burrito8.9934114816 Pack Soft Drink[Diet Coke]6.49
33Carnitas Bowl8.99184974916 Pack Soft Drink[Coke]6.49
11Chicken Crispy Tacos8.75186075416 Pack Soft Drink[Diet Coke]6.49
12Chicken Soft Tacos8.752713107616 Pack Soft Drink[Coke]6.49
44Chicken Salad Bowl8.753422137316 Pack Soft Drink[Coke]6.49
55323016 Pack Soft Drink[Diet Coke]6.49
1653Veggie Crispy Tacos191677416 Pack Soft Drink[Diet Coke]6.49
192277616 Pack Soft Drink[Coke]6.49
193778416 Pack Soft Drink[Diet Coke]6.49
3836153716 Pack Soft Drink[Coke]6.49
29812916 Pack Soft Drink[Sprite]6.49
197679816 Pack Soft Drink[Diet Coke]6.49
116748116 Pack Soft Drink[Coke]6.49
3875155416 Pack Soft Drink[Diet Coke]6.49
112446516 Pack Soft Drink[Coke]6.49
3886155816 Pack Soft Drink[Diet Coke]6.49
210884916 Pack Soft Drink[Coke]6.49
3010119616 Pack Soft Drink[Diet Coke]6.49
4535180316 Pack Soft Drink[Lemonade]6.49
4169166416 Pack Soft Drink[Diet Coke]6.49
4174166616 Pack Soft Drink[Coke]6.49
4527180016 Pack Soft Drink[Diet Coke]6.49
4522179816 Pack Soft Drink[Diet Coke]6.49
3806152516 Pack Soft Drink[Sprite]6.49
238994916 Pack Soft Drink[Coke]6.49
3132124816 Pack Soft Drink[Diet Coke]6.49
3141125316 Pack Soft Drink[Lemonade]6.49
63926416 Pack Soft Drink[Diet Coke]6.49
102642216 Pack Soft Drink[Sprite]6.49
..................
299611921Veggie Salad[Roasted Chili Corn Salsa (Medium), [Black Bea...8.49
16Chicken Burrito316312631Veggie Salad[[Fresh Tomato Salsa (Mild), Roasted Chili Cor...8.49
408416351Veggie Salad[[Fresh Tomato Salsa (Mild), Roasted Chili Cor...8.49
16946861Veggie Salad[[Fresh Tomato Salsa (Mild), Roasted Chili Cor...8.49
1414Salad7.40275610941Veggie Salad[[Tomatillo-Green Chili Salsa (Medium), Roaste...8.49
510Burrito7.40420116771Veggie Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Black...11.25
520Crispy Tacos7.4018847601Veggie Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
673Bowl7.404551951Veggie Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
2986 Pack Soft Drink6.49322312891Veggie Salad Bowl[Tomatillo Red Chili Salsa, [Fajita Vegetables...11.25
10Chips and Guacamole4.4522238961Veggie Salad Bowl[Roasted Chili Corn Salsa, Fajita Vegetables]8.75
1Izze3.3922699131Veggie Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...8.75
2Nantucket Nectar3.39454118051Veggie Salad Bowl[Tomatillo Green Chili Salsa, [Fajita Vegetabl...8.75
674Chips and Mild Fresh Tomato Salsa3.00329313211Veggie Salad Bowl[Fresh Tomato Salsa, [Rice, Black Beans, Chees...8.75
111Chips and Tomatillo Red Chili Salsa2.95186831Veggie Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
233Chips and Roasted Chili Corn Salsa2.959603941Veggie Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Lettu...8.75
38Chips and Tomatillo Green Chili Salsa2.9513165361Veggie Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...8.75
3Chips and Tomatillo-Green Chili Salsa2.3921568691Veggie Salad Bowl[Tomatillo Red Chili Salsa, [Fajita Vegetables...11.25
300Chips and Tomatillo-Red Chili Salsa2.39426117001Veggie Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
191Chips and Roasted Chili-Corn Salsa2.392951281Veggie Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Lettu...11.25
0Chips and Fresh Tomato Salsa2.39457318181Veggie Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Pinto...8.75
268310661Veggie Salad Bowl[Roasted Chili Corn Salsa, [Fajita Vegetables,...8.75
4962071Veggie Salad Bowl[Fresh Tomato Salsa, [Rice, Lettuce, Guacamole...11.25
40Chips2.15410916461Veggie Salad Bowl[Tomatillo Red Chili Salsa, [Fajita Vegetables...11.25
7383041Veggie Soft Tacos[Tomatillo Red Chili Salsa, [Fajita Vegetables...11.25
6Side of Chips1.69388915592Veggie Soft Tacos[Fresh Tomato Salsa (Mild), [Black Beans, Rice...16.98
23849481Veggie Soft Tacos[Roasted Chili Corn Salsa, [Fajita Vegetables,...8.75
7813221Veggie Soft Tacos[Fresh Tomato Salsa, [Black Beans, Cheese, Sou...8.75
263Canned Soft Drink1.25285111321Veggie Soft Tacos[Roasted Chili Corn Salsa (Medium), [Black Bea...8.49
28Canned Soda1.0916996881Veggie Soft Tacos[Fresh Tomato Salsa, [Fajita Vegetables, Rice,...11.25
34Bottled Water1.0913955671Veggie Soft Tacos[Fresh Tomato Salsa (Mild), [Pinto Beans, Rice...8.49
\n", + "

4622 rows × 5 columns

\n", "
" ], "text/plain": [ - " item_name item_price\n", - "606 Steak Salad Bowl 11.89\n", - "1229 Barbacoa Salad Bowl 11.89\n", - "1132 Carnitas Salad Bowl 11.89\n", - "7 Steak Burrito 11.75\n", - "168 Barbacoa Crispy Tacos 11.75\n", - "39 Barbacoa Bowl 11.75\n", - "738 Veggie Soft Tacos 11.25\n", - "186 Veggie Salad Bowl 11.25\n", - "62 Veggie Bowl 11.25\n", - "57 Veggie Burrito 11.25\n", - "250 Chicken Salad 10.98\n", - "5 Chicken Bowl 10.98\n", - "8 Steak Soft Tacos 9.25\n", - "554 Carnitas Crispy Tacos 9.25\n", - "237 Carnitas Soft Tacos 9.25\n", - "56 Barbacoa Soft Tacos 9.25\n", - "92 Steak Crispy Tacos 9.25\n", - "664 Steak Salad 8.99\n", - "54 Steak Bowl 8.99\n", - "3750 Carnitas Salad 8.99\n", - "21 Barbacoa Burrito 8.99\n", - "27 Carnitas Burrito 8.99\n", - "33 Carnitas Bowl 8.99\n", - "11 Chicken Crispy Tacos 8.75\n", - "12 Chicken Soft Tacos 8.75\n", - "44 Chicken Salad Bowl 8.75\n", - "1653 Veggie Crispy Tacos 8.49\n", - "16 Chicken Burrito 8.49\n", - "1694 Veggie Salad 8.49\n", - "1414 Salad 7.40\n", - "510 Burrito 7.40\n", - "520 Crispy Tacos 7.40\n", - "673 Bowl 7.40\n", - "298 6 Pack Soft Drink 6.49\n", - "10 Chips and Guacamole 4.45\n", - "1 Izze 3.39\n", - "2 Nantucket Nectar 3.39\n", - "674 Chips and Mild Fresh Tomato Salsa 3.00\n", - "111 Chips and Tomatillo Red Chili Salsa 2.95\n", - "233 Chips and Roasted Chili Corn Salsa 2.95\n", - "38 Chips and Tomatillo Green Chili Salsa 2.95\n", - "3 Chips and Tomatillo-Green Chili Salsa 2.39\n", - "300 Chips and Tomatillo-Red Chili Salsa 2.39\n", - "191 Chips and Roasted Chili-Corn Salsa 2.39\n", - "0 Chips and Fresh Tomato Salsa 2.39\n", - "40 Chips 2.15\n", - "6 Side of Chips 1.69\n", - "263 Canned Soft Drink 1.25\n", - "28 Canned Soda 1.09\n", - "34 Bottled Water 1.09" + " order_id quantity item_name \\\n", + "3389 1360 2 6 Pack Soft Drink \n", + "341 148 1 6 Pack Soft Drink \n", + "1849 749 1 6 Pack Soft Drink \n", + "1860 754 1 6 Pack Soft Drink \n", + "2713 1076 1 6 Pack Soft Drink \n", + "3422 1373 1 6 Pack Soft Drink \n", + "553 230 1 6 Pack Soft Drink \n", + "1916 774 1 6 Pack Soft Drink \n", + "1922 776 1 6 Pack Soft Drink \n", + "1937 784 1 6 Pack Soft Drink \n", + "3836 1537 1 6 Pack Soft Drink \n", + "298 129 1 6 Pack Soft Drink \n", + "1976 798 1 6 Pack Soft Drink \n", + "1167 481 1 6 Pack Soft Drink \n", + "3875 1554 1 6 Pack Soft Drink \n", + "1124 465 1 6 Pack Soft Drink \n", + "3886 1558 1 6 Pack Soft Drink \n", + "2108 849 1 6 Pack Soft Drink \n", + "3010 1196 1 6 Pack Soft Drink \n", + "4535 1803 1 6 Pack Soft Drink \n", + "4169 1664 1 6 Pack Soft Drink \n", + "4174 1666 1 6 Pack Soft Drink \n", + "4527 1800 1 6 Pack Soft Drink \n", + "4522 1798 1 6 Pack Soft Drink \n", + "3806 1525 1 6 Pack Soft Drink \n", + "2389 949 1 6 Pack Soft Drink \n", + "3132 1248 1 6 Pack Soft Drink \n", + "3141 1253 1 6 Pack Soft Drink \n", + "639 264 1 6 Pack Soft Drink \n", + "1026 422 1 6 Pack Soft Drink \n", + "... ... ... ... \n", + "2996 1192 1 Veggie Salad \n", + "3163 1263 1 Veggie Salad \n", + "4084 1635 1 Veggie Salad \n", + "1694 686 1 Veggie Salad \n", + "2756 1094 1 Veggie Salad \n", + "4201 1677 1 Veggie Salad Bowl \n", + "1884 760 1 Veggie Salad Bowl \n", + "455 195 1 Veggie Salad Bowl \n", + "3223 1289 1 Veggie Salad Bowl \n", + "2223 896 1 Veggie Salad Bowl \n", + "2269 913 1 Veggie Salad Bowl \n", + "4541 1805 1 Veggie Salad Bowl \n", + "3293 1321 1 Veggie Salad Bowl \n", + "186 83 1 Veggie Salad Bowl \n", + "960 394 1 Veggie Salad Bowl \n", + "1316 536 1 Veggie Salad Bowl \n", + "2156 869 1 Veggie Salad Bowl \n", + "4261 1700 1 Veggie Salad Bowl \n", + "295 128 1 Veggie Salad Bowl \n", + "4573 1818 1 Veggie Salad Bowl \n", + "2683 1066 1 Veggie Salad Bowl \n", + "496 207 1 Veggie Salad Bowl \n", + "4109 1646 1 Veggie Salad Bowl \n", + "738 304 1 Veggie Soft Tacos \n", + "3889 1559 2 Veggie Soft Tacos \n", + "2384 948 1 Veggie Soft Tacos \n", + "781 322 1 Veggie Soft Tacos \n", + "2851 1132 1 Veggie Soft Tacos \n", + "1699 688 1 Veggie Soft Tacos \n", + "1395 567 1 Veggie Soft Tacos \n", + "\n", + " choice_description item_price \n", + "3389 [Diet Coke] 12.98 \n", + "341 [Diet Coke] 6.49 \n", + "1849 [Coke] 6.49 \n", + "1860 [Diet Coke] 6.49 \n", + "2713 [Coke] 6.49 \n", + "3422 [Coke] 6.49 \n", + "553 [Diet Coke] 6.49 \n", + "1916 [Diet Coke] 6.49 \n", + "1922 [Coke] 6.49 \n", + "1937 [Diet Coke] 6.49 \n", + "3836 [Coke] 6.49 \n", + "298 [Sprite] 6.49 \n", + "1976 [Diet Coke] 6.49 \n", + "1167 [Coke] 6.49 \n", + "3875 [Diet Coke] 6.49 \n", + "1124 [Coke] 6.49 \n", + "3886 [Diet Coke] 6.49 \n", + "2108 [Coke] 6.49 \n", + "3010 [Diet Coke] 6.49 \n", + "4535 [Lemonade] 6.49 \n", + "4169 [Diet Coke] 6.49 \n", + "4174 [Coke] 6.49 \n", + "4527 [Diet Coke] 6.49 \n", + "4522 [Diet Coke] 6.49 \n", + "3806 [Sprite] 6.49 \n", + "2389 [Coke] 6.49 \n", + "3132 [Diet Coke] 6.49 \n", + "3141 [Lemonade] 6.49 \n", + "639 [Diet Coke] 6.49 \n", + "1026 [Sprite] 6.49 \n", + "... ... ... \n", + "2996 [Roasted Chili Corn Salsa (Medium), [Black Bea... 8.49 \n", + "3163 [[Fresh Tomato Salsa (Mild), Roasted Chili Cor... 8.49 \n", + "4084 [[Fresh Tomato Salsa (Mild), Roasted Chili Cor... 8.49 \n", + "1694 [[Fresh Tomato Salsa (Mild), Roasted Chili Cor... 8.49 \n", + "2756 [[Tomatillo-Green Chili Salsa (Medium), Roaste... 8.49 \n", + "4201 [Fresh Tomato Salsa, [Fajita Vegetables, Black... 11.25 \n", + "1884 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "455 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "3223 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.25 \n", + "2223 [Roasted Chili Corn Salsa, Fajita Vegetables] 8.75 \n", + "2269 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 8.75 \n", + "4541 [Tomatillo Green Chili Salsa, [Fajita Vegetabl... 8.75 \n", + "3293 [Fresh Tomato Salsa, [Rice, Black Beans, Chees... 8.75 \n", + "186 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "960 [Fresh Tomato Salsa, [Fajita Vegetables, Lettu... 8.75 \n", + "1316 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 8.75 \n", + "2156 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.25 \n", + "4261 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "295 [Fresh Tomato Salsa, [Fajita Vegetables, Lettu... 11.25 \n", + "4573 [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... 8.75 \n", + "2683 [Roasted Chili Corn Salsa, [Fajita Vegetables,... 8.75 \n", + "496 [Fresh Tomato Salsa, [Rice, Lettuce, Guacamole... 11.25 \n", + "4109 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.25 \n", + "738 [Tomatillo Red Chili Salsa, [Fajita Vegetables... 11.25 \n", + "3889 [Fresh Tomato Salsa (Mild), [Black Beans, Rice... 16.98 \n", + "2384 [Roasted Chili Corn Salsa, [Fajita Vegetables,... 8.75 \n", + "781 [Fresh Tomato Salsa, [Black Beans, Cheese, Sou... 8.75 \n", + "2851 [Roasted Chili Corn Salsa (Medium), [Black Bea... 8.49 \n", + "1699 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... 11.25 \n", + "1395 [Fresh Tomato Salsa (Mild), [Pinto Beans, Rice... 8.49 \n", + "\n", + "[4622 rows x 5 columns]" ] }, - "execution_count": 176, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, "source": [ - "### Step 6. Sort by the name of the item" + "\n", + "\n", + "# OR\n", + "\n" ] }, - { - "cell_type": "code", - "execution_count": 156, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "3389 6 Pack Soft Drink\n", - "341 6 Pack Soft Drink\n", - "1849 6 Pack Soft Drink\n", - "1860 6 Pack Soft Drink\n", - "2713 6 Pack Soft Drink\n", - "3422 6 Pack Soft Drink\n", - "553 6 Pack Soft Drink\n", - "1916 6 Pack Soft Drink\n", - "1922 6 Pack Soft Drink\n", - "1937 6 Pack Soft Drink\n", - "3836 6 Pack Soft Drink\n", - "298 6 Pack Soft Drink\n", - "1976 6 Pack Soft Drink\n", - "1167 6 Pack Soft Drink\n", - "3875 6 Pack Soft Drink\n", - "1124 6 Pack Soft Drink\n", - "3886 6 Pack Soft Drink\n", - "2108 6 Pack Soft Drink\n", - "3010 6 Pack Soft Drink\n", - "4535 6 Pack Soft Drink\n", - "4169 6 Pack Soft Drink\n", - "4174 6 Pack Soft Drink\n", - "4527 6 Pack Soft Drink\n", - "4522 6 Pack Soft Drink\n", - "3806 6 Pack Soft Drink\n", - "2389 6 Pack Soft Drink\n", - "3132 6 Pack Soft Drink\n", - "3141 6 Pack Soft Drink\n", - "639 6 Pack Soft Drink\n", - "1026 6 Pack Soft Drink\n", - " ... \n", - "2996 Veggie Salad\n", - "3163 Veggie Salad\n", - "4084 Veggie Salad\n", - "1694 Veggie Salad\n", - "2756 Veggie Salad\n", - "4201 Veggie Salad Bowl\n", - "1884 Veggie Salad Bowl\n", - "455 Veggie Salad Bowl\n", - "3223 Veggie Salad Bowl\n", - "2223 Veggie Salad Bowl\n", - "2269 Veggie Salad Bowl\n", - "4541 Veggie Salad Bowl\n", - "3293 Veggie Salad Bowl\n", - "186 Veggie Salad Bowl\n", - "960 Veggie Salad Bowl\n", - "1316 Veggie Salad Bowl\n", - "2156 Veggie Salad Bowl\n", - "4261 Veggie Salad Bowl\n", - "295 Veggie Salad Bowl\n", - "4573 Veggie Salad Bowl\n", - "2683 Veggie Salad Bowl\n", - "496 Veggie Salad Bowl\n", - "4109 Veggie Salad Bowl\n", - "738 Veggie Soft Tacos\n", - "3889 Veggie Soft Tacos\n", - "2384 Veggie Soft Tacos\n", - "781 Veggie Soft Tacos\n", - "2851 Veggie Soft Tacos\n", - "1699 Veggie Soft Tacos\n", - "1395 Veggie Soft Tacos\n", - "Name: item_name, dtype: object" - ] - }, - "execution_count": 156, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, @@ -516,7 +937,7 @@ }, { "cell_type": "code", - "execution_count": 165, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -557,7 +978,7 @@ "3598 44.25 " ] }, - "execution_count": 165, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -568,12 +989,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 8. How many times were a Veggie Salad Bowl ordered?" + "### Step 8. How many times was a Veggie Salad Bowl ordered?" ] }, { "cell_type": "code", - "execution_count": 174, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -584,7 +1005,7 @@ "18" ] }, - "execution_count": 174, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -595,12 +1016,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. How many times people orderd more than one Canned Soda?" + "### Step 9. How many times did someone order more than one Canned Soda?" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -611,7 +1032,7 @@ "20" ] }, - "execution_count": 5, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -620,8 +1041,9 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [default]", "language": "python", "name": "python2" }, @@ -635,7 +1057,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, diff --git a/02_Filtering_&_Sorting/Euro12/Euro_2012_stats_TEAM.csv b/02_Filtering_&_Sorting/Euro12/Euro_2012_stats_TEAM.csv new file mode 100644 index 000000000..f67ceaebf --- /dev/null +++ b/02_Filtering_&_Sorting/Euro12/Euro_2012_stats_TEAM.csv @@ -0,0 +1,17 @@ +Team,Goals,Shots on target,Shots off target,Shooting Accuracy,% Goals-to-shots,Total shots (inc. Blocked),Hit Woodwork,Penalty goals,Penalties not scored,Headed goals,Passes,Passes completed,Passing Accuracy,Touches,Crosses,Dribbles,Corners Taken,Tackles,Clearances,Interceptions,Clearances off line,Clean Sheets,Blocks,Goals conceded,Saves made,Saves-to-shots ratio,Fouls Won,Fouls Conceded,Offsides,Yellow Cards,Red Cards,Subs on,Subs off,Players Used +Croatia,4,13,12,51.9%,16.0%,32,0,0,0,2,1076,828,76.9%,1706,60,42,14,49,83,56,,0,10,3,13,81.3%,41,62,2,9,0,9,9,16 +Czech Republic,4,13,18,41.9%,12.9%,39,0,0,0,0,1565,1223,78.1%,2358,46,68,21,62,98,37,2,1,10,6,9,60.1%,53,73,8,7,0,11,11,19 +Denmark,4,10,10,50.0%,20.0%,27,1,0,0,3,1298,1082,83.3%,1873,43,32,16,40,61,59,0,1,10,5,10,66.7%,25,38,8,4,0,7,7,15 +England,5,11,18,50.0%,17.2%,40,0,0,0,3,1488,1200,80.6%,2440,58,60,16,86,106,72,1,2,29,3,22,88.1%,43,45,6,5,0,11,11,16 +France,3,22,24,37.9%,6.5%,65,1,0,0,0,2066,1803,87.2%,2909,55,76,28,71,76,58,0,1,7,5,6,54.6%,36,51,5,6,0,11,11,19 +Germany,10,32,32,47.8%,15.6%,80,2,1,0,2,2774,2427,87.4%,3761,101,60,35,91,73,69,0,1,11,6,10,62.6%,63,49,12,4,0,15,15,17 +Greece,5,8,18,30.7%,19.2%,32,1,1,1,0,1187,911,76.7%,2016,52,53,10,65,123,87,0,1,23,7,13,65.1%,67,48,12,9,1,12,12,20 +Italy,6,34,45,43.0%,7.5%,110,2,0,0,2,3016,2531,83.9%,4363,75,75,30,98,137,136,1,2,18,7,20,74.1%,101,89,16,16,0,18,18,19 +Netherlands,2,12,36,25.0%,4.1%,60,2,0,0,0,1556,1381,88.7%,2163,50,49,22,34,41,41,0,0,9,5,12,70.6%,35,30,3,5,0,7,7,15 +Poland,2,15,23,39.4%,5.2%,48,0,0,0,1,1059,852,80.4%,1724,55,39,14,67,87,62,0,0,8,3,6,66.7%,48,56,3,7,1,7,7,17 +Portugal,6,22,42,34.3%,9.3%,82,6,0,0,2,1891,1461,77.2%,2958,91,64,41,78,92,86,0,2,11,4,10,71.5%,73,90,10,12,0,14,14,16 +Republic of Ireland,1,7,12,36.8%,5.2%,28,0,0,0,1,851,606,71.2%,1433,43,18,8,45,78,43,1,0,23,9,17,65.4%,43,51,11,6,1,10,10,17 +Russia,5,9,31,22.5%,12.5%,59,2,0,0,1,1602,1345,83.9%,2278,40,40,21,65,74,58,0,0,8,3,10,77.0%,34,43,4,6,0,7,7,16 +Spain,12,42,33,55.9%,16.0%,100,0,1,0,2,4317,3820,88.4%,5585,69,106,44,122,102,79,0,5,8,1,15,93.8%,102,83,19,11,0,17,17,18 +Sweden,5,17,19,47.2%,13.8%,39,3,0,0,1,1192,965,80.9%,1806,44,29,7,56,54,45,0,1,12,5,8,61.6%,35,51,7,7,0,9,9,18 +Ukraine,2,7,26,21.2%,6.0%,38,0,0,0,2,1276,1043,81.7%,1894,33,26,18,65,97,29,0,0,4,4,13,76.5%,48,31,4,5,0,9,9,18 \ No newline at end of file diff --git a/02_Filtering_&_Sorting/Euro12/Exercises.ipynb b/02_Filtering_&_Sorting/Euro12/Exercises.ipynb index 64d69237b..3d95ed471 100644 --- a/02_Filtering_&_Sorting/Euro12/Exercises.ipynb +++ b/02_Filtering_&_Sorting/Euro12/Exercises.ipynb @@ -29,7 +29,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/jokecamp/FootballData/master/Euro%202012/Euro%202012%20stats%20TEAM.csv). " + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/02_Filtering_%26_Sorting/Euro12/Euro_2012_stats_TEAM.csv). " ] }, { @@ -227,8 +227,9 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [default]", "language": "python", "name": "python2" }, @@ -242,7 +243,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, diff --git a/02_Filtering_&_Sorting/Euro12/Exercises_with_Solutions.ipynb b/02_Filtering_&_Sorting/Euro12/Exercises_with_Solutions.ipynb index 62766f1c9..29a9be096 100644 --- a/02_Filtering_&_Sorting/Euro12/Exercises_with_Solutions.ipynb +++ b/02_Filtering_&_Sorting/Euro12/Exercises_with_Solutions.ipynb @@ -4,7 +4,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Ex2 - Filtering and Sorting Data" + "# Ex2 - Filtering and Sorting Data\n", + "Check out [Euro 12 Exercises Video Tutorial](https://youtu.be/iqk5d48Qisg) to watch a data scientist go through the exercises" ] }, { @@ -18,10 +19,8 @@ }, { "cell_type": "code", - "execution_count": 25, - "metadata": { - "collapsed": false - }, + "execution_count": 2, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd" @@ -31,7 +30,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/jokecamp/FootballData/master/Euro%202012/Euro%202012%20stats%20TEAM.csv). " + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/02_Filtering_%26_Sorting/Euro12/Euro_2012_stats_TEAM.csv). " ] }, { @@ -43,10 +42,8 @@ }, { "cell_type": "code", - "execution_count": 36, - "metadata": { - "collapsed": false - }, + "execution_count": 3, + "metadata": {}, "outputs": [ { "data": { @@ -563,13 +560,13 @@ "[16 rows x 35 columns]" ] }, - "execution_count": 36, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "euro12 = pd.read_csv('https://raw.githubusercontent.com/jokecamp/FootballData/master/Euro%202012/Euro%202012%20stats%20TEAM.csv')\n", + "euro12 = pd.read_csv('https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/02_Filtering_%26_Sorting/Euro12/Euro_2012_stats_TEAM.csv', sep=',')\n", "euro12" ] }, @@ -583,9 +580,7 @@ { "cell_type": "code", "execution_count": 37, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -628,9 +623,7 @@ { "cell_type": "code", "execution_count": 43, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -657,9 +650,7 @@ { "cell_type": "code", "execution_count": 44, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -722,9 +713,7 @@ { "cell_type": "code", "execution_count": 82, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -883,7 +872,6 @@ "cell_type": "code", "execution_count": 56, "metadata": { - "collapsed": false, "scrolled": true }, "outputs": [ @@ -1040,9 +1028,7 @@ { "cell_type": "code", "execution_count": 55, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -1069,9 +1055,7 @@ { "cell_type": "code", "execution_count": 57, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -1201,9 +1185,7 @@ { "cell_type": "code", "execution_count": 66, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -1333,9 +1315,7 @@ { "cell_type": "code", "execution_count": 84, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -1566,7 +1546,7 @@ "# use .iloc to slices via the position of the passed integers\n", "# : means all, 0:7 means from 0 to 7\n", "\n", - "euro.iloc[: , 0:7]" + "euro12.iloc[: , 0:7]" ] }, { @@ -1579,9 +1559,7 @@ { "cell_type": "code", "execution_count": 86, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -2106,7 +2084,7 @@ "source": [ "# use negative to exclude the last 3 columns\n", "\n", - "euro.iloc[: , :-3]" + "euro12.iloc[: , :-3]" ] }, { @@ -2119,9 +2097,7 @@ { "cell_type": "code", "execution_count": 89, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -2175,24 +2151,38 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/02_Filtering_&_Sorting/Euro12/Solutions.ipynb b/02_Filtering_&_Sorting/Euro12/Solutions.ipynb index b0d5fc0f3..ae528ea09 100644 --- a/02_Filtering_&_Sorting/Euro12/Solutions.ipynb +++ b/02_Filtering_&_Sorting/Euro12/Solutions.ipynb @@ -29,7 +29,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/jokecamp/FootballData/master/Euro%202012/Euro%202012%20stats%20TEAM.csv). " + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/02_Filtering_%26_Sorting/Euro12/Euro_2012_stats_TEAM.csv). " ] }, { @@ -2138,8 +2138,9 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [default]", "language": "python", "name": "python2" }, @@ -2153,7 +2154,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, diff --git a/02_Filtering_&_Sorting/Fictional Army/Exercise.ipynb b/02_Filtering_&_Sorting/Fictional Army/Exercise.ipynb index a15c1fe58..f2bd279e3 100644 --- a/02_Filtering_&_Sorting/Fictional Army/Exercise.ipynb +++ b/02_Filtering_&_Sorting/Fictional Army/Exercise.ipynb @@ -23,9 +23,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd" @@ -65,15 +63,13 @@ "source": [ "### Step 3. Create a dataframe and assign it to a variable called army. \n", "\n", - "#### Don't forget to include the columns names" + "#### Don't forget to include the columns names in the order presented in the dictionary ('regiment', 'company', 'deaths'...) so that the column index order is consistent with the solutions. If omitted, pandas will order the columns alphabetically." ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -87,9 +83,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -103,9 +97,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -119,9 +111,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -135,9 +125,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -151,9 +139,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -167,9 +153,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -177,15 +161,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 10. Select every row after the fourth row" + "### Step 10. Select every row after the fourth row and all columns" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -193,15 +175,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 11. Select every row up to the 4th row" + "### Step 11. Select every row up to the 4th row and all columns" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -215,9 +195,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -231,9 +209,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -247,9 +223,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -263,9 +237,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -279,9 +251,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -295,9 +265,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -311,32 +279,30 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/02_Filtering_&_Sorting/Fictional Army/Exercise_with_solutions.ipynb b/02_Filtering_&_Sorting/Fictional Army/Exercise_with_solutions.ipynb index 87308cae0..a5ebfde1e 100644 --- a/02_Filtering_&_Sorting/Fictional Army/Exercise_with_solutions.ipynb +++ b/02_Filtering_&_Sorting/Fictional Army/Exercise_with_solutions.ipynb @@ -4,7 +4,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Fictional Army - Filtering and Sorting" + "# Fictional Army - Filtering and Sorting\n", + "Check out [Fictional Army Exercises Video Tutorial](https://youtu.be/42LGuRea7DE) to watch a data scientist go through the exercises" ] }, { @@ -23,9 +24,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd" @@ -40,10 +39,8 @@ }, { "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": true - }, + "execution_count": 2, + "metadata": {}, "outputs": [], "source": [ "# Create an example dataframe about a fictional army\n", @@ -65,38 +62,31 @@ "source": [ "### Step 3. Create a dataframe and assign it to a variable called army. \n", "\n", - "#### Don't forget to include the columns names" + "#### Don't forget to include the columns names in the order presented in the dictionary ('regiment', 'company', 'deaths'...) so that the column index order is consistent with the solutions. If omitted, pandas will order the columns alphabetically." ] }, { "cell_type": "code", - "execution_count": 19, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "army = pd.DataFrame(raw_data, columns = ['regiment', 'company', 'deaths', 'battles', 'size', 'veterans', 'readiness', 'armored', 'deserters', 'origin'])" - ] - }, - { - "cell_type": "markdown", + "execution_count": 3, "metadata": {}, - "source": [ - "### Step 4. Set the 'origin' colum as the index of the dataframe" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "collapsed": false - }, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -110,23 +100,12 @@ " \n", " \n", " \n", - " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -136,9 +115,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -148,9 +128,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -160,9 +141,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -172,9 +154,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -184,9 +167,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -196,9 +180,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -208,9 +193,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -220,9 +206,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -232,9 +219,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -244,9 +232,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -256,9 +245,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -268,53 +258,68 @@ " \n", " \n", " \n", + " \n", " \n", " \n", "
readinessarmoreddeserters
origin
Arizona0Nighthawks1st523114Arizona
California1Nighthawks1st522024California
Texas2Nighthawks2nd253131Texas
Florida3Nighthawks2nd616312Florida
Maine4Dragoons1st43203Maine
Iowa5Dragoons1st234114Iowa
Alaska6Dragoons2nd5232024Alaska
Washington7Dragoons2nd623131Washington
Oregon8Scouts1st62202Oregon
Wyoming9Scouts1st73103Wyoming
Louisana10Scouts2nd37212Louisana
Georgia11Scouts2nd35313Georgia
\n", "
" ], "text/plain": [ - " regiment company deaths battles size veterans readiness \\\n", - "origin \n", - "Arizona Nighthawks 1st 523 5 1045 1 1 \n", - "California Nighthawks 1st 52 42 957 5 2 \n", - "Texas Nighthawks 2nd 25 2 1099 62 3 \n", - "Florida Nighthawks 2nd 616 2 1400 26 3 \n", - "Maine Dragoons 1st 43 4 1592 73 2 \n", - "Iowa Dragoons 1st 234 7 1006 37 1 \n", - "Alaska Dragoons 2nd 523 8 987 949 2 \n", - "Washington Dragoons 2nd 62 3 849 48 3 \n", - "Oregon Scouts 1st 62 4 973 48 2 \n", - "Wyoming Scouts 1st 73 7 1005 435 1 \n", - "Louisana Scouts 2nd 37 8 1099 63 2 \n", - "Georgia Scouts 2nd 35 9 1523 345 3 \n", + " regiment company deaths battles size veterans readiness armored \\\n", + "0 Nighthawks 1st 523 5 1045 1 1 1 \n", + "1 Nighthawks 1st 52 42 957 5 2 0 \n", + "2 Nighthawks 2nd 25 2 1099 62 3 1 \n", + "3 Nighthawks 2nd 616 2 1400 26 3 1 \n", + "4 Dragoons 1st 43 4 1592 73 2 0 \n", + "5 Dragoons 1st 234 7 1006 37 1 1 \n", + "6 Dragoons 2nd 523 8 987 949 2 0 \n", + "7 Dragoons 2nd 62 3 849 48 3 1 \n", + "8 Scouts 1st 62 4 973 48 2 0 \n", + "9 Scouts 1st 73 7 1005 435 1 0 \n", + "10 Scouts 2nd 37 8 1099 63 2 1 \n", + "11 Scouts 2nd 35 9 1523 345 3 1 \n", "\n", - " armored deserters \n", - "origin \n", - "Arizona 1 4 \n", - "California 0 24 \n", - "Texas 1 31 \n", - "Florida 1 2 \n", - "Maine 0 3 \n", - "Iowa 1 4 \n", - "Alaska 0 24 \n", - "Washington 1 31 \n", - "Oregon 0 2 \n", - "Wyoming 0 3 \n", - "Louisana 1 2 \n", - "Georgia 1 3 " + " deserters origin \n", + "0 4 Arizona \n", + "1 24 California \n", + "2 31 Texas \n", + "3 2 Florida \n", + "4 3 Maine \n", + "5 4 Iowa \n", + "6 24 Alaska \n", + "7 31 Washington \n", + "8 2 Oregon \n", + "9 3 Wyoming \n", + "10 2 Louisana \n", + "11 3 Georgia " ] }, - "execution_count": 20, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "army = army.set_index('origin')\n", + "army = pd.DataFrame(data=raw_data)\n", "army" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 4. Set the 'origin' colum as the index of the dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "army.set_index('origin', inplace=True)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -324,10 +329,8 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": false - }, + "execution_count": 5, + "metadata": {}, "outputs": [ { "data": { @@ -348,13 +351,13 @@ "Name: veterans, dtype: int64" ] }, - "execution_count": 12, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "army['veterans']" + "army.veterans" ] }, { @@ -366,15 +369,26 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": false - }, + "execution_count": 6, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -470,13 +484,13 @@ "Georgia 345 35" ] }, - "execution_count": 13, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "army[['veterans', 'deaths']]" + "army[[\"veterans\", \"deaths\"]]" ] }, { @@ -488,20 +502,18 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": false - }, + "execution_count": 7, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index([u'regiment', u'company', u'deaths', u'battles', u'size', u'veterans',\n", - " u'readiness', u'armored', u'deserters'],\n", + "Index(['regiment', 'company', 'deaths', 'battles', 'size', 'veterans',\n", + " 'readiness', 'armored', 'deserters'],\n", " dtype='object')" ] }, - "execution_count": 16, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -519,15 +531,26 @@ }, { "cell_type": "code", - "execution_count": 24, - "metadata": { - "collapsed": false - }, + "execution_count": 8, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -567,14 +590,13 @@ "Alaska 523 987 24" ] }, - "execution_count": 24, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# Select all rows with the index label \"Maine\" and \"Alaska\"\n", - "army.loc[['Maine','Alaska'] , [\"deaths\",\"size\",\"deserters\"]]" + "army.loc[[\"Maine\", \"Alaska\"], [\"deaths\", \"size\", \"deserters\"]]" ] }, { @@ -586,19 +608,31 @@ }, { "cell_type": "code", - "execution_count": 26, - "metadata": { - "collapsed": false - }, + "execution_count": 9, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -608,29 +642,41 @@ " \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", @@ -640,42 +686,53 @@ "" ], "text/plain": [ - " battles size veterans\n", - "origin \n", - "Florida 2 1400 26\n", - "Maine 4 1592 73\n", - "Iowa 7 1006 37\n", - "Alaska 8 987 949" + " deaths battles size veterans\n", + "origin \n", + "Texas 25 2 1099 62\n", + "Florida 616 2 1400 26\n", + "Maine 43 4 1592 73\n", + "Iowa 234 7 1006 37\n", + "Alaska 523 8 987 949" ] }, - "execution_count": 26, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#\n", - "army.iloc[3:7, 3:6]" + "army.iloc[2:7, 2:6]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 10. Select every row after the fourth row" + "### Step 10. Select every row after the fourth row and all columns" ] }, { "cell_type": "code", - "execution_count": 28, - "metadata": { - "collapsed": false - }, + "execution_count": 10, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
deathsbattlessizeveterans
Texas252109962
Florida6162140026
Maine434159273
Iowa2347100637
Alaska5238987949
\n", " \n", " \n", @@ -705,18 +762,6 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -817,21 +862,19 @@ "" ], "text/plain": [ - " regiment company deaths battles size veterans readiness \\\n", - "origin \n", - "Florida Nighthawks 2nd 616 2 1400 26 3 \n", - "Maine Dragoons 1st 43 4 1592 73 2 \n", - "Iowa Dragoons 1st 234 7 1006 37 1 \n", - "Alaska Dragoons 2nd 523 8 987 949 2 \n", - "Washington Dragoons 2nd 62 3 849 48 3 \n", - "Oregon Scouts 1st 62 4 973 48 2 \n", - "Wyoming Scouts 1st 73 7 1005 435 1 \n", - "Louisana Scouts 2nd 37 8 1099 63 2 \n", - "Georgia Scouts 2nd 35 9 1523 345 3 \n", + " regiment company deaths battles size veterans readiness \\\n", + "origin \n", + "Maine Dragoons 1st 43 4 1592 73 2 \n", + "Iowa Dragoons 1st 234 7 1006 37 1 \n", + "Alaska Dragoons 2nd 523 8 987 949 2 \n", + "Washington Dragoons 2nd 62 3 849 48 3 \n", + "Oregon Scouts 1st 62 4 973 48 2 \n", + "Wyoming Scouts 1st 73 7 1005 435 1 \n", + "Louisana Scouts 2nd 37 8 1099 63 2 \n", + "Georgia Scouts 2nd 35 9 1523 345 3 \n", "\n", " armored deserters \n", "origin \n", - "Florida 1 2 \n", "Maine 0 3 \n", "Iowa 1 4 \n", "Alaska 0 24 \n", @@ -842,33 +885,44 @@ "Georgia 1 3 " ] }, - "execution_count": 28, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "army.iloc[3:]" + "army.iloc[4:, :]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 11. Select every row up to the 4th row" + "### Step 11. Select every row up to the 4th row and all columns" ] }, { "cell_type": "code", - "execution_count": 30, - "metadata": { - "collapsed": false - }, + "execution_count": 11, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
FloridaNighthawks2nd6162140026312
MaineDragoons1st
\n", " \n", " \n", @@ -933,6 +987,18 @@ " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", "
131
FloridaNighthawks2nd6162140026312
\n", "
" @@ -943,21 +1009,23 @@ "Arizona Nighthawks 1st 523 5 1045 1 1 \n", "California Nighthawks 1st 52 42 957 5 2 \n", "Texas Nighthawks 2nd 25 2 1099 62 3 \n", + "Florida Nighthawks 2nd 616 2 1400 26 3 \n", "\n", " armored deserters \n", "origin \n", "Arizona 1 4 \n", "California 0 24 \n", - "Texas 1 31 " + "Texas 1 31 \n", + "Florida 1 2 " ] }, - "execution_count": 30, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "army.iloc[:3]" + "army.iloc[:4, :]" ] }, { @@ -969,19 +1037,32 @@ }, { "cell_type": "code", - "execution_count": 32, - "metadata": { - "collapsed": false - }, + "execution_count": 12, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -991,77 +1072,103 @@ " \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", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -1071,32 +1178,29 @@ "" ], "text/plain": [ - " size veterans readiness\n", - "origin \n", - "Arizona 1045 1 1\n", - "California 957 5 2\n", - "Texas 1099 62 3\n", - "Florida 1400 26 3\n", - "Maine 1592 73 2\n", - "Iowa 1006 37 1\n", - "Alaska 987 949 2\n", - "Washington 849 48 3\n", - "Oregon 973 48 2\n", - "Wyoming 1005 435 1\n", - "Louisana 1099 63 2\n", - "Georgia 1523 345 3" + " deaths battles size veterans readiness\n", + "origin \n", + "Arizona 523 5 1045 1 1\n", + "California 52 42 957 5 2\n", + "Texas 25 2 1099 62 3\n", + "Florida 616 2 1400 26 3\n", + "Maine 43 4 1592 73 2\n", + "Iowa 234 7 1006 37 1\n", + "Alaska 523 8 987 949 2\n", + "Washington 62 3 849 48 3\n", + "Oregon 62 4 973 48 2\n", + "Wyoming 73 7 1005 435 1\n", + "Louisana 37 8 1099 63 2\n", + "Georgia 35 9 1523 345 3" ] }, - "execution_count": 32, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# the first : means all\n", - "# after the comma you select the range\n", - "\n", - "army.iloc[: , 4:7]" + "army.iloc[:, 2:7]" ] }, { @@ -1108,15 +1212,26 @@ }, { "cell_type": "code", - "execution_count": 33, - "metadata": { - "collapsed": false - }, + "execution_count": 13, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
deathsbattlessizeveteransreadiness
Arizona5235104511
California524295752
Texas2521099623
Florida61621400263
Maine4341592732
Iowa23471006371
Alaska52389879492
Washington623849483
Oregon624973482
Wyoming73710054351
Louisana3781099632
Georgia35915233453
\n", " \n", " \n", @@ -1269,13 +1384,13 @@ "Wyoming 0 3 " ] }, - "execution_count": 33, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "army[army['deaths'] > 50]" + "army[army[\"deaths\"] > 50]" ] }, { @@ -1287,15 +1402,26 @@ }, { "cell_type": "code", - "execution_count": 35, - "metadata": { - "collapsed": false - }, + "execution_count": 14, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -1434,13 +1560,13 @@ "Georgia 1 3 " ] }, - "execution_count": 35, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "army[(army['deaths'] > 500) | (army['deaths'] < 50)]" + "army[(army[\"deaths\"] > 500) | (army[\"deaths\"] < 50)]" ] }, { @@ -1452,15 +1578,26 @@ }, { "cell_type": "code", - "execution_count": 37, - "metadata": { - "collapsed": false - }, + "execution_count": 15, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -1613,13 +1750,13 @@ "Georgia 1 3 " ] }, - "execution_count": 37, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "army[(army['regiment'] != 'Dragoons')]" + "army[army[\"regiment\"] != \"Dragoons\"]" ] }, { @@ -1631,15 +1768,26 @@ }, { "cell_type": "code", - "execution_count": 38, - "metadata": { - "collapsed": false - }, + "execution_count": 16, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -1669,18 +1817,6 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -1692,6 +1828,18 @@ " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", "
ArizonaNighthawks1st523510451114
TexasNighthawks2nd131
ArizonaNighthawks1st523510451114
\n", "
" @@ -1699,22 +1847,22 @@ "text/plain": [ " regiment company deaths battles size veterans readiness \\\n", "origin \n", - "Arizona Nighthawks 1st 523 5 1045 1 1 \n", "Texas Nighthawks 2nd 25 2 1099 62 3 \n", + "Arizona Nighthawks 1st 523 5 1045 1 1 \n", "\n", " armored deserters \n", "origin \n", - "Arizona 1 4 \n", - "Texas 1 31 " + "Texas 1 31 \n", + "Arizona 1 4 " ] }, - "execution_count": 38, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "army.ix[['Arizona', 'Texas']]" + "army.loc[[\"Texas\", \"Arizona\"], :]" ] }, { @@ -1726,28 +1874,24 @@ }, { "cell_type": "code", - "execution_count": 41, - "metadata": { - "collapsed": false - }, + "execution_count": 17, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "523" + "origin\n", + "Arizona 523\n", + "Name: deaths, dtype: int64" ] }, - "execution_count": 41, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "army.ix['Arizona', 'deaths']\n", - "\n", - "#OR\n", - "\n", - "army.ix['Arizona', 2]" + "army.loc[[\"Arizona\"]].iloc[:, 2]" ] }, { @@ -1759,46 +1903,58 @@ }, { "cell_type": "code", - "execution_count": 43, - "metadata": { - "collapsed": false - }, + "execution_count": 18, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "25" + "deaths 25\n", + "Name: Texas, dtype: int64" ] }, - "execution_count": 43, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "army.ix[2, 'deaths']" + "army.loc[:, [\"deaths\"]].iloc[2]" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/02_Filtering_&_Sorting/Fictional Army/Solutions.ipynb b/02_Filtering_&_Sorting/Fictional Army/Solutions.ipynb index ee76cbeab..9d98ce4c0 100644 --- a/02_Filtering_&_Sorting/Fictional Army/Solutions.ipynb +++ b/02_Filtering_&_Sorting/Fictional Army/Solutions.ipynb @@ -23,11 +23,11 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import pandas as pd" + ] }, { "cell_type": "markdown", @@ -38,10 +38,8 @@ }, { "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": true - }, + "execution_count": 2, + "metadata": {}, "outputs": [], "source": [ "# Create an example dataframe about a fictional army\n", @@ -63,36 +61,31 @@ "source": [ "### Step 3. Create a dataframe and assign it to a variable called army. \n", "\n", - "#### Don't forget to include the columns names" + "#### Don't forget to include the columns names in the order presented in the dictionary ('regiment', 'company', 'deaths'...) so that the column index order is consistent with the solutions. If omitted, pandas will order the columns alphabetically." ] }, { "cell_type": "code", - "execution_count": 19, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", + "execution_count": 3, "metadata": {}, - "source": [ - "### Step 4. Set the 'origin' colum as the index of the dataframe" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "collapsed": false - }, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -106,23 +99,12 @@ " \n", " \n", " \n", - " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -132,9 +114,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -144,9 +127,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -156,9 +140,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -168,9 +153,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -180,9 +166,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -192,9 +179,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -204,9 +192,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -216,9 +205,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -228,9 +218,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -240,9 +231,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -252,9 +244,10 @@ " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -264,49 +257,67 @@ " \n", " \n", " \n", + " \n", " \n", " \n", "
readinessarmoreddeserters
origin
Arizona0Nighthawks1st523114Arizona
California1Nighthawks1st522024California
Texas2Nighthawks2nd253131Texas
Florida3Nighthawks2nd616312Florida
Maine4Dragoons1st43203Maine
Iowa5Dragoons1st234114Iowa
Alaska6Dragoons2nd5232024Alaska
Washington7Dragoons2nd623131Washington
Oregon8Scouts1st62202Oregon
Wyoming9Scouts1st73103Wyoming
Louisana10Scouts2nd37212Louisana
Georgia11Scouts2nd35313Georgia
\n", "
" ], "text/plain": [ - " regiment company deaths battles size veterans readiness \\\n", - "origin \n", - "Arizona Nighthawks 1st 523 5 1045 1 1 \n", - "California Nighthawks 1st 52 42 957 5 2 \n", - "Texas Nighthawks 2nd 25 2 1099 62 3 \n", - "Florida Nighthawks 2nd 616 2 1400 26 3 \n", - "Maine Dragoons 1st 43 4 1592 73 2 \n", - "Iowa Dragoons 1st 234 7 1006 37 1 \n", - "Alaska Dragoons 2nd 523 8 987 949 2 \n", - "Washington Dragoons 2nd 62 3 849 48 3 \n", - "Oregon Scouts 1st 62 4 973 48 2 \n", - "Wyoming Scouts 1st 73 7 1005 435 1 \n", - "Louisana Scouts 2nd 37 8 1099 63 2 \n", - "Georgia Scouts 2nd 35 9 1523 345 3 \n", + " regiment company deaths battles size veterans readiness armored \\\n", + "0 Nighthawks 1st 523 5 1045 1 1 1 \n", + "1 Nighthawks 1st 52 42 957 5 2 0 \n", + "2 Nighthawks 2nd 25 2 1099 62 3 1 \n", + "3 Nighthawks 2nd 616 2 1400 26 3 1 \n", + "4 Dragoons 1st 43 4 1592 73 2 0 \n", + "5 Dragoons 1st 234 7 1006 37 1 1 \n", + "6 Dragoons 2nd 523 8 987 949 2 0 \n", + "7 Dragoons 2nd 62 3 849 48 3 1 \n", + "8 Scouts 1st 62 4 973 48 2 0 \n", + "9 Scouts 1st 73 7 1005 435 1 0 \n", + "10 Scouts 2nd 37 8 1099 63 2 1 \n", + "11 Scouts 2nd 35 9 1523 345 3 1 \n", "\n", - " armored deserters \n", - "origin \n", - "Arizona 1 4 \n", - "California 0 24 \n", - "Texas 1 31 \n", - "Florida 1 2 \n", - "Maine 0 3 \n", - "Iowa 1 4 \n", - "Alaska 0 24 \n", - "Washington 1 31 \n", - "Oregon 0 2 \n", - "Wyoming 0 3 \n", - "Louisana 1 2 \n", - "Georgia 1 3 " + " deserters origin \n", + "0 4 Arizona \n", + "1 24 California \n", + "2 31 Texas \n", + "3 2 Florida \n", + "4 3 Maine \n", + "5 4 Iowa \n", + "6 24 Alaska \n", + "7 31 Washington \n", + "8 2 Oregon \n", + "9 3 Wyoming \n", + "10 2 Louisana \n", + "11 3 Georgia " ] }, - "execution_count": 20, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army = pd.DataFrame(data=raw_data)\n", + "army" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 4. Set the 'origin' colum as the index of the dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "army.set_index('origin', inplace=True)" + ] }, { "cell_type": "markdown", @@ -317,10 +328,8 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": false - }, + "execution_count": 5, + "metadata": {}, "outputs": [ { "data": { @@ -341,12 +350,14 @@ "Name: veterans, dtype: int64" ] }, - "execution_count": 12, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army.veterans" + ] }, { "cell_type": "markdown", @@ -357,15 +368,26 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": false - }, + "execution_count": 6, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -461,12 +483,14 @@ "Georgia 345 35" ] }, - "execution_count": 13, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army[[\"veterans\", \"deaths\"]]" + ] }, { "cell_type": "markdown", @@ -477,25 +501,25 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": false - }, + "execution_count": 7, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index([u'regiment', u'company', u'deaths', u'battles', u'size', u'veterans',\n", - " u'readiness', u'armored', u'deserters'],\n", + "Index(['regiment', 'company', 'deaths', 'battles', 'size', 'veterans',\n", + " 'readiness', 'armored', 'deserters'],\n", " dtype='object')" ] }, - "execution_count": 16, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army.columns" + ] }, { "cell_type": "markdown", @@ -506,15 +530,26 @@ }, { "cell_type": "code", - "execution_count": 24, - "metadata": { - "collapsed": false - }, + "execution_count": 8, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -554,12 +589,14 @@ "Alaska 523 987 24" ] }, - "execution_count": 24, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army.loc[[\"Maine\", \"Alaska\"], [\"deaths\", \"size\", \"deserters\"]]" + ] }, { "cell_type": "markdown", @@ -570,19 +607,31 @@ }, { "cell_type": "code", - "execution_count": 26, - "metadata": { - "collapsed": false - }, + "execution_count": 9, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -592,29 +641,41 @@ " \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", @@ -624,39 +685,53 @@ "" ], "text/plain": [ - " battles size veterans\n", - "origin \n", - "Florida 2 1400 26\n", - "Maine 4 1592 73\n", - "Iowa 7 1006 37\n", - "Alaska 8 987 949" + " deaths battles size veterans\n", + "origin \n", + "Texas 25 2 1099 62\n", + "Florida 616 2 1400 26\n", + "Maine 43 4 1592 73\n", + "Iowa 234 7 1006 37\n", + "Alaska 523 8 987 949" ] }, - "execution_count": 26, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army.iloc[2:7, 2:6]" + ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 10. Select every row after the fourth row" + "### Step 10. Select every row after the fourth row and all columns" ] }, { "cell_type": "code", - "execution_count": 28, - "metadata": { - "collapsed": false - }, + "execution_count": 10, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
deathsbattlessizeveterans
Texas252109962
Florida6162140026
Maine434159273
Iowa2347100637
Alaska5238987949
\n", " \n", " \n", @@ -686,18 +761,6 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -798,21 +861,19 @@ "" ], "text/plain": [ - " regiment company deaths battles size veterans readiness \\\n", - "origin \n", - "Florida Nighthawks 2nd 616 2 1400 26 3 \n", - "Maine Dragoons 1st 43 4 1592 73 2 \n", - "Iowa Dragoons 1st 234 7 1006 37 1 \n", - "Alaska Dragoons 2nd 523 8 987 949 2 \n", - "Washington Dragoons 2nd 62 3 849 48 3 \n", - "Oregon Scouts 1st 62 4 973 48 2 \n", - "Wyoming Scouts 1st 73 7 1005 435 1 \n", - "Louisana Scouts 2nd 37 8 1099 63 2 \n", - "Georgia Scouts 2nd 35 9 1523 345 3 \n", + " regiment company deaths battles size veterans readiness \\\n", + "origin \n", + "Maine Dragoons 1st 43 4 1592 73 2 \n", + "Iowa Dragoons 1st 234 7 1006 37 1 \n", + "Alaska Dragoons 2nd 523 8 987 949 2 \n", + "Washington Dragoons 2nd 62 3 849 48 3 \n", + "Oregon Scouts 1st 62 4 973 48 2 \n", + "Wyoming Scouts 1st 73 7 1005 435 1 \n", + "Louisana Scouts 2nd 37 8 1099 63 2 \n", + "Georgia Scouts 2nd 35 9 1523 345 3 \n", "\n", " armored deserters \n", "origin \n", - "Florida 1 2 \n", "Maine 0 3 \n", "Iowa 1 4 \n", "Alaska 0 24 \n", @@ -823,31 +884,44 @@ "Georgia 1 3 " ] }, - "execution_count": 28, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army.iloc[4:, :]" + ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 11. Select every row up to the 4th row" + "### Step 11. Select every row up to the 4th row and all columns" ] }, { "cell_type": "code", - "execution_count": 30, - "metadata": { - "collapsed": false - }, + "execution_count": 11, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
FloridaNighthawks2nd6162140026312
MaineDragoons1st
\n", " \n", " \n", @@ -912,6 +986,18 @@ " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", "
131
FloridaNighthawks2nd6162140026312
\n", "
" @@ -922,20 +1008,24 @@ "Arizona Nighthawks 1st 523 5 1045 1 1 \n", "California Nighthawks 1st 52 42 957 5 2 \n", "Texas Nighthawks 2nd 25 2 1099 62 3 \n", + "Florida Nighthawks 2nd 616 2 1400 26 3 \n", "\n", " armored deserters \n", "origin \n", "Arizona 1 4 \n", "California 0 24 \n", - "Texas 1 31 " + "Texas 1 31 \n", + "Florida 1 2 " ] }, - "execution_count": 30, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army.iloc[:4, :]" + ] }, { "cell_type": "markdown", @@ -946,19 +1036,32 @@ }, { "cell_type": "code", - "execution_count": 32, - "metadata": { - "collapsed": false - }, + "execution_count": 12, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -968,77 +1071,103 @@ " \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", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -1048,28 +1177,30 @@ "" ], "text/plain": [ - " size veterans readiness\n", - "origin \n", - "Arizona 1045 1 1\n", - "California 957 5 2\n", - "Texas 1099 62 3\n", - "Florida 1400 26 3\n", - "Maine 1592 73 2\n", - "Iowa 1006 37 1\n", - "Alaska 987 949 2\n", - "Washington 849 48 3\n", - "Oregon 973 48 2\n", - "Wyoming 1005 435 1\n", - "Louisana 1099 63 2\n", - "Georgia 1523 345 3" + " deaths battles size veterans readiness\n", + "origin \n", + "Arizona 523 5 1045 1 1\n", + "California 52 42 957 5 2\n", + "Texas 25 2 1099 62 3\n", + "Florida 616 2 1400 26 3\n", + "Maine 43 4 1592 73 2\n", + "Iowa 234 7 1006 37 1\n", + "Alaska 523 8 987 949 2\n", + "Washington 62 3 849 48 3\n", + "Oregon 62 4 973 48 2\n", + "Wyoming 73 7 1005 435 1\n", + "Louisana 37 8 1099 63 2\n", + "Georgia 35 9 1523 345 3" ] }, - "execution_count": 32, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army.iloc[:, 2:7]" + ] }, { "cell_type": "markdown", @@ -1080,15 +1211,26 @@ }, { "cell_type": "code", - "execution_count": 33, - "metadata": { - "collapsed": false - }, + "execution_count": 13, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
deathsbattlessizeveteransreadiness
Arizona5235104511
California524295752
Texas2521099623
Florida61621400263
Maine4341592732
Iowa23471006371
Alaska52389879492
Washington623849483
Oregon624973482
Wyoming73710054351
Louisana3781099632
Georgia35915233453
\n", " \n", " \n", @@ -1241,12 +1383,14 @@ "Wyoming 0 3 " ] }, - "execution_count": 33, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army[army[\"deaths\"] > 50]" + ] }, { "cell_type": "markdown", @@ -1257,15 +1401,26 @@ }, { "cell_type": "code", - "execution_count": 35, - "metadata": { - "collapsed": false - }, + "execution_count": 14, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -1404,12 +1559,14 @@ "Georgia 1 3 " ] }, - "execution_count": 35, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army[(army[\"deaths\"] > 500) | (army[\"deaths\"] < 50)]" + ] }, { "cell_type": "markdown", @@ -1420,15 +1577,26 @@ }, { "cell_type": "code", - "execution_count": 37, - "metadata": { - "collapsed": false - }, + "execution_count": 15, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -1581,12 +1749,14 @@ "Georgia 1 3 " ] }, - "execution_count": 37, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army[army[\"regiment\"] != \"Dragoons\"]" + ] }, { "cell_type": "markdown", @@ -1597,15 +1767,26 @@ }, { "cell_type": "code", - "execution_count": 38, - "metadata": { - "collapsed": false - }, + "execution_count": 16, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -1635,18 +1816,6 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -1658,6 +1827,18 @@ " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", "
ArizonaNighthawks1st523510451114
TexasNighthawks2nd131
ArizonaNighthawks1st523510451114
\n", "
" @@ -1665,21 +1846,23 @@ "text/plain": [ " regiment company deaths battles size veterans readiness \\\n", "origin \n", - "Arizona Nighthawks 1st 523 5 1045 1 1 \n", "Texas Nighthawks 2nd 25 2 1099 62 3 \n", + "Arizona Nighthawks 1st 523 5 1045 1 1 \n", "\n", " armored deserters \n", "origin \n", - "Arizona 1 4 \n", - "Texas 1 31 " + "Texas 1 31 \n", + "Arizona 1 4 " ] }, - "execution_count": 38, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army.loc[[\"Texas\", \"Arizona\"], :]" + ] }, { "cell_type": "markdown", @@ -1690,23 +1873,25 @@ }, { "cell_type": "code", - "execution_count": 41, - "metadata": { - "collapsed": false - }, + "execution_count": 17, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "523" + "origin\n", + "Arizona 523\n", + "Name: deaths, dtype: int64" ] }, - "execution_count": 41, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army.loc[[\"Arizona\"]].iloc[:, 2]" + ] }, { "cell_type": "markdown", @@ -1717,44 +1902,45 @@ }, { "cell_type": "code", - "execution_count": 43, - "metadata": { - "collapsed": false - }, + "execution_count": 18, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "25" + "deaths 25\n", + "Name: Texas, dtype: int64" ] }, - "execution_count": 43, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "army.loc[:, [\"deaths\"]].iloc[2]" + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/03_Grouping/Alcohol_Consumption/Exercise.ipynb b/03_Grouping/Alcohol_Consumption/Exercise.ipynb index 7ca680cec..d49a518b5 100644 --- a/03_Grouping/Alcohol_Consumption/Exercise.ipynb +++ b/03_Grouping/Alcohol_Consumption/Exercise.ipynb @@ -13,7 +13,7 @@ "source": [ "### Introduction:\n", "\n", - "GroupBy can be summarizes as Split-Apply-Combine.\n", + "GroupBy can be summarized as Split-Apply-Combine.\n", "\n", "Special thanks to: https://github.com/justmarkham for sharing the dataset and materials.\n", "\n", @@ -24,9 +24,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -47,9 +45,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -63,9 +59,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -79,9 +73,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -89,15 +81,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Print the mean alcoohol consumption per continent for every column" + "### Step 6. Print the mean alcohol consumption per continent for every column" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -105,15 +95,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 7. Print the median alcoohol consumption per continent for every column" + "### Step 7. Print the median alcohol consumption per continent for every column" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -128,9 +116,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] } @@ -151,9 +137,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.16" } }, "nbformat": 4, "nbformat_minor": 0 -} \ No newline at end of file +} diff --git a/03_Grouping/Alcohol_Consumption/Exercise_with_solutions.ipynb b/03_Grouping/Alcohol_Consumption/Exercise_with_solutions.ipynb index 55258575d..841a5af59 100644 --- a/03_Grouping/Alcohol_Consumption/Exercise_with_solutions.ipynb +++ b/03_Grouping/Alcohol_Consumption/Exercise_with_solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Ex - GroupBy" + "# Ex - GroupBy\n", + "\n", + "Check out [Alcohol Consumption Exercises Video Tutorial](https://youtu.be/az67CMdmS6s) to watch a data scientist go through the exercises" ] }, { @@ -13,7 +15,7 @@ "source": [ "### Introduction:\n", "\n", - "GroupBy can be summarizes as Split-Apply-Combine.\n", + "GroupBy can be summarized as Split-Apply-Combine.\n", "\n", "Special thanks to: https://github.com/justmarkham for sharing the dataset and materials.\n", "\n", @@ -24,9 +26,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd" @@ -49,9 +49,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -155,9 +153,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -190,9 +186,7 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -254,15 +248,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Print the mean alcoohol consumption per continent for every column" + "### Step 6. Print the mean alcohol consumption per continent for every column" ] }, { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -356,15 +348,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 7. Print the median alcoohol consumption per continent for every column" + "### Step 7. Print the median alcohol consumption per continent for every column" ] }, { "cell_type": "code", "execution_count": 14, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -465,9 +455,7 @@ { "cell_type": "code", "execution_count": 15, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -545,23 +533,36 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file + "nbformat_minor": 1 +} diff --git a/03_Grouping/Alcohol_Consumption/Solutions.ipynb b/03_Grouping/Alcohol_Consumption/Solutions.ipynb index 42e9a809d..3783e0b23 100644 --- a/03_Grouping/Alcohol_Consumption/Solutions.ipynb +++ b/03_Grouping/Alcohol_Consumption/Solutions.ipynb @@ -13,7 +13,7 @@ "source": [ "### Introduction:\n", "\n", - "GroupBy can be summarizes as Split-Apply-Combine.\n", + "GroupBy can be summarized as Split-Apply-Combine.\n", "\n", "Special thanks to: https://github.com/justmarkham for sharing the dataset and materials.\n", "\n", @@ -24,9 +24,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -47,9 +45,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -150,9 +146,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -183,9 +177,7 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -245,15 +237,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Print the mean alcoohol consumption per continent for every column" + "### Step 6. Print the mean alcohol consumption per continent for every column" ] }, { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -345,15 +335,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 7. Print the median alcoohol consumption per continent for every column" + "### Step 7. Print the median alcohol consumption per continent for every column" ] }, { "cell_type": "code", "execution_count": 14, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -452,9 +440,7 @@ { "cell_type": "code", "execution_count": 15, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -544,9 +530,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.16" } }, "nbformat": 4, "nbformat_minor": 0 -} \ No newline at end of file +} diff --git a/03_Grouping/Occupation/Exercises_with_solutions.ipynb b/03_Grouping/Occupation/Exercises_with_solutions.ipynb index 9fb68d237..1f8e419c5 100644 --- a/03_Grouping/Occupation/Exercises_with_solutions.ipynb +++ b/03_Grouping/Occupation/Exercises_with_solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Occupation" + "# Occupation\n", + "\n", + "Check out [Occupation Exercises Video Tutorial](https://youtu.be/jL3EVCoYIJQ) to watch a data scientist go through the exercises" ] }, { @@ -21,9 +23,7 @@ { "cell_type": "code", "execution_count": 64, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd" @@ -46,9 +46,7 @@ { "cell_type": "code", "execution_count": 65, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -142,9 +140,7 @@ { "cell_type": "code", "execution_count": 66, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -193,9 +189,7 @@ { "cell_type": "code", "execution_count": 150, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -257,9 +251,7 @@ { "cell_type": "code", "execution_count": 151, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -433,9 +425,7 @@ { "cell_type": "code", "execution_count": 152, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -504,9 +494,7 @@ { "cell_type": "code", "execution_count": 154, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -578,23 +566,36 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/03_Grouping/Regiment/Exercises.ipynb b/03_Grouping/Regiment/Exercises.ipynb index 98f544eba..abf1c126b 100644 --- a/03_Grouping/Regiment/Exercises.ipynb +++ b/03_Grouping/Regiment/Exercises.ipynb @@ -102,7 +102,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. What is the mean each company's preTestScore?" + "### Step 6. What is the mean of each company's preTestScore?" ] }, { diff --git a/03_Grouping/Regiment/Exercises_solutions.ipynb b/03_Grouping/Regiment/Exercises_solutions.ipynb index fa2b19220..00e825065 100644 --- a/03_Grouping/Regiment/Exercises_solutions.ipynb +++ b/03_Grouping/Regiment/Exercises_solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Regiment" + "# Regiment\n", + "\n", + "Check out [Regiment Exercises Video Tutorial](https://youtu.be/MFZ3uakwAEk) to watch a data scientist go through the exercises" ] }, { @@ -21,9 +23,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd" @@ -62,9 +62,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -218,9 +216,7 @@ { "cell_type": "code", "execution_count": 26, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -286,9 +282,7 @@ { "cell_type": "code", "execution_count": 29, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -430,15 +424,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. What is the mean each company's preTestScore?" + "### Step 6. What is the mean of each company's preTestScore?" ] }, { "cell_type": "code", "execution_count": 33, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -468,9 +460,7 @@ { "cell_type": "code", "execution_count": 35, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -504,9 +494,7 @@ { "cell_type": "code", "execution_count": 36, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -572,9 +560,7 @@ { "cell_type": "code", "execution_count": 37, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -663,9 +649,7 @@ { "cell_type": "code", "execution_count": 41, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -699,9 +683,7 @@ { "cell_type": "code", "execution_count": 50, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -740,23 +722,36 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/03_Grouping/Regiment/Solutions.ipynb b/03_Grouping/Regiment/Solutions.ipynb index cdb0dc7b0..53fe58be1 100644 --- a/03_Grouping/Regiment/Solutions.ipynb +++ b/03_Grouping/Regiment/Solutions.ipynb @@ -421,7 +421,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. What is the mean each company's preTestScore?" + "### Step 6. What is the mean of each company's preTestScore?" ] }, { diff --git a/04_Apply/Students_Alcohol_Consumption/Exercises.ipynb b/04_Apply/Students_Alcohol_Consumption/Exercises.ipynb index f8aa25bcf..052017f1d 100644 --- a/04_Apply/Students_Alcohol_Consumption/Exercises.ipynb +++ b/04_Apply/Students_Alcohol_Consumption/Exercises.ipynb @@ -31,7 +31,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://github.com/guipsamora/pandas_exercises/blob/master/04_Apply/Students_Alcohol_Consumption/student-mat.csv)." + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/04_Apply/Students_Alcohol_Consumption/student-mat.csv)." ] }, { @@ -70,7 +70,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 5. Create a lambda function that captalize strings." + "### Step 5. Create a lambda function that will capitalize strings." ] }, { @@ -118,7 +118,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 8. Did you notice the original dataframe is still lowercase? Why is that? Fix it and captalize Mjob and Fjob." + "### Step 8. Did you notice the original dataframe is still lowercase? Why is that? Fix it and capitalize Mjob and Fjob." ] }, { @@ -134,7 +134,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. Create a function called majority that return a boolean value to a new column called legal_drinker" + "### Step 9. Create a function called majority that returns a boolean value to a new column called legal_drinker (Consider majority as older than 17 years old)" ] }, { diff --git a/04_Apply/Students_Alcohol_Consumption/Exercises_with_solutions.ipynb b/04_Apply/Students_Alcohol_Consumption/Exercises_with_solutions.ipynb index f64ac64b5..41645d028 100644 --- a/04_Apply/Students_Alcohol_Consumption/Exercises_with_solutions.ipynb +++ b/04_Apply/Students_Alcohol_Consumption/Exercises_with_solutions.ipynb @@ -20,7 +20,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 1, "metadata": { "collapsed": false }, @@ -34,7 +34,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://github.com/guipsamora/pandas_exercises/blob/master/04_Apply/Students_Alcohol_Consumption/student-mat.csv)." + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/04_Apply/Students_Alcohol_Consumption/student-mat.csv)." ] }, { @@ -46,7 +46,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 2, "metadata": { "collapsed": false, "scrolled": false @@ -227,13 +227,14 @@ "[5 rows x 33 columns]" ] }, - "execution_count": 25, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df = pd.read_csv('/Users/guilhermeoliveira/Desktop/student/student-mat.csv', sep = ';')\n", + "csv_url = 'https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/04_Apply/Students_Alcohol_Consumption/student-mat.csv'\n", + "df = pd.read_csv(csv_url)\n", "df.head()" ] }, @@ -246,7 +247,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -369,7 +370,7 @@ "4 home father " ] }, - "execution_count": 26, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -383,18 +384,18 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 5. Create a lambda function that captalize strings." + "### Step 5. Create a lambda function that will capitalize strings." ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ - "captalizer = lambda x: x.upper()" + "capitalizer = lambda x: x.capitalize()" ] }, { @@ -406,7 +407,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -414,78 +415,78 @@ { "data": { "text/plain": [ - "0 TEACHER\n", - "1 OTHER\n", - "2 OTHER\n", - "3 SERVICES\n", - "4 OTHER\n", - "5 OTHER\n", - "6 OTHER\n", - "7 TEACHER\n", - "8 OTHER\n", - "9 OTHER\n", - "10 HEALTH\n", - "11 OTHER\n", - "12 SERVICES\n", - "13 OTHER\n", - "14 OTHER\n", - "15 OTHER\n", - "16 SERVICES\n", - "17 OTHER\n", - "18 SERVICES\n", - "19 OTHER\n", - "20 OTHER\n", - "21 HEALTH\n", - "22 OTHER\n", - "23 OTHER\n", - "24 HEALTH\n", - "25 SERVICES\n", - "26 OTHER\n", - "27 SERVICES\n", - "28 OTHER\n", - "29 TEACHER\n", + "0 Teacher\n", + "1 Other\n", + "2 Other\n", + "3 Services\n", + "4 Other\n", + "5 Other\n", + "6 Other\n", + "7 Teacher\n", + "8 Other\n", + "9 Other\n", + "10 Health\n", + "11 Other\n", + "12 Services\n", + "13 Other\n", + "14 Other\n", + "15 Other\n", + "16 Services\n", + "17 Other\n", + "18 Services\n", + "19 Other\n", + "20 Other\n", + "21 Health\n", + "22 Other\n", + "23 Other\n", + "24 Health\n", + "25 Services\n", + "26 Other\n", + "27 Services\n", + "28 Other\n", + "29 Teacher\n", " ... \n", - "365 OTHER\n", - "366 SERVICES\n", - "367 SERVICES\n", - "368 SERVICES\n", - "369 TEACHER\n", - "370 SERVICES\n", - "371 SERVICES\n", - "372 AT_HOME\n", - "373 OTHER\n", - "374 OTHER\n", - "375 OTHER\n", - "376 OTHER\n", - "377 SERVICES\n", - "378 OTHER\n", - "379 OTHER\n", - "380 TEACHER\n", - "381 OTHER\n", - "382 SERVICES\n", - "383 SERVICES\n", - "384 OTHER\n", - "385 OTHER\n", - "386 AT_HOME\n", - "387 OTHER\n", - "388 SERVICES\n", - "389 OTHER\n", - "390 SERVICES\n", - "391 SERVICES\n", - "392 OTHER\n", - "393 OTHER\n", - "394 AT_HOME\n", + "365 Other\n", + "366 Services\n", + "367 Services\n", + "368 Services\n", + "369 Teacher\n", + "370 Services\n", + "371 Services\n", + "372 At_home\n", + "373 Other\n", + "374 Other\n", + "375 Other\n", + "376 Other\n", + "377 Services\n", + "378 Other\n", + "379 Other\n", + "380 Teacher\n", + "381 Other\n", + "382 Services\n", + "383 Services\n", + "384 Other\n", + "385 Other\n", + "386 At_home\n", + "387 Other\n", + "388 Services\n", + "389 Other\n", + "390 Services\n", + "391 Services\n", + "392 Other\n", + "393 Other\n", + "394 At_home\n", "Name: Fjob, dtype: object" ] }, - "execution_count": 28, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "stud_alcoh['Mjob'].apply(captalizer)\n", - "stud_alcoh['Fjob'].apply(captalizer)" + "stud_alcoh['Mjob'].apply(capitalizer)\n", + "stud_alcoh['Fjob'].apply(capitalizer)" ] }, { @@ -497,7 +498,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -620,7 +621,7 @@ "394 course father " ] }, - "execution_count": 29, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -633,12 +634,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 8. Did you notice the original dataframe is still lowercase? Why is that? Fix it and captalize Mjob and Fjob." + "### Step 8. Did you notice the original dataframe is still lowercase? Why is that? Fix it and capitalize Mjob and Fjob." ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -676,8 +677,8 @@ " A\n", " 2\n", " 2\n", - " SERVICES\n", - " SERVICES\n", + " Services\n", + " Services\n", " course\n", " other\n", " \n", @@ -691,8 +692,8 @@ " T\n", " 3\n", " 1\n", - " SERVICES\n", - " SERVICES\n", + " Services\n", + " Services\n", " course\n", " mother\n", " \n", @@ -706,8 +707,8 @@ " T\n", " 1\n", " 1\n", - " OTHER\n", - " OTHER\n", + " Other\n", + " Other\n", " course\n", " other\n", " \n", @@ -721,8 +722,8 @@ " T\n", " 3\n", " 2\n", - " SERVICES\n", - " OTHER\n", + " Services\n", + " Other\n", " course\n", " mother\n", " \n", @@ -736,8 +737,8 @@ " T\n", " 1\n", " 1\n", - " OTHER\n", - " AT_HOME\n", + " Other\n", + " At_home\n", " course\n", " father\n", " \n", @@ -747,11 +748,11 @@ ], "text/plain": [ " school sex age address famsize Pstatus Medu Fedu Mjob Fjob \\\n", - "390 MS M 20 U LE3 A 2 2 SERVICES SERVICES \n", - "391 MS M 17 U LE3 T 3 1 SERVICES SERVICES \n", - "392 MS M 21 R GT3 T 1 1 OTHER OTHER \n", - "393 MS M 18 R LE3 T 3 2 SERVICES OTHER \n", - "394 MS M 19 U LE3 T 1 1 OTHER AT_HOME \n", + "390 MS M 20 U LE3 A 2 2 Services Services \n", + "391 MS M 17 U LE3 T 3 1 Services Services \n", + "392 MS M 21 R GT3 T 1 1 Other Other \n", + "393 MS M 18 R LE3 T 3 2 Services Other \n", + "394 MS M 19 U LE3 T 1 1 Other At_home \n", "\n", " reason guardian \n", "390 course other \n", @@ -761,14 +762,14 @@ "394 course father " ] }, - "execution_count": 30, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "stud_alcoh['Mjob'] = stud_alcoh['Mjob'].apply(captalizer)\n", - "stud_alcoh['Fjob'] = stud_alcoh['Fjob'].apply(captalizer)\n", + "stud_alcoh['Mjob'] = stud_alcoh['Mjob'].apply(capitalizer)\n", + "stud_alcoh['Fjob'] = stud_alcoh['Fjob'].apply(capitalizer)\n", "stud_alcoh.tail()" ] }, @@ -776,12 +777,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. Create a function called majority that return a boolean value to a new column called legal_drinker" + "### Step 9. Create a function called majority that returns a boolean value to a new column called legal_drinker (Consider majority as older than 17 years old)" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -796,7 +797,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -835,8 +836,8 @@ " A\n", " 4\n", " 4\n", - " AT_HOME\n", - " TEACHER\n", + " At_home\n", + " Teacher\n", " course\n", " mother\n", " True\n", @@ -851,8 +852,8 @@ " T\n", " 1\n", " 1\n", - " AT_HOME\n", - " OTHER\n", + " At_home\n", + " Other\n", " course\n", " father\n", " False\n", @@ -867,8 +868,8 @@ " T\n", " 1\n", " 1\n", - " AT_HOME\n", - " OTHER\n", + " At_home\n", + " Other\n", " other\n", " mother\n", " False\n", @@ -883,8 +884,8 @@ " T\n", " 4\n", " 2\n", - " HEALTH\n", - " SERVICES\n", + " Health\n", + " Services\n", " home\n", " mother\n", " False\n", @@ -899,8 +900,8 @@ " T\n", " 3\n", " 3\n", - " OTHER\n", - " OTHER\n", + " Other\n", + " Other\n", " home\n", " father\n", " False\n", @@ -911,11 +912,11 @@ ], "text/plain": [ " school sex age address famsize Pstatus Medu Fedu Mjob Fjob \\\n", - "0 GP F 18 U GT3 A 4 4 AT_HOME TEACHER \n", - "1 GP F 17 U GT3 T 1 1 AT_HOME OTHER \n", - "2 GP F 15 U LE3 T 1 1 AT_HOME OTHER \n", - "3 GP F 15 U GT3 T 4 2 HEALTH SERVICES \n", - "4 GP F 16 U GT3 T 3 3 OTHER OTHER \n", + "0 GP F 18 U GT3 A 4 4 At_home Teacher \n", + "1 GP F 17 U GT3 T 1 1 At_home Other \n", + "2 GP F 15 U LE3 T 1 1 At_home Other \n", + "3 GP F 15 U GT3 T 4 2 Health Services \n", + "4 GP F 16 U GT3 T 3 3 Other Other \n", "\n", " reason guardian legal_drinker \n", "0 course mother True \n", @@ -925,7 +926,7 @@ "4 home father False " ] }, - "execution_count": 32, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -945,24 +946,21 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def times10(x):\n", - " if type(x) is str:\n", - " return x\n", - " elif type(x) is numpy.int64:\n", + " if type(x) is int:\n", " return 10 * x\n", - " else:\n", - " return" + " return x" ] }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -1001,11 +999,11 @@ " A\n", " 40\n", " 40\n", - " AT_HOME\n", - " TEACHER\n", + " At_home\n", + " Teacher\n", " course\n", " mother\n", - " None\n", + " True\n", " \n", " \n", " 1\n", @@ -1017,11 +1015,11 @@ " T\n", " 10\n", " 10\n", - " AT_HOME\n", - " OTHER\n", + " At_home\n", + " Other\n", " course\n", " father\n", - " None\n", + " False\n", " \n", " \n", " 2\n", @@ -1033,11 +1031,11 @@ " T\n", " 10\n", " 10\n", - " AT_HOME\n", - " OTHER\n", + " At_home\n", + " Other\n", " other\n", " mother\n", - " None\n", + " False\n", " \n", " \n", " 3\n", @@ -1049,11 +1047,11 @@ " T\n", " 40\n", " 20\n", - " HEALTH\n", - " SERVICES\n", + " Health\n", + " Services\n", " home\n", " mother\n", - " None\n", + " False\n", " \n", " \n", " 4\n", @@ -1065,11 +1063,11 @@ " T\n", " 30\n", " 30\n", - " OTHER\n", - " OTHER\n", + " Other\n", + " Other\n", " home\n", " father\n", - " None\n", + " False\n", " \n", " \n", " 5\n", @@ -1081,11 +1079,11 @@ " T\n", " 40\n", " 30\n", - " SERVICES\n", - " OTHER\n", + " Services\n", + " Other\n", " reputation\n", " mother\n", - " None\n", + " False\n", " \n", " \n", " 6\n", @@ -1097,11 +1095,11 @@ " T\n", " 20\n", " 20\n", - " OTHER\n", - " OTHER\n", + " Other\n", + " Other\n", " home\n", " mother\n", - " None\n", + " False\n", " \n", " \n", " 7\n", @@ -1113,11 +1111,11 @@ " A\n", " 40\n", " 40\n", - " OTHER\n", - " TEACHER\n", + " Other\n", + " Teacher\n", " home\n", " mother\n", - " None\n", + " False\n", " \n", " \n", " 8\n", @@ -1129,11 +1127,11 @@ " A\n", " 30\n", " 20\n", - " SERVICES\n", - " OTHER\n", + " Services\n", + " Other\n", " home\n", " mother\n", - " None\n", + " False\n", " \n", " \n", " 9\n", @@ -1145,11 +1143,11 @@ " T\n", " 30\n", " 40\n", - " OTHER\n", - " OTHER\n", + " Other\n", + " Other\n", " home\n", " mother\n", - " None\n", + " False\n", " \n", " \n", "\n", @@ -1157,31 +1155,31 @@ ], "text/plain": [ " school sex age address famsize Pstatus Medu Fedu Mjob Fjob \\\n", - "0 GP F 180 U GT3 A 40 40 AT_HOME TEACHER \n", - "1 GP F 170 U GT3 T 10 10 AT_HOME OTHER \n", - "2 GP F 150 U LE3 T 10 10 AT_HOME OTHER \n", - "3 GP F 150 U GT3 T 40 20 HEALTH SERVICES \n", - "4 GP F 160 U GT3 T 30 30 OTHER OTHER \n", - "5 GP M 160 U LE3 T 40 30 SERVICES OTHER \n", - "6 GP M 160 U LE3 T 20 20 OTHER OTHER \n", - "7 GP F 170 U GT3 A 40 40 OTHER TEACHER \n", - "8 GP M 150 U LE3 A 30 20 SERVICES OTHER \n", - "9 GP M 150 U GT3 T 30 40 OTHER OTHER \n", + "0 GP F 180 U GT3 A 40 40 At_home Teacher \n", + "1 GP F 170 U GT3 T 10 10 At_home Other \n", + "2 GP F 150 U LE3 T 10 10 At_home Other \n", + "3 GP F 150 U GT3 T 40 20 Health Services \n", + "4 GP F 160 U GT3 T 30 30 Other Other \n", + "5 GP M 160 U LE3 T 40 30 Services Other \n", + "6 GP M 160 U LE3 T 20 20 Other Other \n", + "7 GP F 170 U GT3 A 40 40 Other Teacher \n", + "8 GP M 150 U LE3 A 30 20 Services Other \n", + "9 GP M 150 U GT3 T 30 40 Other Other \n", "\n", " reason guardian legal_drinker \n", - "0 course mother None \n", - "1 course father None \n", - "2 other mother None \n", - "3 home mother None \n", - "4 home father None \n", - "5 reputation mother None \n", - "6 home mother None \n", - "7 home mother None \n", - "8 home mother None \n", - "9 home mother None " + "0 course mother True \n", + "1 course father False \n", + "2 other mother False \n", + "3 home mother False \n", + "4 home father False \n", + "5 reputation mother False \n", + "6 home mother False \n", + "7 home mother False \n", + "8 home mother False \n", + "9 home mother False " ] }, - "execution_count": 42, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -1192,6 +1190,7 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "language": "python", diff --git a/04_Apply/Students_Alcohol_Consumption/Solutions.ipynb b/04_Apply/Students_Alcohol_Consumption/Solutions.ipynb index 5faf2f470..e7ec9f4a3 100644 --- a/04_Apply/Students_Alcohol_Consumption/Solutions.ipynb +++ b/04_Apply/Students_Alcohol_Consumption/Solutions.ipynb @@ -20,21 +20,18 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy" - ] + "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://github.com/guipsamora/pandas_exercises/blob/master/04_Apply/Students_Alcohol_Consumption/student-mat.csv)." + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/04_Apply/Students_Alcohol_Consumption/student-mat.csv)." ] }, { @@ -46,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 2, "metadata": { "collapsed": false, "scrolled": false @@ -227,7 +224,7 @@ "[5 rows x 33 columns]" ] }, - "execution_count": 25, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -243,7 +240,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -366,7 +363,7 @@ "4 home father " ] }, - "execution_count": 26, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -377,12 +374,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 5. Create a lambda function that captalize strings." + "### Step 5. Create a lambda function that will capitalize strings." ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -398,7 +395,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -406,71 +403,71 @@ { "data": { "text/plain": [ - "0 TEACHER\n", - "1 OTHER\n", - "2 OTHER\n", - "3 SERVICES\n", - "4 OTHER\n", - "5 OTHER\n", - "6 OTHER\n", - "7 TEACHER\n", - "8 OTHER\n", - "9 OTHER\n", - "10 HEALTH\n", - "11 OTHER\n", - "12 SERVICES\n", - "13 OTHER\n", - "14 OTHER\n", - "15 OTHER\n", - "16 SERVICES\n", - "17 OTHER\n", - "18 SERVICES\n", - "19 OTHER\n", - "20 OTHER\n", - "21 HEALTH\n", - "22 OTHER\n", - "23 OTHER\n", - "24 HEALTH\n", - "25 SERVICES\n", - "26 OTHER\n", - "27 SERVICES\n", - "28 OTHER\n", - "29 TEACHER\n", + "0 Teacher\n", + "1 Other\n", + "2 Other\n", + "3 Services\n", + "4 Other\n", + "5 Other\n", + "6 Other\n", + "7 Teacher\n", + "8 Other\n", + "9 Other\n", + "10 Health\n", + "11 Other\n", + "12 Services\n", + "13 Other\n", + "14 Other\n", + "15 Other\n", + "16 Services\n", + "17 Other\n", + "18 Services\n", + "19 Other\n", + "20 Other\n", + "21 Health\n", + "22 Other\n", + "23 Other\n", + "24 Health\n", + "25 Services\n", + "26 Other\n", + "27 Services\n", + "28 Other\n", + "29 Teacher\n", " ... \n", - "365 OTHER\n", - "366 SERVICES\n", - "367 SERVICES\n", - "368 SERVICES\n", - "369 TEACHER\n", - "370 SERVICES\n", - "371 SERVICES\n", - "372 AT_HOME\n", - "373 OTHER\n", - "374 OTHER\n", - "375 OTHER\n", - "376 OTHER\n", - "377 SERVICES\n", - "378 OTHER\n", - "379 OTHER\n", - "380 TEACHER\n", - "381 OTHER\n", - "382 SERVICES\n", - "383 SERVICES\n", - "384 OTHER\n", - "385 OTHER\n", - "386 AT_HOME\n", - "387 OTHER\n", - "388 SERVICES\n", - "389 OTHER\n", - "390 SERVICES\n", - "391 SERVICES\n", - "392 OTHER\n", - "393 OTHER\n", - "394 AT_HOME\n", + "365 Other\n", + "366 Services\n", + "367 Services\n", + "368 Services\n", + "369 Teacher\n", + "370 Services\n", + "371 Services\n", + "372 At_home\n", + "373 Other\n", + "374 Other\n", + "375 Other\n", + "376 Other\n", + "377 Services\n", + "378 Other\n", + "379 Other\n", + "380 Teacher\n", + "381 Other\n", + "382 Services\n", + "383 Services\n", + "384 Other\n", + "385 Other\n", + "386 At_home\n", + "387 Other\n", + "388 Services\n", + "389 Other\n", + "390 Services\n", + "391 Services\n", + "392 Other\n", + "393 Other\n", + "394 At_home\n", "Name: Fjob, dtype: object" ] }, - "execution_count": 28, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -486,7 +483,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -609,7 +606,7 @@ "394 course father " ] }, - "execution_count": 29, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -620,12 +617,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 8. Did you notice the original dataframe is still lowercase? Why is that? Fix it and captalize Mjob and Fjob." + "### Step 8. Did you notice the original dataframe is still lowercase? Why is that? Fix it and capitalize Mjob and Fjob." ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -663,8 +660,8 @@ " A\n", " 2\n", " 2\n", - " SERVICES\n", - " SERVICES\n", + " Services\n", + " Services\n", " course\n", " other\n", " \n", @@ -678,8 +675,8 @@ " T\n", " 3\n", " 1\n", - " SERVICES\n", - " SERVICES\n", + " Services\n", + " Services\n", " course\n", " mother\n", " \n", @@ -693,8 +690,8 @@ " T\n", " 1\n", " 1\n", - " OTHER\n", - " OTHER\n", + " Other\n", + " Other\n", " course\n", " other\n", " \n", @@ -708,8 +705,8 @@ " T\n", " 3\n", " 2\n", - " SERVICES\n", - " OTHER\n", + " Services\n", + " Other\n", " course\n", " mother\n", " \n", @@ -723,8 +720,8 @@ " T\n", " 1\n", " 1\n", - " OTHER\n", - " AT_HOME\n", + " Other\n", + " At_home\n", " course\n", " father\n", " \n", @@ -734,11 +731,11 @@ ], "text/plain": [ " school sex age address famsize Pstatus Medu Fedu Mjob Fjob \\\n", - "390 MS M 20 U LE3 A 2 2 SERVICES SERVICES \n", - "391 MS M 17 U LE3 T 3 1 SERVICES SERVICES \n", - "392 MS M 21 R GT3 T 1 1 OTHER OTHER \n", - "393 MS M 18 R LE3 T 3 2 SERVICES OTHER \n", - "394 MS M 19 U LE3 T 1 1 OTHER AT_HOME \n", + "390 MS M 20 U LE3 A 2 2 Services Services \n", + "391 MS M 17 U LE3 T 3 1 Services Services \n", + "392 MS M 21 R GT3 T 1 1 Other Other \n", + "393 MS M 18 R LE3 T 3 2 Services Other \n", + "394 MS M 19 U LE3 T 1 1 Other At_home \n", "\n", " reason guardian \n", "390 course other \n", @@ -748,7 +745,7 @@ "394 course father " ] }, - "execution_count": 30, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -759,12 +756,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. Create a function called majority that return a boolean value to a new column called legal_drinker" + "### Step 9. Create a function called majority that returns a boolean value to a new column called legal_drinker (Consider majority as older than 17 years old)" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -773,7 +770,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -812,8 +809,8 @@ " A\n", " 4\n", " 4\n", - " AT_HOME\n", - " TEACHER\n", + " At_home\n", + " Teacher\n", " course\n", " mother\n", " True\n", @@ -828,8 +825,8 @@ " T\n", " 1\n", " 1\n", - " AT_HOME\n", - " OTHER\n", + " At_home\n", + " Other\n", " course\n", " father\n", " False\n", @@ -844,8 +841,8 @@ " T\n", " 1\n", " 1\n", - " AT_HOME\n", - " OTHER\n", + " At_home\n", + " Other\n", " other\n", " mother\n", " False\n", @@ -860,8 +857,8 @@ " T\n", " 4\n", " 2\n", - " HEALTH\n", - " SERVICES\n", + " Health\n", + " Services\n", " home\n", " mother\n", " False\n", @@ -876,8 +873,8 @@ " T\n", " 3\n", " 3\n", - " OTHER\n", - " OTHER\n", + " Other\n", + " Other\n", " home\n", " father\n", " False\n", @@ -888,11 +885,11 @@ ], "text/plain": [ " school sex age address famsize Pstatus Medu Fedu Mjob Fjob \\\n", - "0 GP F 18 U GT3 A 4 4 AT_HOME TEACHER \n", - "1 GP F 17 U GT3 T 1 1 AT_HOME OTHER \n", - "2 GP F 15 U LE3 T 1 1 AT_HOME OTHER \n", - "3 GP F 15 U GT3 T 4 2 HEALTH SERVICES \n", - "4 GP F 16 U GT3 T 3 3 OTHER OTHER \n", + "0 GP F 18 U GT3 A 4 4 At_home Teacher \n", + "1 GP F 17 U GT3 T 1 1 At_home Other \n", + "2 GP F 15 U LE3 T 1 1 At_home Other \n", + "3 GP F 15 U GT3 T 4 2 Health Services \n", + "4 GP F 16 U GT3 T 3 3 Other Other \n", "\n", " reason guardian legal_drinker \n", "0 course mother True \n", @@ -902,7 +899,7 @@ "4 home father False " ] }, - "execution_count": 32, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -919,7 +916,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -928,7 +925,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -967,11 +964,11 @@ " A\n", " 40\n", " 40\n", - " AT_HOME\n", - " TEACHER\n", + " At_home\n", + " Teacher\n", " course\n", " mother\n", - " None\n", + " True\n", " \n", " \n", " 1\n", @@ -983,11 +980,11 @@ " T\n", " 10\n", " 10\n", - " AT_HOME\n", - " OTHER\n", + " At_home\n", + " Other\n", " course\n", " father\n", - " None\n", + " False\n", " \n", " \n", " 2\n", @@ -999,11 +996,11 @@ " T\n", " 10\n", " 10\n", - " AT_HOME\n", - " OTHER\n", + " At_home\n", + " Other\n", " other\n", " mother\n", - " None\n", + " False\n", " \n", " \n", " 3\n", @@ -1015,11 +1012,11 @@ " T\n", " 40\n", " 20\n", - " HEALTH\n", - " SERVICES\n", + " Health\n", + " Services\n", " home\n", " mother\n", - " None\n", + " False\n", " \n", " \n", " 4\n", @@ -1031,11 +1028,11 @@ " T\n", " 30\n", " 30\n", - " OTHER\n", - " OTHER\n", + " Other\n", + " Other\n", " home\n", " father\n", - " None\n", + " False\n", " \n", " \n", " 5\n", @@ -1047,11 +1044,11 @@ " T\n", " 40\n", " 30\n", - " SERVICES\n", - " OTHER\n", + " Services\n", + " Other\n", " reputation\n", " mother\n", - " None\n", + " False\n", " \n", " \n", " 6\n", @@ -1063,11 +1060,11 @@ " T\n", " 20\n", " 20\n", - " OTHER\n", - " OTHER\n", + " Other\n", + " Other\n", " home\n", " mother\n", - " None\n", + " False\n", " \n", " \n", " 7\n", @@ -1079,11 +1076,11 @@ " A\n", " 40\n", " 40\n", - " OTHER\n", - " TEACHER\n", + " Other\n", + " Teacher\n", " home\n", " mother\n", - " None\n", + " False\n", " \n", " \n", " 8\n", @@ -1095,11 +1092,11 @@ " A\n", " 30\n", " 20\n", - " SERVICES\n", - " OTHER\n", + " Services\n", + " Other\n", " home\n", " mother\n", - " None\n", + " False\n", " \n", " \n", " 9\n", @@ -1111,11 +1108,11 @@ " T\n", " 30\n", " 40\n", - " OTHER\n", - " OTHER\n", + " Other\n", + " Other\n", " home\n", " mother\n", - " None\n", + " False\n", " \n", " \n", "\n", @@ -1123,31 +1120,31 @@ ], "text/plain": [ " school sex age address famsize Pstatus Medu Fedu Mjob Fjob \\\n", - "0 GP F 180 U GT3 A 40 40 AT_HOME TEACHER \n", - "1 GP F 170 U GT3 T 10 10 AT_HOME OTHER \n", - "2 GP F 150 U LE3 T 10 10 AT_HOME OTHER \n", - "3 GP F 150 U GT3 T 40 20 HEALTH SERVICES \n", - "4 GP F 160 U GT3 T 30 30 OTHER OTHER \n", - "5 GP M 160 U LE3 T 40 30 SERVICES OTHER \n", - "6 GP M 160 U LE3 T 20 20 OTHER OTHER \n", - "7 GP F 170 U GT3 A 40 40 OTHER TEACHER \n", - "8 GP M 150 U LE3 A 30 20 SERVICES OTHER \n", - "9 GP M 150 U GT3 T 30 40 OTHER OTHER \n", + "0 GP F 180 U GT3 A 40 40 At_home Teacher \n", + "1 GP F 170 U GT3 T 10 10 At_home Other \n", + "2 GP F 150 U LE3 T 10 10 At_home Other \n", + "3 GP F 150 U GT3 T 40 20 Health Services \n", + "4 GP F 160 U GT3 T 30 30 Other Other \n", + "5 GP M 160 U LE3 T 40 30 Services Other \n", + "6 GP M 160 U LE3 T 20 20 Other Other \n", + "7 GP F 170 U GT3 A 40 40 Other Teacher \n", + "8 GP M 150 U LE3 A 30 20 Services Other \n", + "9 GP M 150 U GT3 T 30 40 Other Other \n", "\n", " reason guardian legal_drinker \n", - "0 course mother None \n", - "1 course father None \n", - "2 other mother None \n", - "3 home mother None \n", - "4 home father None \n", - "5 reputation mother None \n", - "6 home mother None \n", - "7 home mother None \n", - "8 home mother None \n", - "9 home mother None " + "0 course mother True \n", + "1 course father False \n", + "2 other mother False \n", + "3 home mother False \n", + "4 home father False \n", + "5 reputation mother False \n", + "6 home mother False \n", + "7 home mother False \n", + "8 home mother False \n", + "9 home mother False " ] }, - "execution_count": 42, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } diff --git a/04_Apply/US_Crime_Rates/Exercises.ipynb b/04_Apply/US_Crime_Rates/Exercises.ipynb index e8fbffa2c..27aac665c 100644 --- a/04_Apply/US_Crime_Rates/Exercises.ipynb +++ b/04_Apply/US_Crime_Rates/Exercises.ipynb @@ -141,7 +141,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. What is the mos dangerous decade to live in the US?" + "### Step 9. What is the most dangerous decade to live in the US?" ] }, { diff --git a/04_Apply/US_Crime_Rates/Exercises_with_solutions.ipynb b/04_Apply/US_Crime_Rates/Exercises_with_solutions.ipynb index 81924c1d7..6687d0e8d 100644 --- a/04_Apply/US_Crime_Rates/Exercises_with_solutions.ipynb +++ b/04_Apply/US_Crime_Rates/Exercises_with_solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# United States - Crime Rates - 1960 - 2014" + "# United States - Crime Rates - 1960 - 2014\n", + "\n", + "Check out [Crime Rates Exercises Video Tutorial](https://youtu.be/46lmk1JvcWA) to watch a data scientist go through the exercises" ] }, { @@ -23,9 +25,7 @@ { "cell_type": "code", "execution_count": 95, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -49,9 +49,7 @@ { "cell_type": "code", "execution_count": 265, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -192,9 +190,7 @@ { "cell_type": "code", "execution_count": 266, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -236,9 +232,7 @@ { "cell_type": "code", "execution_count": 267, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -280,9 +274,7 @@ { "cell_type": "code", "execution_count": 268, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -440,9 +432,7 @@ { "cell_type": "code", "execution_count": 269, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -588,7 +578,6 @@ "cell_type": "code", "execution_count": 270, "metadata": { - "collapsed": false, "scrolled": true }, "outputs": [ @@ -738,15 +727,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. What is the mos dangerous decade to live in the US?" + "### Step 9. What is the most dangerous decade to live in the US?" ] }, { "cell_type": "code", "execution_count": 276, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -778,23 +765,36 @@ "metadata": { "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python [default]", + "display_name": "Python 3", "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.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/04_Apply/US_Crime_Rates/Solutions.ipynb b/04_Apply/US_Crime_Rates/Solutions.ipynb index 8f5234f00..c76d11cdf 100644 --- a/04_Apply/US_Crime_Rates/Solutions.ipynb +++ b/04_Apply/US_Crime_Rates/Solutions.ipynb @@ -705,7 +705,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. What is the mos dangerous decade to live in the US?" + "### Step 9. What is the most dangerous decade to live in the US?" ] }, { diff --git a/05_Merge/Auto_MPG/Exercises.ipynb b/05_Merge/Auto_MPG/Exercises.ipynb index d5c56e11f..1f741a04f 100644 --- a/05_Merge/Auto_MPG/Exercises.ipynb +++ b/05_Merge/Auto_MPG/Exercises.ipynb @@ -54,7 +54,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 4. Ops it seems our first dataset has some unnamed blank columns, fix cars1" + "### Step 4. Oops, it seems our first dataset has some unnamed blank columns, fix cars1" ] }, { @@ -102,7 +102,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 7. Ops there is a column missing, called owners. Create a random number Series from 15,000 to 73,000." + "### Step 7. Oops, there is a column missing, called owners. Create a random number Series from 15,000 to 73,000." ] }, { diff --git a/05_Merge/Auto_MPG/Exercises_with_solutions.ipynb b/05_Merge/Auto_MPG/Exercises_with_solutions.ipynb index 1aba560e0..f032fd34e 100644 --- a/05_Merge/Auto_MPG/Exercises_with_solutions.ipynb +++ b/05_Merge/Auto_MPG/Exercises_with_solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# MPG Cars" + "# MPG Cars\n", + "\n", + "Check out [Cars Exercises Video Tutorial](https://www.youtube.com/watch?v=avzLRBxoguU&list=PLgJhDSE2ZLxaY_DigHeiIDC1cD09rXgJv&index=3) to watch a data scientist go through the exercises" ] }, { @@ -95,15 +97,15 @@ "cars1 = pd.read_csv(\"https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/05_Merge/Auto_MPG/cars1.csv\")\n", "cars2 = pd.read_csv(\"https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/05_Merge/Auto_MPG/cars2.csv\")\n", "\n", - "print cars1.head()\n", - "print cars2.head()" + "print(cars1.head())\n", + "print(cars2.head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 4. Ops it seems our first dataset has some unnamed blank columns, fix cars1" + "### Step 4. Oops, it seems our first dataset has some unnamed blank columns, fix cars1" ] }, { @@ -247,8 +249,8 @@ } ], "source": [ - "print cars1.shape\n", - "print cars2.shape" + "print(cars1.shape)\n", + "print(cars2.shape)" ] }, { @@ -1166,7 +1168,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 7. Ops there is a column missing, called owners. Create a random number Series from 15,000 to 73,000." + "### Step 7. Oops, there is a column missing, called owners. Create a random number Series from 15,000 to 73,000." ] }, { diff --git a/05_Merge/Auto_MPG/Solutions.ipynb b/05_Merge/Auto_MPG/Solutions.ipynb index 6d48301a5..bdf6c8b64 100644 --- a/05_Merge/Auto_MPG/Solutions.ipynb +++ b/05_Merge/Auto_MPG/Solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# MPG Cars" + "# MPG Cars\n", + "\n", + "Check out [Cars Exercises Video Tutorial](https://www.youtube.com/watch?v=avzLRBxoguU&list=PLgJhDSE2ZLxaY_DigHeiIDC1cD09rXgJv&index=3) to watch a data scientist go through the exercises" ] }, { @@ -97,7 +99,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 4. Ops it seems our first dataset has some unnamed blank columns, fix cars1" + "### Step 4. Oops, it seems our first dataset has some unnamed blank columns, fix cars1" ] }, { @@ -1151,7 +1153,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 7. Ops there is a column missing, called owners. Create a random number Series from 15,000 to 73,000." + "### Step 7. Oops, there is a column missing, called owners. Create a random number Series from 15,000 to 73,000." ] }, { diff --git a/05_Merge/Fictitous Names/Exercises.ipynb b/05_Merge/Fictitous Names/Exercises.ipynb index 61cc55c0f..4382d9d95 100644 --- a/05_Merge/Fictitous Names/Exercises.ipynb +++ b/05_Merge/Fictitous Names/Exercises.ipynb @@ -36,7 +36,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Create the 3 DataFrames based on the followin raw data" + "### Step 2. Create the 3 DataFrames based on the following raw data" ] }, { diff --git a/05_Merge/Fictitous Names/Exercises_with_solutions.ipynb b/05_Merge/Fictitous Names/Exercises_with_solutions.ipynb index 805f867ab..a4d5a6c7c 100644 --- a/05_Merge/Fictitous Names/Exercises_with_solutions.ipynb +++ b/05_Merge/Fictitous Names/Exercises_with_solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Fictitious Names" + "# Fictitious Names\n", + "\n", + "Check out [Fictitious Names Exercises Video Tutorial](https://youtu.be/6DbgcHBiOqo) to watch a data scientist go through the exercises" ] }, { @@ -26,9 +28,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd" @@ -38,7 +38,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Create the 3 DataFrames based on the followin raw data" + "### Step 2. Create the 3 DataFrames based on the following raw data" ] }, { @@ -74,9 +74,7 @@ { "cell_type": "code", "execution_count": 12, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -182,9 +180,7 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -298,9 +294,7 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -397,9 +391,7 @@ { "cell_type": "code", "execution_count": 13, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -501,9 +493,7 @@ { "cell_type": "code", "execution_count": 15, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -619,9 +609,7 @@ { "cell_type": "code", "execution_count": 16, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -684,9 +672,7 @@ { "cell_type": "code", "execution_count": 17, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -796,23 +782,36 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/05_Merge/Fictitous Names/Solutions.ipynb b/05_Merge/Fictitous Names/Solutions.ipynb index 39b498503..c21531f1a 100644 --- a/05_Merge/Fictitous Names/Solutions.ipynb +++ b/05_Merge/Fictitous Names/Solutions.ipynb @@ -36,7 +36,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Create the 3 DataFrames based on the followin raw data" + "### Step 2. Create the 3 DataFrames based on the following raw data" ] }, { diff --git a/05_Merge/Housing Market/Exercises.ipynb b/05_Merge/Housing Market/Exercises.ipynb index f9b3fe2ae..02e044d9b 100644 --- a/05_Merge/Housing Market/Exercises.ipynb +++ b/05_Merge/Housing Market/Exercises.ipynb @@ -98,7 +98,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Ops it seems it is going only until index 99. Is it true?" + "### Step 6. Oops, it seems it is going only until index 99. Is it true?" ] }, { diff --git a/05_Merge/Housing Market/Exercises_with_solutions.ipynb b/05_Merge/Housing Market/Exercises_with_solutions.ipynb index 251e5f305..1d33c0824 100644 --- a/05_Merge/Housing Market/Exercises_with_solutions.ipynb +++ b/05_Merge/Housing Market/Exercises_with_solutions.ipynb @@ -243,7 +243,7 @@ "s2 = pd.Series(np.random.randint(1, high=4, size=100, dtype='l'))\n", "s3 = pd.Series(np.random.randint(10000, high=30001, size=100, dtype='l'))\n", "\n", - "print s1, s2, s3" + "print(s1, s2, s3)" ] }, { @@ -768,7 +768,7 @@ "\n", "# it is still a Series, so we need to transform it to a DataFrame\n", "bigcolumn = bigcolumn.to_frame()\n", - "print type(bigcolumn)\n", + "print(type(bigcolumn))\n", "\n", "bigcolumn" ] @@ -777,7 +777,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Ops it seems it is going only until index 99. Is it true?" + "### Step 6. Oops, it seems it is going only until index 99. Is it true?" ] }, { diff --git a/05_Merge/Housing Market/Solutions.ipynb b/05_Merge/Housing Market/Solutions.ipynb index 5c02512e8..07101612c 100644 --- a/05_Merge/Housing Market/Solutions.ipynb +++ b/05_Merge/Housing Market/Solutions.ipynb @@ -756,7 +756,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Ops it seems it is going only until index 99. Is it true?" + "### Step 6. Oops, it seems it is going only until index 99. Is it true?" ] }, { diff --git a/06_Stats/US_Baby_Names/Exercises_with_solutions.ipynb b/06_Stats/US_Baby_Names/Exercises_with_solutions.ipynb index 7aa320853..f83fecad6 100644 --- a/06_Stats/US_Baby_Names/Exercises_with_solutions.ipynb +++ b/06_Stats/US_Baby_Names/Exercises_with_solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# US - Baby Names" + "# US - Baby Names\n", + "\n", + "Check out [Baby Names Exercises Video Tutorial](https://youtu.be/Daf2QNAy-qA) to watch a data scientist go through the exercises" ] }, { @@ -22,10 +24,8 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": false - }, + "execution_count": 1, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd" @@ -47,10 +47,8 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, + "execution_count": 2, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -72,7 +70,7 @@ } ], "source": [ - "baby_names = pd.read_csv('https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/Stats/US_Baby_Names/US_Baby_Names_right.csv')\n", + "baby_names = pd.read_csv('https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/06_Stats/US_Baby_Names/US_Baby_Names_right.csv')\n", "baby_names.info()" ] }, @@ -85,10 +83,8 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, + "execution_count": 3, + "metadata": {}, "outputs": [ { "data": { @@ -226,7 +222,7 @@ "9 11358 11359 Sophia 2004 F AK 28" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -244,10 +240,8 @@ }, { "cell_type": "code", - "execution_count": 106, - "metadata": { - "collapsed": false - }, + "execution_count": 4, + "metadata": {}, "outputs": [ { "data": { @@ -318,7 +312,7 @@ "4 Emily 2004 F AK 41" ] }, - "execution_count": 106, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -337,26 +331,29 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Is there more male or female names in the dataset?" + "### Step 6. Are there more male or female names in the dataset?" ] }, { "cell_type": "code", - "execution_count": 114, - "metadata": { - "collapsed": false - }, + "execution_count": 5, + "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "17632\n" - ] + "data": { + "text/plain": [ + "F 558846\n", + "M 457549\n", + "Name: Gender, dtype: int64" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "baby_names['Gender'].value_counts('F')" + "baby_names['Gender'].value_counts()" ] }, { @@ -368,10 +365,8 @@ }, { "cell_type": "code", - "execution_count": 116, - "metadata": { - "collapsed": false - }, + "execution_count": 6, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -430,14 +425,14 @@ "Isabella 204798" ] }, - "execution_count": 116, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# you don't want to sum the Year column, so you delete it\n", - "# del baby_names[\"Year\"]\n", + "del baby_names[\"Year\"]\n", "\n", "# group the data\n", "names = baby_names.groupby(\"Name\").sum()\n", @@ -446,7 +441,7 @@ "names.head()\n", "\n", "# print the size of the dataset\n", - "print names.shape\n", + "print(names.shape)\n", "\n", "# sort it from the biggest value to the smallest one\n", "names.sort_values(\"Count\", ascending = 0).head()" @@ -461,10 +456,8 @@ }, { "cell_type": "code", - "execution_count": 89, - "metadata": { - "collapsed": false - }, + "execution_count": 7, + "metadata": {}, "outputs": [ { "data": { @@ -472,7 +465,7 @@ "17632" ] }, - "execution_count": 89, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -492,10 +485,8 @@ }, { "cell_type": "code", - "execution_count": 151, - "metadata": { - "collapsed": false - }, + "execution_count": 8, + "metadata": {}, "outputs": [ { "data": { @@ -503,7 +494,7 @@ "'Jacob'" ] }, - "execution_count": 151, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -525,10 +516,8 @@ }, { "cell_type": "code", - "execution_count": 138, - "metadata": { - "collapsed": false - }, + "execution_count": 9, + "metadata": {}, "outputs": [ { "data": { @@ -536,7 +525,7 @@ "2578" ] }, - "execution_count": 138, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -554,10 +543,8 @@ }, { "cell_type": "code", - "execution_count": 144, - "metadata": { - "collapsed": false - }, + "execution_count": 10, + "metadata": {}, "outputs": [ { "data": { @@ -892,7 +879,7 @@ "[66 rows x 1 columns]" ] }, - "execution_count": 144, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -910,10 +897,8 @@ }, { "cell_type": "code", - "execution_count": 147, - "metadata": { - "collapsed": false - }, + "execution_count": 11, + "metadata": {}, "outputs": [ { "data": { @@ -921,7 +906,7 @@ "11006.069467891111" ] }, - "execution_count": 147, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -939,10 +924,8 @@ }, { "cell_type": "code", - "execution_count": 148, - "metadata": { - "collapsed": false - }, + "execution_count": 12, + "metadata": {}, "outputs": [ { "data": { @@ -1004,7 +987,7 @@ "max 242874.000000" ] }, - "execution_count": 148, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -1015,24 +998,38 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python [default]", + "display_name": "Python 3", "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.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/06_Stats/US_Baby_Names/Solutions.ipynb b/06_Stats/US_Baby_Names/Solutions.ipynb index dff9e9368..9acac382e 100644 --- a/06_Stats/US_Baby_Names/Solutions.ipynb +++ b/06_Stats/US_Baby_Names/Solutions.ipynb @@ -22,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": { "collapsed": false }, @@ -45,7 +45,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -80,7 +80,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -221,7 +221,7 @@ "9 11358 11359 Sophia 2004 F AK 28" ] }, - "execution_count": 5, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -237,7 +237,7 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -311,7 +311,7 @@ "4 Emily 2004 F AK 41" ] }, - "execution_count": 106, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -322,22 +322,27 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Is there more male or female names in the dataset?" + "### Step 6. Are there more male or female names in the dataset?" ] }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "17632\n" - ] + "data": { + "text/plain": [ + "F 558846\n", + "M 457549\n", + "Name: Gender, dtype: int64" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" } ], "source": [] @@ -351,7 +356,7 @@ }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -413,7 +418,7 @@ "Isabella 204798" ] }, - "execution_count": 116, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -429,7 +434,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -440,7 +445,7 @@ "17632" ] }, - "execution_count": 89, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -456,7 +461,7 @@ }, { "cell_type": "code", - "execution_count": 151, + "execution_count": 8, "metadata": { "collapsed": false }, @@ -467,7 +472,7 @@ "'Jacob'" ] }, - "execution_count": 151, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -483,7 +488,7 @@ }, { "cell_type": "code", - "execution_count": 138, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -494,7 +499,7 @@ "2578" ] }, - "execution_count": 138, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -510,7 +515,7 @@ }, { "cell_type": "code", - "execution_count": 144, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -848,7 +853,7 @@ "[66 rows x 1 columns]" ] }, - "execution_count": 144, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -864,7 +869,7 @@ }, { "cell_type": "code", - "execution_count": 147, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -875,7 +880,7 @@ "11006.069467891111" ] }, - "execution_count": 147, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -891,7 +896,7 @@ }, { "cell_type": "code", - "execution_count": 148, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -956,7 +961,7 @@ "max 242874.000000" ] }, - "execution_count": 148, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } diff --git a/06_Stats/Wind_Stats/Exercises.ipynb b/06_Stats/Wind_Stats/Exercises.ipynb index bd7d46f0c..d62c91be9 100644 --- a/06_Stats/Wind_Stats/Exercises.ipynb +++ b/06_Stats/Wind_Stats/Exercises.ipynb @@ -84,7 +84,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://github.com/guipsamora/pandas_exercises/blob/master/Stats/Wind_Stats/wind.data)" + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/06_Stats/Wind_Stats/wind.data)" ] }, { @@ -291,25 +291,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 15. Calculate the mean windspeed for each month in the dataset. \n", - "#### Treat January 1961 and January 1962 as *different* months.\n", - "#### (hint: first find a way to create an identifier unique for each month.)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 16. Calculate the min, max and mean windspeeds and standard deviations of the windspeeds across all locations for each week (assume that the first week starts on January 2 1961) for the first 52 weeks." + "### Step 15. Calculate the min, max and mean windspeeds and standard deviations of the windspeeds across all locations for each week (assume that the first week starts on January 2 1961) for the first 52 weeks." ] }, { @@ -323,8 +305,9 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [default]", "language": "python", "name": "python2" }, @@ -338,7 +321,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, diff --git a/06_Stats/Wind_Stats/Exercises_with_solutions.ipynb b/06_Stats/Wind_Stats/Exercises_with_solutions.ipynb index 4078fca74..7fab5059f 100644 --- a/06_Stats/Wind_Stats/Exercises_with_solutions.ipynb +++ b/06_Stats/Wind_Stats/Exercises_with_solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Wind Statistics" + "# Wind Statistics\n", + "\n", + "Check out [Wind Statistics Exercises Video Tutorial](https://youtu.be/2x3WsWiNV18) to watch a data scientist go through the exercises" ] }, { @@ -27,9 +29,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -64,19 +64,15 @@ }, { "cell_type": "markdown", - "metadata": { - "collapsed": false - }, + "metadata": {}, "source": [ "### Step 1. Import the necessary libraries" ] }, { "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": false - }, + "execution_count": 1, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", @@ -87,7 +83,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://github.com/guipsamora/pandas_exercises/blob/master/Stats/Wind_Stats/wind.data)" + "### Step 2. Import the dataset from this [address](https://github.com/guipsamora/pandas_exercises/blob/master/06_Stats/Wind_Stats/wind.data)" ] }, { @@ -99,15 +95,26 @@ }, { "cell_type": "code", - "execution_count": 414, - "metadata": { - "collapsed": false - }, + "execution_count": 3, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -228,14 +235,15 @@ "4 10.34 12.92 11.83 " ] }, - "execution_count": 414, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# parse_dates gets 0, 1, 2 columns and parses them as the index\n", - "data = pd.read_table(\"wind.data\", sep = \"\\s+\", parse_dates = [[0,1,2]]) \n", + "data_url = 'https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/06_Stats/Wind_Stats/wind.data'\n", + "data = pd.read_csv(data_url, sep = \"\\s+\", parse_dates = [[0,1,2]]) \n", "data.head()" ] }, @@ -248,15 +256,26 @@ }, { "cell_type": "code", - "execution_count": 415, - "metadata": { - "collapsed": false - }, + "execution_count": 4, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -377,7 +396,7 @@ "4 10.34 12.92 11.83 " ] }, - "execution_count": 415, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -406,21 +425,160 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": false - }, + "execution_count": 5, + "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'pd' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# transform Yr_Mo_Dy it to date type datetime64\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"Yr_Mo_Dy\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_datetime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"Yr_Mo_Dy\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;31m# set 'Yr_Mo_Dy' as the index\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Yr_Mo_Dy'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'pd' is not defined" - ] + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RPTVALROSKILSHABIRDUBCLAMULCLOBELMAL
Yr_Mo_Dy
1961-01-0115.0414.9613.179.29NaN9.8713.6710.2510.8312.5818.5015.04
1961-01-0214.71NaN10.836.5012.627.6711.5010.049.799.6717.5413.83
1961-01-0318.5016.8812.3310.1311.176.1711.25NaN8.507.6712.7512.71
1961-01-0410.586.6311.754.584.542.888.631.795.835.885.4610.88
1961-01-0513.3313.2511.426.1710.718.2111.926.5410.9210.3412.9211.83
\n", + "
" + ], + "text/plain": [ + " RPT VAL ROS KIL SHA BIR DUB CLA MUL \\\n", + "Yr_Mo_Dy \n", + "1961-01-01 15.04 14.96 13.17 9.29 NaN 9.87 13.67 10.25 10.83 \n", + "1961-01-02 14.71 NaN 10.83 6.50 12.62 7.67 11.50 10.04 9.79 \n", + "1961-01-03 18.50 16.88 12.33 10.13 11.17 6.17 11.25 NaN 8.50 \n", + "1961-01-04 10.58 6.63 11.75 4.58 4.54 2.88 8.63 1.79 5.83 \n", + "1961-01-05 13.33 13.25 11.42 6.17 10.71 8.21 11.92 6.54 10.92 \n", + "\n", + " CLO BEL MAL \n", + "Yr_Mo_Dy \n", + "1961-01-01 12.58 18.50 15.04 \n", + "1961-01-02 9.67 17.54 13.83 \n", + "1961-01-03 7.67 12.75 12.71 \n", + "1961-01-04 5.88 5.46 10.88 \n", + "1961-01-05 10.34 12.92 11.83 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -444,10 +602,8 @@ }, { "cell_type": "code", - "execution_count": 423, - "metadata": { - "collapsed": false - }, + "execution_count": 6, + "metadata": {}, "outputs": [ { "data": { @@ -467,7 +623,7 @@ "dtype: int64" ] }, - "execution_count": 423, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -486,38 +642,41 @@ }, { "cell_type": "code", - "execution_count": 424, + "execution_count": 10, "metadata": { - "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ - "RPT 6\n", - "VAL 9\n", - "ROS 10\n", - "KIL 7\n", - "SHA 10\n", - "BIR 12\n", - "DUB 9\n", - "CLA 10\n", - "MUL 9\n", - "CLO 11\n", - "BEL 12\n", - "MAL 8\n", + "RPT 6568\n", + "VAL 6571\n", + "ROS 6572\n", + "KIL 6569\n", + "SHA 6572\n", + "BIR 6574\n", + "DUB 6571\n", + "CLA 6572\n", + "MUL 6571\n", + "CLO 6573\n", + "BEL 6574\n", + "MAL 6570\n", "dtype: int64" ] }, - "execution_count": 424, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# number of columns minus the number of missing values for each location\n", - "data.shape[1] - data.isnull().sum()" + "#number of columns minus the number of missing values for each location\n", + "data.shape[0] - data.isnull().sum()\n", + "\n", + "#or\n", + "\n", + "data.notnull().sum()" ] }, { @@ -530,25 +689,22 @@ }, { "cell_type": "code", - "execution_count": 426, - "metadata": { - "collapsed": false - }, + "execution_count": 11, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "10.227982360836924" + "10.227883764282167" ] }, - "execution_count": 426, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# print 'Mean over all values is: '\n", - "data.mean().mean()" + "data.sum().sum() / data.notna().sum().sum()" ] }, { @@ -562,144 +718,172 @@ }, { "cell_type": "code", - "execution_count": 264, - "metadata": { - "collapsed": false - }, + "execution_count": 12, + "metadata": {}, "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", - " \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", "
minmaxmeanstdRPTVALROSKILSHABIRDUBCLAMULCLOBELMAL
RPT0.6735.8012.3629875.618413count6568.0000006571.0000006572.0000006569.0000006572.0000006574.0000006571.0000006572.0000006571.0000006573.0000006574.0000006570.000000
VAL0.2133.37mean12.36298710.6443145.267356
ROS1.5033.8411.6605265.008450
KIL0.0028.466.3064683.605811
SHA0.1337.5410.4558344.936125
BIR0.0026.167.0922543.968683
DUB0.0030.379.7973434.977555
CLA0.0031.088.4950534.499449
MUL0.0025.888.4935904.1668728.70733213.12100715.599079
CLO0.0428.218.707332std5.6184135.2673565.0084503.6058114.9361253.9686834.9775554.4994494.1668724.5039545.8350376.699794
BEL0.1342.3813.1210075.835037min0.6700000.2100001.5000000.0000000.1300000.0000000.0000000.0000000.0000000.0400000.1300000.670000
50%11.71000010.17000010.9200005.7500009.9600006.8300009.2100008.0800008.1700008.29000012.50000015.000000
MAL0.6742.5415.5990796.699794max35.80000033.37000033.84000028.46000037.54000026.16000030.37000031.08000025.88000028.21000042.38000042.540000
\n", "
" ], "text/plain": [ - " min max mean std\n", - "RPT 0.67 35.80 12.362987 5.618413\n", - "VAL 0.21 33.37 10.644314 5.267356\n", - "ROS 1.50 33.84 11.660526 5.008450\n", - "KIL 0.00 28.46 6.306468 3.605811\n", - "SHA 0.13 37.54 10.455834 4.936125\n", - "BIR 0.00 26.16 7.092254 3.968683\n", - "DUB 0.00 30.37 9.797343 4.977555\n", - "CLA 0.00 31.08 8.495053 4.499449\n", - "MUL 0.00 25.88 8.493590 4.166872\n", - "CLO 0.04 28.21 8.707332 4.503954\n", - "BEL 0.13 42.38 13.121007 5.835037\n", - "MAL 0.67 42.54 15.599079 6.699794" + " RPT VAL ROS KIL SHA \\\n", + "count 6568.000000 6571.000000 6572.000000 6569.000000 6572.000000 \n", + "mean 12.362987 10.644314 11.660526 6.306468 10.455834 \n", + "std 5.618413 5.267356 5.008450 3.605811 4.936125 \n", + "min 0.670000 0.210000 1.500000 0.000000 0.130000 \n", + "50% 11.710000 10.170000 10.920000 5.750000 9.960000 \n", + "max 35.800000 33.370000 33.840000 28.460000 37.540000 \n", + "\n", + " BIR DUB CLA MUL CLO \\\n", + "count 6574.000000 6571.000000 6572.000000 6571.000000 6573.000000 \n", + "mean 7.092254 9.797343 8.495053 8.493590 8.707332 \n", + "std 3.968683 4.977555 4.499449 4.166872 4.503954 \n", + "min 0.000000 0.000000 0.000000 0.000000 0.040000 \n", + "50% 6.830000 9.210000 8.080000 8.170000 8.290000 \n", + "max 26.160000 30.370000 31.080000 25.880000 28.210000 \n", + "\n", + " BEL MAL \n", + "count 6574.000000 6570.000000 \n", + "mean 13.121007 15.599079 \n", + "std 5.835037 6.699794 \n", + "min 0.130000 0.670000 \n", + "50% 12.500000 15.000000 \n", + "max 42.380000 42.540000 " ] }, - "execution_count": 264, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "loc_stats = pd.DataFrame()\n", - "\n", - "loc_stats['min'] = data.min() # min\n", - "loc_stats['max'] = data.max() # max \n", - "loc_stats['mean'] = data.mean() # mean\n", - "loc_stats['std'] = data.std() # standard deviations\n", - "\n", - "loc_stats" + "data.describe(percentiles=[])" ] }, { @@ -713,15 +897,26 @@ }, { "cell_type": "code", - "execution_count": 404, - "metadata": { - "collapsed": false - }, + "execution_count": 13, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -731,57 +926,65 @@ " \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", "
meanstd
Yr_Mo_Dy
01.01961-01-019.2918.5012.0166674.38279813.0181822.808875
11.01961-01-026.5017.5410.4750004.26011011.3363643.188994
21.01961-01-036.1718.5010.7550004.66491411.6418183.681912
31.01961-01-041.7911.756.1869233.4357716.6191673.198126
41.01961-01-056.1713.339.8892313.55176810.6300002.445356
\n", "
" ], "text/plain": [ - " min max mean std\n", - "0 1.0 18.50 12.016667 4.382798\n", - "1 1.0 17.54 10.475000 4.260110\n", - "2 1.0 18.50 10.755000 4.664914\n", - "3 1.0 11.75 6.186923 3.435771\n", - "4 1.0 13.33 9.889231 3.551768" + " min max mean std\n", + "Yr_Mo_Dy \n", + "1961-01-01 9.29 18.50 13.018182 2.808875\n", + "1961-01-02 6.50 17.54 11.336364 3.188994\n", + "1961-01-03 6.17 18.50 11.641818 3.681912\n", + "1961-01-04 1.79 11.75 6.619167 3.198126\n", + "1961-01-05 6.17 13.33 10.630000 2.445356" ] }, - "execution_count": 404, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -809,10 +1012,8 @@ }, { "cell_type": "code", - "execution_count": 427, - "metadata": { - "collapsed": false - }, + "execution_count": 14, + "metadata": {}, "outputs": [ { "data": { @@ -832,27 +1033,13 @@ "dtype: float64" ] }, - "execution_count": 427, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# print \"January windspeeds:\"\n", - "\n", - "# creates a new column 'date' and gets the values from the index\n", - "data['date'] = data.index\n", - "\n", - "# creates a column for each value from date\n", - "data['month'] = data['date'].apply(lambda date: date.month)\n", - "data['year'] = data['date'].apply(lambda date: date.year)\n", - "data['day'] = data['date'].apply(lambda date: date.day)\n", - "\n", - "# gets all value from the month 1 and assign to janyary_winds\n", - "january_winds = data.query('month == 1')\n", - "\n", - "# gets the mean from january_winds, using .loc to not print the mean of month, year and day\n", - "january_winds.loc[:,'RPT':\"MAL\"].mean()" + "data.loc[data.index.month == 1].mean()" ] }, { @@ -864,15 +1051,26 @@ }, { "cell_type": "code", - "execution_count": 428, - "metadata": { - "collapsed": false - }, + "execution_count": 15, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -889,10 +1087,6 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -908,410 +1102,334 @@ " \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", - " \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", - " \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", - " \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", + " \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", + " \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", + " \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", "
CLOBELMALdatemonthyearday
Yr_Mo_Dy
1961-01-0115.0414.9613.179.29NaN9.8713.6710.2510.8312.5818.5015.041961-01-01119611
1962-01-019.293.4211.543.502.211.9610.412.793.545.174.387.921962-01-01119621
1963-01-0115.5913.6219.798.3812.2510.0023.4515.7113.5914.3717.5834.131963-01-01119631
1964-01-0125.8022.1318.2113.2521.2914.7914.1219.5813.2516.7528.9621.001964-01-01119641
1965-01-019.5411.929.004.386.085.2110.256.085.718.6312.0417.411965-01-01119651
1966-01-0122.0421.5017.0812.7522.1715.5921.7918.1216.6617.8328.3323.791966-01-01119661
1967-01-016.464.466.503.216.673.7911.383.837.719.0810.6720.911967-01-01119671
1968-01-0130.0417.8816.2516.2521.7912.5418.1616.6218.7517.6222.2527.291968-01-01119681
1969-01-016.131.635.411.082.541.008.502.424.586.349.1716.711969-01-01119691
1970-01-019.592.9611.793.426.134.089.004.467.293.507.3313.001970-01-01119701
1971-01-013.710.794.710.171.421.044.630.751.541.084.219.541971-01-01119711
1972-01-019.293.6314.544.256.754.4213.005.3310.048.548.7119.171972-01-01119721
1973-01-0116.5015.9214.627.418.2911.2113.547.7910.4610.7913.379.711973-01-01119731
1974-01-0123.2116.5416.089.7515.8311.469.5413.5413.8316.6617.2125.291974-01-01119741
1975-01-0114.0413.5411.295.4612.585.588.128.969.295.177.7111.631975-01-01119751
1976-01-0118.3417.6714.838.0016.6210.1313.179.0413.135.7511.3814.961976-01-01119761
1977-01-0120.0411.9220.259.139.298.0410.755.889.009.0014.8825.701977-01-01119771
1978-01-018.337.127.713.548.507.5014.7110.0011.8310.0015.0920.461978-01-01119781196112.29958310.35179611.3623696.95822710.8817637.7297269.7339238.8587888.6476529.83557713.50279513.680773
196212.24692310.11043811.7327126.96044010.6579187.39306811.0207128.7937538.3168229.67624712.93068514.323956
196312.81345210.83698612.5411517.33005511.7241108.43471211.07569910.3365488.90358910.22443813.63887714.999014
196412.36366110.92016412.1043726.78778711.4544817.57087410.2591539.4673507.78901610.20795113.74054614.910301
196512.45137011.07553411.8487676.85846611.0247957.47811010.6187128.8799187.9074259.91808212.96424715.591644
196613.46197311.55720512.0206307.34572611.8050417.79367110.5798088.8350968.5144389.76895914.26583616.307260
196712.73715110.99098611.7393977.14342511.6307407.36816410.6520279.3256168.6450149.54742514.77454817.135945
196811.83562810.46819711.4097546.47767810.7607656.0673228.8591808.2555197.2249457.83297812.80863415.017486
196911.1663569.72369910.9020005.7679739.8739186.1899738.5644937.7113977.9245217.75438412.62123315.762904
197012.60032910.72693211.7302476.21717810.5673707.6094529.6098908.3346309.2976168.28980813.18364416.456027
197111.2731239.09517811.0883295.2415079.4403296.0971518.3858906.7573157.9153707.22975312.20893215.025233
197212.46396210.56131112.0583335.9296999.4304106.3588259.7045087.6807928.3572957.51527312.72737715.028716
197311.82846610.68049310.6804935.5478639.6408776.5487408.4821107.6142748.2455347.81241112.16969915.441096
197413.64309611.81178112.3363566.42704111.1109866.80978110.0846039.8969869.3317538.73635613.25295916.947671
197512.00857510.29383611.5647125.2690969.1900825.6685218.5626037.8438368.7979457.38282212.63167115.307863
197611.73784210.20311510.7612305.1094268.8463396.3110389.1491267.1462028.8837167.88308712.33237715.471448
197713.09961611.14449312.6278366.07394510.0038368.58643811.5232058.3783849.0981928.82161613.45906816.590849
197812.50435611.04427411.3800006.08235610.1672337.6506589.4893428.8004669.0897538.30169912.96739716.771370
\n", "
" ], "text/plain": [ - " RPT VAL ROS KIL SHA BIR DUB CLA MUL \\\n", - "Yr_Mo_Dy \n", - "1961-01-01 15.04 14.96 13.17 9.29 NaN 9.87 13.67 10.25 10.83 \n", - "1962-01-01 9.29 3.42 11.54 3.50 2.21 1.96 10.41 2.79 3.54 \n", - "1963-01-01 15.59 13.62 19.79 8.38 12.25 10.00 23.45 15.71 13.59 \n", - "1964-01-01 25.80 22.13 18.21 13.25 21.29 14.79 14.12 19.58 13.25 \n", - "1965-01-01 9.54 11.92 9.00 4.38 6.08 5.21 10.25 6.08 5.71 \n", - "1966-01-01 22.04 21.50 17.08 12.75 22.17 15.59 21.79 18.12 16.66 \n", - "1967-01-01 6.46 4.46 6.50 3.21 6.67 3.79 11.38 3.83 7.71 \n", - "1968-01-01 30.04 17.88 16.25 16.25 21.79 12.54 18.16 16.62 18.75 \n", - "1969-01-01 6.13 1.63 5.41 1.08 2.54 1.00 8.50 2.42 4.58 \n", - "1970-01-01 9.59 2.96 11.79 3.42 6.13 4.08 9.00 4.46 7.29 \n", - "1971-01-01 3.71 0.79 4.71 0.17 1.42 1.04 4.63 0.75 1.54 \n", - "1972-01-01 9.29 3.63 14.54 4.25 6.75 4.42 13.00 5.33 10.04 \n", - "1973-01-01 16.50 15.92 14.62 7.41 8.29 11.21 13.54 7.79 10.46 \n", - "1974-01-01 23.21 16.54 16.08 9.75 15.83 11.46 9.54 13.54 13.83 \n", - "1975-01-01 14.04 13.54 11.29 5.46 12.58 5.58 8.12 8.96 9.29 \n", - "1976-01-01 18.34 17.67 14.83 8.00 16.62 10.13 13.17 9.04 13.13 \n", - "1977-01-01 20.04 11.92 20.25 9.13 9.29 8.04 10.75 5.88 9.00 \n", - "1978-01-01 8.33 7.12 7.71 3.54 8.50 7.50 14.71 10.00 11.83 \n", + " RPT VAL ROS KIL SHA BIR \\\n", + "Yr_Mo_Dy \n", + "1961 12.299583 10.351796 11.362369 6.958227 10.881763 7.729726 \n", + "1962 12.246923 10.110438 11.732712 6.960440 10.657918 7.393068 \n", + "1963 12.813452 10.836986 12.541151 7.330055 11.724110 8.434712 \n", + "1964 12.363661 10.920164 12.104372 6.787787 11.454481 7.570874 \n", + "1965 12.451370 11.075534 11.848767 6.858466 11.024795 7.478110 \n", + "1966 13.461973 11.557205 12.020630 7.345726 11.805041 7.793671 \n", + "1967 12.737151 10.990986 11.739397 7.143425 11.630740 7.368164 \n", + "1968 11.835628 10.468197 11.409754 6.477678 10.760765 6.067322 \n", + "1969 11.166356 9.723699 10.902000 5.767973 9.873918 6.189973 \n", + "1970 12.600329 10.726932 11.730247 6.217178 10.567370 7.609452 \n", + "1971 11.273123 9.095178 11.088329 5.241507 9.440329 6.097151 \n", + "1972 12.463962 10.561311 12.058333 5.929699 9.430410 6.358825 \n", + "1973 11.828466 10.680493 10.680493 5.547863 9.640877 6.548740 \n", + "1974 13.643096 11.811781 12.336356 6.427041 11.110986 6.809781 \n", + "1975 12.008575 10.293836 11.564712 5.269096 9.190082 5.668521 \n", + "1976 11.737842 10.203115 10.761230 5.109426 8.846339 6.311038 \n", + "1977 13.099616 11.144493 12.627836 6.073945 10.003836 8.586438 \n", + "1978 12.504356 11.044274 11.380000 6.082356 10.167233 7.650658 \n", "\n", - " CLO BEL MAL date month year day \n", - "Yr_Mo_Dy \n", - "1961-01-01 12.58 18.50 15.04 1961-01-01 1 1961 1 \n", - "1962-01-01 5.17 4.38 7.92 1962-01-01 1 1962 1 \n", - "1963-01-01 14.37 17.58 34.13 1963-01-01 1 1963 1 \n", - "1964-01-01 16.75 28.96 21.00 1964-01-01 1 1964 1 \n", - "1965-01-01 8.63 12.04 17.41 1965-01-01 1 1965 1 \n", - "1966-01-01 17.83 28.33 23.79 1966-01-01 1 1966 1 \n", - "1967-01-01 9.08 10.67 20.91 1967-01-01 1 1967 1 \n", - "1968-01-01 17.62 22.25 27.29 1968-01-01 1 1968 1 \n", - "1969-01-01 6.34 9.17 16.71 1969-01-01 1 1969 1 \n", - "1970-01-01 3.50 7.33 13.00 1970-01-01 1 1970 1 \n", - "1971-01-01 1.08 4.21 9.54 1971-01-01 1 1971 1 \n", - "1972-01-01 8.54 8.71 19.17 1972-01-01 1 1972 1 \n", - "1973-01-01 10.79 13.37 9.71 1973-01-01 1 1973 1 \n", - "1974-01-01 16.66 17.21 25.29 1974-01-01 1 1974 1 \n", - "1975-01-01 5.17 7.71 11.63 1975-01-01 1 1975 1 \n", - "1976-01-01 5.75 11.38 14.96 1976-01-01 1 1976 1 \n", - "1977-01-01 9.00 14.88 25.70 1977-01-01 1 1977 1 \n", - "1978-01-01 10.00 15.09 20.46 1978-01-01 1 1978 1 " + " DUB CLA MUL CLO BEL MAL \n", + "Yr_Mo_Dy \n", + "1961 9.733923 8.858788 8.647652 9.835577 13.502795 13.680773 \n", + "1962 11.020712 8.793753 8.316822 9.676247 12.930685 14.323956 \n", + "1963 11.075699 10.336548 8.903589 10.224438 13.638877 14.999014 \n", + "1964 10.259153 9.467350 7.789016 10.207951 13.740546 14.910301 \n", + "1965 10.618712 8.879918 7.907425 9.918082 12.964247 15.591644 \n", + "1966 10.579808 8.835096 8.514438 9.768959 14.265836 16.307260 \n", + "1967 10.652027 9.325616 8.645014 9.547425 14.774548 17.135945 \n", + "1968 8.859180 8.255519 7.224945 7.832978 12.808634 15.017486 \n", + "1969 8.564493 7.711397 7.924521 7.754384 12.621233 15.762904 \n", + "1970 9.609890 8.334630 9.297616 8.289808 13.183644 16.456027 \n", + "1971 8.385890 6.757315 7.915370 7.229753 12.208932 15.025233 \n", + "1972 9.704508 7.680792 8.357295 7.515273 12.727377 15.028716 \n", + "1973 8.482110 7.614274 8.245534 7.812411 12.169699 15.441096 \n", + "1974 10.084603 9.896986 9.331753 8.736356 13.252959 16.947671 \n", + "1975 8.562603 7.843836 8.797945 7.382822 12.631671 15.307863 \n", + "1976 9.149126 7.146202 8.883716 7.883087 12.332377 15.471448 \n", + "1977 11.523205 8.378384 9.098192 8.821616 13.459068 16.590849 \n", + "1978 9.489342 8.800466 9.089753 8.301699 12.967397 16.771370 " ] }, - "execution_count": 428, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "data.query('month == 1 and day == 1')" + "data.groupby(data.index.to_period('A')).mean()" ] }, { @@ -1323,15 +1441,26 @@ }, { "cell_type": "code", - "execution_count": 429, - "metadata": { - "collapsed": false - }, + "execution_count": 16, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -1348,10 +1477,6 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -1367,582 +1492,458 @@ " \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", - " \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", - " \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", - " \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", - " \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", - " \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", - " \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", + " \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", + " \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", + " \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", + " \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", @@ -1958,725 +1959,601 @@ " \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", - " \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", - " \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", - " \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", - " \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", - " \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", - " \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", + " \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", + " \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", + " \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", + " \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", "
CLOBELMALdatemonthyearday
Yr_Mo_Dy
1961-01-0115.0414.9613.179.29NaN9.8713.6710.2510.8312.5818.5015.041961-01-01119611
1961-02-0114.2515.129.045.8812.087.1710.173.636.505.509.178.001961-02-01219611
1961-03-0112.6713.1311.796.429.798.5410.2513.29NaN12.2120.62NaN1961-03-01319611
1961-04-018.386.348.336.759.339.5411.678.2111.216.4611.967.171961-04-01419611
1961-05-0115.8713.8815.379.7913.4610.179.9614.049.759.9218.6311.121961-05-01519611
1961-06-0115.929.5912.048.7911.546.049.758.299.3310.3410.6712.121961-06-01619611
1961-07-017.216.837.714.428.464.796.716.005.797.966.968.711961-07-01719611
1961-08-019.595.095.544.638.295.254.215.255.375.418.389.081961-08-01819611
1961-09-015.581.134.963.044.252.254.632.713.676.004.795.411961-09-01919611
1961-10-0114.2512.877.878.0013.007.755.839.007.085.2911.794.041961-10-011019611
1961-11-0113.2113.1314.338.5412.1710.2113.0812.1710.9213.5420.1720.041961-11-011119611
1961-12-019.677.758.003.966.002.757.252.505.585.587.7911.171961-12-011219611
1962-01-019.293.4211.543.502.211.9610.412.793.545.174.387.921962-01-01119621
1962-02-0119.1213.9612.2110.5815.7110.6315.7111.0813.1712.6217.6722.711962-02-01219621
1962-03-018.214.839.004.836.002.217.961.874.083.924.085.411962-03-01319621
1962-04-0114.3312.2511.8710.3714.9211.0019.7911.6714.0915.4616.6223.581962-04-01419621
1962-05-019.629.543.583.338.753.752.252.581.672.377.293.251962-05-01519621
1962-06-015.886.298.675.215.004.255.915.414.799.255.2510.711962-06-01619621
1962-07-018.674.176.926.718.175.6611.179.388.7511.1210.2517.081962-07-01719621
1962-08-014.585.376.042.297.873.714.462.584.004.797.217.461962-08-01819621
1962-09-0110.0012.0810.969.259.297.627.418.757.679.6214.5811.921962-09-01919621
1962-10-0114.587.8319.2110.0811.548.3813.2910.638.2112.9218.0518.121962-10-011019621
1962-11-0116.8813.2516.008.9613.4611.4610.4610.1710.3713.2114.8315.161962-11-011119621
1962-12-0118.3815.4111.756.7912.218.048.4210.835.669.0811.5011.501962-12-011219621
1963-01-0115.5913.6219.798.3812.2510.0023.4515.7113.5914.3717.5834.131963-01-01119631
1963-02-0115.417.6224.6711.429.218.1714.047.547.5410.0810.1717.671963-02-01219631
1963-03-0116.7519.6717.678.8719.0815.3716.2114.2911.299.2119.9219.791963-03-01319631
1963-04-0110.549.5912.467.339.469.5911.7911.879.7910.7113.3718.211963-04-01419631
1963-05-0118.7914.1713.5911.6314.1711.9614.4612.4612.8713.9615.2921.621963-05-01519631
1963-06-0113.376.8712.008.5010.049.4210.9212.9611.7911.0410.9213.671963-06-016196311961-0114.84133311.98833313.4316137.73677411.0727598.58806511.1848399.2453339.08580610.10741913.88096814.703226
1961-0216.26928614.97535714.4414819.23074113.85214310.93750011.89071411.84607111.82142912.71428618.58321415.411786
1961-0310.89000011.29645210.7529037.28400010.5093558.8667749.6441949.82967710.29413811.25193516.41096815.720000
1961-0410.7226679.4276679.9980005.8306678.4350006.4950006.9253337.0946677.3423337.23700011.14733310.278333
1961-059.8609688.85000010.8180655.9053339.4903236.5748397.6040008.1770978.0393558.49935511.90032312.011613
1961-069.9041388.5203338.8670006.08300010.8240006.7073339.0956678.8493339.0866679.94033313.99500014.553793
1961-0710.6141948.2216139.1103236.34096810.5325816.1983878.3533338.2841948.0770978.89161311.09258112.312903
1961-0812.03500010.13387110.3358066.84580612.7151618.44193510.09387110.4609689.11161310.54466714.41000014.345333
1961-0912.5310009.65689710.7768977.15551711.0033337.2340008.2060008.9365527.7283339.93133313.71833312.921667
1961-1014.28966710.91580612.2364528.15483911.8654848.33387111.1941949.2719358.94266711.45580614.22935516.793226
1961-1110.8963338.59266711.8503336.0456679.1236676.25066710.8696556.3136676.5750008.38366710.77666712.146000
1961-1214.97354811.90387113.9803237.07387111.3235488.30225811.7535488.1632267.9658069.24677412.23935513.098710
1962-0114.78387113.16032312.5919357.53806511.7796778.72000014.2119359.6000009.67000011.49871016.36935515.661613
1962-0215.84464312.04142915.1789299.26296313.8214299.72678616.91642911.28535712.02107112.12642916.70535718.426786
1962-0311.6343338.60225812.1106456.40322610.3522586.73225810.2232267.6419357.0922588.0525819.69000011.509000
1962-0412.1606679.67666712.0883337.16300010.5440007.55800011.4800008.7220008.7036679.31166712.23433311.780667
1962-0512.74580610.86548411.8748397.47193511.2858067.20903210.1058069.0845167.8680659.29322612.13000012.922581
1962-0610.3056679.6770009.9963336.84666710.7113337.44133310.54866710.3066679.19600010.52033313.75700015.218333
1962-079.9819358.3706459.7535486.0932269.1129035.8770977.7816138.1232266.8296778.61322610.78387111.326129
1962-0810.9641949.69419410.1845166.70129010.4651617.00903211.1367749.0974198.6454849.51161313.11903215.420968
1962-0911.1763339.50700011.6400006.1643339.7223336.2140008.4880007.0203336.3726678.28600011.48366712.313333
1962-109.6993558.0635489.3570974.8180658.4322585.7300008.4480657.6267746.6306459.09129013.28677414.090323
1962-1111.0713337.98400012.0356675.7400008.1356676.3383339.6153335.9430006.3623338.0843339.78666713.298333
1962-1216.78548413.75354814.2764529.55741913.72483910.32161313.73580611.21225810.68354811.88193516.04354820.074516
1963-0114.86838711.11290315.1216136.63580611.0806457.83548412.7974199.8448397.8416139.39000011.42871018.822258
1963-0214.41892911.87642915.6975008.61178612.8878579.60035712.72928610.8232148.98178610.35571413.26642917.120714
1963-0314.85387112.27129014.2958069.26838713.11290310.08806512.16838711.3409689.69096811.51548413.98290314.132581
1963-0411.61600010.13800013.2336677.99033311.5153339.72700011.97900011.35300010.34166711.90033313.87566716.333667
1963-0512.87967711.01064512.8812908.41161312.9816139.73967712.28096810.96419410.74516111.39483914.77709714.975161
1963-0610.6233338.43466711.6850006.42033310.1426677.2193339.2673339.5893338.5836679.58533312.09800011.358667
........................
1976-07-018.501.756.582.132.752.215.372.045.884.504.9610.631976-07-01719761
1976-08-0113.008.388.635.8312.928.2513.009.4210.5811.3414.2120.251976-08-01819761
1976-09-0111.8711.007.386.877.758.3310.346.4610.179.2912.7519.551976-09-01919761
1976-10-0110.966.7110.414.637.585.045.045.546.503.926.795.001976-10-011019761
1976-11-0113.9615.6710.296.4612.799.0810.009.6710.2111.6323.0921.961976-11-011119761
1976-12-0113.4616.429.214.5410.758.6710.884.838.795.918.8313.671976-12-011219761
1977-01-0120.0411.9220.259.139.298.0410.755.889.009.0014.8825.701977-01-01119771
1977-02-0111.839.7111.004.258.588.716.175.668.297.5811.7116.501977-02-01219771
1977-03-018.6314.8310.293.756.638.795.008.127.876.4213.5413.671977-03-01319771
1977-04-0121.6716.0017.3313.5920.8315.9625.6217.6219.4120.6724.3730.091977-04-01419771
1977-05-016.427.128.673.584.584.006.756.133.334.5019.2112.381977-05-01519771
1977-06-017.085.259.712.832.213.505.291.422.000.925.215.631977-06-01619771
1977-07-0115.4116.2917.086.2511.8311.8312.2910.5810.417.2117.377.831977-07-01719771
1977-08-014.332.964.422.330.961.084.961.872.332.0410.509.831977-08-01819771
1977-09-0117.3716.3316.838.5814.4611.8315.0913.9213.2913.8823.2925.171977-09-01919771
1977-10-0116.7515.3412.259.4216.3811.3818.5013.9214.0914.4622.3429.671977-10-011019771
1977-11-0116.7111.5412.174.178.547.1711.126.468.256.2111.0415.631977-11-011119771
1977-12-0113.3710.9212.422.375.796.138.967.386.295.718.5412.421977-12-011219771
1978-01-018.337.127.713.548.507.5014.7110.0011.8310.0015.0920.461978-01-01119781
1978-02-0127.2524.2118.1617.4627.5418.0520.9625.0420.0417.5027.7121.121978-02-01219781
1978-03-0115.046.2116.047.876.426.6712.298.0010.589.335.4117.001978-03-01319781
1978-04-013.427.582.711.383.462.082.674.754.831.677.3313.671978-04-01419781
1978-05-0110.5412.219.085.2911.0010.0811.1713.7511.8711.7912.8727.161978-05-01519781
1978-06-0110.3711.426.466.0411.257.506.465.967.795.465.5010.411978-06-01619781
1978-07-0112.4610.6311.176.7512.929.0412.429.6212.088.0414.0416.171978-07-01719781
1978-08-0119.3315.0920.178.8312.6210.419.3312.339.509.9215.7518.001978-08-01819781
1978-09-018.426.139.875.253.215.717.253.507.336.507.6215.961978-09-01919781
1978-10-019.506.8310.503.886.134.584.216.506.386.5410.6314.091978-10-011019781
1978-11-0113.5916.7511.257.0811.048.338.1711.2910.7511.2523.1325.001978-11-011119781
1978-12-0121.2916.2924.0412.7918.2119.2921.5417.2116.7117.8317.7525.701978-12-0112197811976-079.6877427.9809688.2677424.6316137.5767744.9274196.9948395.1358067.9412906.49129010.26419411.912258
1976-087.6406455.3661299.0006453.1422584.6954843.8477425.4370973.3625815.9464524.4964527.0796779.438387
1976-0911.70366710.51533310.4663335.3133338.7613337.0623338.6176676.4153338.9533337.26333311.58700017.634000
1976-1012.4270979.57225810.6400004.8854849.3935486.9064526.3803236.9332267.5522587.44903211.83774215.078065
1976-1110.9626679.4436679.2020003.6960007.4593337.0263339.0583335.7910006.5770007.51233312.56833315.685333
1976-1211.96225810.08677410.4745163.3838717.6454846.1483878.0345164.5000005.9522586.1477427.81483914.346774
1977-0113.40451610.37774212.7648395.8845169.1596778.00516110.1074197.2116138.2800009.32838712.13193518.830000
1977-0212.33678611.89892912.0167865.31750010.1346439.42392910.9496437.9653579.3200008.71142911.43535717.561429
1977-0316.75000014.49967716.1183878.41451613.29387111.56225814.28322611.36161312.10258111.90645215.86322619.133548
1977-0414.95533312.29300012.6896677.42233311.74000010.13700013.8876679.57400010.34233311.41966715.59366718.274667
1977-059.4412907.17387112.4558064.5077426.1983876.6896779.2264525.6383876.6993556.04548410.21354811.936129
1977-0611.0400008.35300012.2280004.8640008.7903337.2096678.7996675.9310007.0653336.58333311.32133311.175333
1977-0710.8819358.66354810.8164525.4196779.0148397.6000009.9619356.5261297.9809687.62000012.92419412.186774
1977-089.2335487.72774210.6790324.4538716.6206455.9612908.9435484.5432266.3848395.6948399.82516111.659355
1977-0912.47233310.74266711.8493335.63866710.0773338.24266711.9393337.9230008.8280008.50633314.05100017.030333
1977-1015.00451613.96000012.8196776.75419411.7790329.67161312.92483911.87516111.48129010.34032317.64096819.842903
1977-1116.94666715.44466713.5613337.58400012.0886679.16133314.05100011.28600010.31866710.32700017.21533322.333000
1977-1214.75193512.74483913.4696776.59225811.2477429.46677413.23161310.70387110.4016139.41548413.23741919.299677
1978-0114.29193511.87225812.0141946.46322611.4029037.51709712.20709710.2064529.5490329.24741915.10161320.715806
1978-0214.14357112.15321413.8032146.82892911.1967867.85892911.90321411.06892910.0521438.09392910.35392917.298571
1978-0314.71709714.60193513.3341948.23129012.7832269.48871012.12935511.66516111.6564529.65709714.23419418.611290
1978-0411.80500011.25566712.5163335.92033310.2180007.3016678.5863338.3066678.5370006.99900011.19066714.152000
1978-058.2706457.2267746.9016133.7406456.9738714.4496775.4209686.1306455.7425815.9264529.26354810.756452
1978-0611.3866679.47433310.2533336.05300010.3953337.4903337.9280007.8020008.2203337.55000011.50100015.078667
1978-0712.8200009.7509689.9103236.48387110.0551617.8206457.8319358.4593558.5238717.73290312.64871014.077419
1978-089.6451618.2593559.0322584.5029037.3680655.9351615.6503235.4177427.2412905.53677410.46677412.054194
1978-0910.91366710.89500010.6350005.72500010.3720009.27833310.7903339.58300010.0693338.93900015.68033319.391333
1978-109.8977428.6709689.2958064.7212908.5251616.7741948.1154847.3377428.2977428.24387113.77677417.150000
1978-1116.15166714.80266713.5080007.31733311.4750008.74300011.4923339.65733310.70133310.67600017.40466720.723000
1978-1216.17548413.74806515.6351617.09483911.3987109.24161312.07741910.19483910.61677411.02871013.85967721.371613
\n", - "

216 rows × 16 columns

\n", + "

216 rows × 12 columns

\n", "
" ], "text/plain": [ - " RPT VAL ROS KIL SHA BIR DUB CLA MUL \\\n", + " RPT VAL ROS KIL SHA BIR \\\n", "Yr_Mo_Dy \n", - "1961-01-01 15.04 14.96 13.17 9.29 NaN 9.87 13.67 10.25 10.83 \n", - "1961-02-01 14.25 15.12 9.04 5.88 12.08 7.17 10.17 3.63 6.50 \n", - "1961-03-01 12.67 13.13 11.79 6.42 9.79 8.54 10.25 13.29 NaN \n", - "1961-04-01 8.38 6.34 8.33 6.75 9.33 9.54 11.67 8.21 11.21 \n", - "1961-05-01 15.87 13.88 15.37 9.79 13.46 10.17 9.96 14.04 9.75 \n", - "1961-06-01 15.92 9.59 12.04 8.79 11.54 6.04 9.75 8.29 9.33 \n", - "1961-07-01 7.21 6.83 7.71 4.42 8.46 4.79 6.71 6.00 5.79 \n", - "1961-08-01 9.59 5.09 5.54 4.63 8.29 5.25 4.21 5.25 5.37 \n", - "1961-09-01 5.58 1.13 4.96 3.04 4.25 2.25 4.63 2.71 3.67 \n", - "1961-10-01 14.25 12.87 7.87 8.00 13.00 7.75 5.83 9.00 7.08 \n", - "1961-11-01 13.21 13.13 14.33 8.54 12.17 10.21 13.08 12.17 10.92 \n", - "1961-12-01 9.67 7.75 8.00 3.96 6.00 2.75 7.25 2.50 5.58 \n", - "1962-01-01 9.29 3.42 11.54 3.50 2.21 1.96 10.41 2.79 3.54 \n", - "1962-02-01 19.12 13.96 12.21 10.58 15.71 10.63 15.71 11.08 13.17 \n", - "1962-03-01 8.21 4.83 9.00 4.83 6.00 2.21 7.96 1.87 4.08 \n", - "1962-04-01 14.33 12.25 11.87 10.37 14.92 11.00 19.79 11.67 14.09 \n", - "1962-05-01 9.62 9.54 3.58 3.33 8.75 3.75 2.25 2.58 1.67 \n", - "1962-06-01 5.88 6.29 8.67 5.21 5.00 4.25 5.91 5.41 4.79 \n", - "1962-07-01 8.67 4.17 6.92 6.71 8.17 5.66 11.17 9.38 8.75 \n", - "1962-08-01 4.58 5.37 6.04 2.29 7.87 3.71 4.46 2.58 4.00 \n", - "1962-09-01 10.00 12.08 10.96 9.25 9.29 7.62 7.41 8.75 7.67 \n", - "1962-10-01 14.58 7.83 19.21 10.08 11.54 8.38 13.29 10.63 8.21 \n", - "1962-11-01 16.88 13.25 16.00 8.96 13.46 11.46 10.46 10.17 10.37 \n", - "1962-12-01 18.38 15.41 11.75 6.79 12.21 8.04 8.42 10.83 5.66 \n", - "1963-01-01 15.59 13.62 19.79 8.38 12.25 10.00 23.45 15.71 13.59 \n", - "1963-02-01 15.41 7.62 24.67 11.42 9.21 8.17 14.04 7.54 7.54 \n", - "1963-03-01 16.75 19.67 17.67 8.87 19.08 15.37 16.21 14.29 11.29 \n", - "1963-04-01 10.54 9.59 12.46 7.33 9.46 9.59 11.79 11.87 9.79 \n", - "1963-05-01 18.79 14.17 13.59 11.63 14.17 11.96 14.46 12.46 12.87 \n", - "1963-06-01 13.37 6.87 12.00 8.50 10.04 9.42 10.92 12.96 11.79 \n", - "... ... ... ... ... ... ... ... ... ... \n", - "1976-07-01 8.50 1.75 6.58 2.13 2.75 2.21 5.37 2.04 5.88 \n", - "1976-08-01 13.00 8.38 8.63 5.83 12.92 8.25 13.00 9.42 10.58 \n", - "1976-09-01 11.87 11.00 7.38 6.87 7.75 8.33 10.34 6.46 10.17 \n", - "1976-10-01 10.96 6.71 10.41 4.63 7.58 5.04 5.04 5.54 6.50 \n", - "1976-11-01 13.96 15.67 10.29 6.46 12.79 9.08 10.00 9.67 10.21 \n", - "1976-12-01 13.46 16.42 9.21 4.54 10.75 8.67 10.88 4.83 8.79 \n", - "1977-01-01 20.04 11.92 20.25 9.13 9.29 8.04 10.75 5.88 9.00 \n", - "1977-02-01 11.83 9.71 11.00 4.25 8.58 8.71 6.17 5.66 8.29 \n", - "1977-03-01 8.63 14.83 10.29 3.75 6.63 8.79 5.00 8.12 7.87 \n", - "1977-04-01 21.67 16.00 17.33 13.59 20.83 15.96 25.62 17.62 19.41 \n", - "1977-05-01 6.42 7.12 8.67 3.58 4.58 4.00 6.75 6.13 3.33 \n", - "1977-06-01 7.08 5.25 9.71 2.83 2.21 3.50 5.29 1.42 2.00 \n", - "1977-07-01 15.41 16.29 17.08 6.25 11.83 11.83 12.29 10.58 10.41 \n", - "1977-08-01 4.33 2.96 4.42 2.33 0.96 1.08 4.96 1.87 2.33 \n", - "1977-09-01 17.37 16.33 16.83 8.58 14.46 11.83 15.09 13.92 13.29 \n", - "1977-10-01 16.75 15.34 12.25 9.42 16.38 11.38 18.50 13.92 14.09 \n", - "1977-11-01 16.71 11.54 12.17 4.17 8.54 7.17 11.12 6.46 8.25 \n", - "1977-12-01 13.37 10.92 12.42 2.37 5.79 6.13 8.96 7.38 6.29 \n", - "1978-01-01 8.33 7.12 7.71 3.54 8.50 7.50 14.71 10.00 11.83 \n", - "1978-02-01 27.25 24.21 18.16 17.46 27.54 18.05 20.96 25.04 20.04 \n", - "1978-03-01 15.04 6.21 16.04 7.87 6.42 6.67 12.29 8.00 10.58 \n", - "1978-04-01 3.42 7.58 2.71 1.38 3.46 2.08 2.67 4.75 4.83 \n", - "1978-05-01 10.54 12.21 9.08 5.29 11.00 10.08 11.17 13.75 11.87 \n", - "1978-06-01 10.37 11.42 6.46 6.04 11.25 7.50 6.46 5.96 7.79 \n", - "1978-07-01 12.46 10.63 11.17 6.75 12.92 9.04 12.42 9.62 12.08 \n", - "1978-08-01 19.33 15.09 20.17 8.83 12.62 10.41 9.33 12.33 9.50 \n", - "1978-09-01 8.42 6.13 9.87 5.25 3.21 5.71 7.25 3.50 7.33 \n", - "1978-10-01 9.50 6.83 10.50 3.88 6.13 4.58 4.21 6.50 6.38 \n", - "1978-11-01 13.59 16.75 11.25 7.08 11.04 8.33 8.17 11.29 10.75 \n", - "1978-12-01 21.29 16.29 24.04 12.79 18.21 19.29 21.54 17.21 16.71 \n", + "1961-01 14.841333 11.988333 13.431613 7.736774 11.072759 8.588065 \n", + "1961-02 16.269286 14.975357 14.441481 9.230741 13.852143 10.937500 \n", + "1961-03 10.890000 11.296452 10.752903 7.284000 10.509355 8.866774 \n", + "1961-04 10.722667 9.427667 9.998000 5.830667 8.435000 6.495000 \n", + "1961-05 9.860968 8.850000 10.818065 5.905333 9.490323 6.574839 \n", + "1961-06 9.904138 8.520333 8.867000 6.083000 10.824000 6.707333 \n", + "1961-07 10.614194 8.221613 9.110323 6.340968 10.532581 6.198387 \n", + "1961-08 12.035000 10.133871 10.335806 6.845806 12.715161 8.441935 \n", + "1961-09 12.531000 9.656897 10.776897 7.155517 11.003333 7.234000 \n", + "1961-10 14.289667 10.915806 12.236452 8.154839 11.865484 8.333871 \n", + "1961-11 10.896333 8.592667 11.850333 6.045667 9.123667 6.250667 \n", + "1961-12 14.973548 11.903871 13.980323 7.073871 11.323548 8.302258 \n", + "1962-01 14.783871 13.160323 12.591935 7.538065 11.779677 8.720000 \n", + "1962-02 15.844643 12.041429 15.178929 9.262963 13.821429 9.726786 \n", + "1962-03 11.634333 8.602258 12.110645 6.403226 10.352258 6.732258 \n", + "1962-04 12.160667 9.676667 12.088333 7.163000 10.544000 7.558000 \n", + "1962-05 12.745806 10.865484 11.874839 7.471935 11.285806 7.209032 \n", + "1962-06 10.305667 9.677000 9.996333 6.846667 10.711333 7.441333 \n", + "1962-07 9.981935 8.370645 9.753548 6.093226 9.112903 5.877097 \n", + "1962-08 10.964194 9.694194 10.184516 6.701290 10.465161 7.009032 \n", + "1962-09 11.176333 9.507000 11.640000 6.164333 9.722333 6.214000 \n", + "1962-10 9.699355 8.063548 9.357097 4.818065 8.432258 5.730000 \n", + "1962-11 11.071333 7.984000 12.035667 5.740000 8.135667 6.338333 \n", + "1962-12 16.785484 13.753548 14.276452 9.557419 13.724839 10.321613 \n", + "1963-01 14.868387 11.112903 15.121613 6.635806 11.080645 7.835484 \n", + "1963-02 14.418929 11.876429 15.697500 8.611786 12.887857 9.600357 \n", + "1963-03 14.853871 12.271290 14.295806 9.268387 13.112903 10.088065 \n", + "1963-04 11.616000 10.138000 13.233667 7.990333 11.515333 9.727000 \n", + "1963-05 12.879677 11.010645 12.881290 8.411613 12.981613 9.739677 \n", + "1963-06 10.623333 8.434667 11.685000 6.420333 10.142667 7.219333 \n", + "... ... ... ... ... ... ... \n", + "1976-07 9.687742 7.980968 8.267742 4.631613 7.576774 4.927419 \n", + "1976-08 7.640645 5.366129 9.000645 3.142258 4.695484 3.847742 \n", + "1976-09 11.703667 10.515333 10.466333 5.313333 8.761333 7.062333 \n", + "1976-10 12.427097 9.572258 10.640000 4.885484 9.393548 6.906452 \n", + "1976-11 10.962667 9.443667 9.202000 3.696000 7.459333 7.026333 \n", + "1976-12 11.962258 10.086774 10.474516 3.383871 7.645484 6.148387 \n", + "1977-01 13.404516 10.377742 12.764839 5.884516 9.159677 8.005161 \n", + "1977-02 12.336786 11.898929 12.016786 5.317500 10.134643 9.423929 \n", + "1977-03 16.750000 14.499677 16.118387 8.414516 13.293871 11.562258 \n", + "1977-04 14.955333 12.293000 12.689667 7.422333 11.740000 10.137000 \n", + "1977-05 9.441290 7.173871 12.455806 4.507742 6.198387 6.689677 \n", + "1977-06 11.040000 8.353000 12.228000 4.864000 8.790333 7.209667 \n", + "1977-07 10.881935 8.663548 10.816452 5.419677 9.014839 7.600000 \n", + "1977-08 9.233548 7.727742 10.679032 4.453871 6.620645 5.961290 \n", + "1977-09 12.472333 10.742667 11.849333 5.638667 10.077333 8.242667 \n", + "1977-10 15.004516 13.960000 12.819677 6.754194 11.779032 9.671613 \n", + "1977-11 16.946667 15.444667 13.561333 7.584000 12.088667 9.161333 \n", + "1977-12 14.751935 12.744839 13.469677 6.592258 11.247742 9.466774 \n", + "1978-01 14.291935 11.872258 12.014194 6.463226 11.402903 7.517097 \n", + "1978-02 14.143571 12.153214 13.803214 6.828929 11.196786 7.858929 \n", + "1978-03 14.717097 14.601935 13.334194 8.231290 12.783226 9.488710 \n", + "1978-04 11.805000 11.255667 12.516333 5.920333 10.218000 7.301667 \n", + "1978-05 8.270645 7.226774 6.901613 3.740645 6.973871 4.449677 \n", + "1978-06 11.386667 9.474333 10.253333 6.053000 10.395333 7.490333 \n", + "1978-07 12.820000 9.750968 9.910323 6.483871 10.055161 7.820645 \n", + "1978-08 9.645161 8.259355 9.032258 4.502903 7.368065 5.935161 \n", + "1978-09 10.913667 10.895000 10.635000 5.725000 10.372000 9.278333 \n", + "1978-10 9.897742 8.670968 9.295806 4.721290 8.525161 6.774194 \n", + "1978-11 16.151667 14.802667 13.508000 7.317333 11.475000 8.743000 \n", + "1978-12 16.175484 13.748065 15.635161 7.094839 11.398710 9.241613 \n", "\n", - " CLO BEL MAL date month year day \n", - "Yr_Mo_Dy \n", - "1961-01-01 12.58 18.50 15.04 1961-01-01 1 1961 1 \n", - "1961-02-01 5.50 9.17 8.00 1961-02-01 2 1961 1 \n", - "1961-03-01 12.21 20.62 NaN 1961-03-01 3 1961 1 \n", - "1961-04-01 6.46 11.96 7.17 1961-04-01 4 1961 1 \n", - "1961-05-01 9.92 18.63 11.12 1961-05-01 5 1961 1 \n", - "1961-06-01 10.34 10.67 12.12 1961-06-01 6 1961 1 \n", - "1961-07-01 7.96 6.96 8.71 1961-07-01 7 1961 1 \n", - "1961-08-01 5.41 8.38 9.08 1961-08-01 8 1961 1 \n", - "1961-09-01 6.00 4.79 5.41 1961-09-01 9 1961 1 \n", - "1961-10-01 5.29 11.79 4.04 1961-10-01 10 1961 1 \n", - "1961-11-01 13.54 20.17 20.04 1961-11-01 11 1961 1 \n", - "1961-12-01 5.58 7.79 11.17 1961-12-01 12 1961 1 \n", - "1962-01-01 5.17 4.38 7.92 1962-01-01 1 1962 1 \n", - "1962-02-01 12.62 17.67 22.71 1962-02-01 2 1962 1 \n", - "1962-03-01 3.92 4.08 5.41 1962-03-01 3 1962 1 \n", - "1962-04-01 15.46 16.62 23.58 1962-04-01 4 1962 1 \n", - "1962-05-01 2.37 7.29 3.25 1962-05-01 5 1962 1 \n", - "1962-06-01 9.25 5.25 10.71 1962-06-01 6 1962 1 \n", - "1962-07-01 11.12 10.25 17.08 1962-07-01 7 1962 1 \n", - "1962-08-01 4.79 7.21 7.46 1962-08-01 8 1962 1 \n", - "1962-09-01 9.62 14.58 11.92 1962-09-01 9 1962 1 \n", - "1962-10-01 12.92 18.05 18.12 1962-10-01 10 1962 1 \n", - "1962-11-01 13.21 14.83 15.16 1962-11-01 11 1962 1 \n", - "1962-12-01 9.08 11.50 11.50 1962-12-01 12 1962 1 \n", - "1963-01-01 14.37 17.58 34.13 1963-01-01 1 1963 1 \n", - "1963-02-01 10.08 10.17 17.67 1963-02-01 2 1963 1 \n", - "1963-03-01 9.21 19.92 19.79 1963-03-01 3 1963 1 \n", - "1963-04-01 10.71 13.37 18.21 1963-04-01 4 1963 1 \n", - "1963-05-01 13.96 15.29 21.62 1963-05-01 5 1963 1 \n", - "1963-06-01 11.04 10.92 13.67 1963-06-01 6 1963 1 \n", - "... ... ... ... ... ... ... ... \n", - "1976-07-01 4.50 4.96 10.63 1976-07-01 7 1976 1 \n", - "1976-08-01 11.34 14.21 20.25 1976-08-01 8 1976 1 \n", - "1976-09-01 9.29 12.75 19.55 1976-09-01 9 1976 1 \n", - "1976-10-01 3.92 6.79 5.00 1976-10-01 10 1976 1 \n", - "1976-11-01 11.63 23.09 21.96 1976-11-01 11 1976 1 \n", - "1976-12-01 5.91 8.83 13.67 1976-12-01 12 1976 1 \n", - "1977-01-01 9.00 14.88 25.70 1977-01-01 1 1977 1 \n", - "1977-02-01 7.58 11.71 16.50 1977-02-01 2 1977 1 \n", - "1977-03-01 6.42 13.54 13.67 1977-03-01 3 1977 1 \n", - "1977-04-01 20.67 24.37 30.09 1977-04-01 4 1977 1 \n", - "1977-05-01 4.50 19.21 12.38 1977-05-01 5 1977 1 \n", - "1977-06-01 0.92 5.21 5.63 1977-06-01 6 1977 1 \n", - "1977-07-01 7.21 17.37 7.83 1977-07-01 7 1977 1 \n", - "1977-08-01 2.04 10.50 9.83 1977-08-01 8 1977 1 \n", - "1977-09-01 13.88 23.29 25.17 1977-09-01 9 1977 1 \n", - "1977-10-01 14.46 22.34 29.67 1977-10-01 10 1977 1 \n", - "1977-11-01 6.21 11.04 15.63 1977-11-01 11 1977 1 \n", - "1977-12-01 5.71 8.54 12.42 1977-12-01 12 1977 1 \n", - "1978-01-01 10.00 15.09 20.46 1978-01-01 1 1978 1 \n", - "1978-02-01 17.50 27.71 21.12 1978-02-01 2 1978 1 \n", - "1978-03-01 9.33 5.41 17.00 1978-03-01 3 1978 1 \n", - "1978-04-01 1.67 7.33 13.67 1978-04-01 4 1978 1 \n", - "1978-05-01 11.79 12.87 27.16 1978-05-01 5 1978 1 \n", - "1978-06-01 5.46 5.50 10.41 1978-06-01 6 1978 1 \n", - "1978-07-01 8.04 14.04 16.17 1978-07-01 7 1978 1 \n", - "1978-08-01 9.92 15.75 18.00 1978-08-01 8 1978 1 \n", - "1978-09-01 6.50 7.62 15.96 1978-09-01 9 1978 1 \n", - "1978-10-01 6.54 10.63 14.09 1978-10-01 10 1978 1 \n", - "1978-11-01 11.25 23.13 25.00 1978-11-01 11 1978 1 \n", - "1978-12-01 17.83 17.75 25.70 1978-12-01 12 1978 1 \n", + " DUB CLA MUL CLO BEL MAL \n", + "Yr_Mo_Dy \n", + "1961-01 11.184839 9.245333 9.085806 10.107419 13.880968 14.703226 \n", + "1961-02 11.890714 11.846071 11.821429 12.714286 18.583214 15.411786 \n", + "1961-03 9.644194 9.829677 10.294138 11.251935 16.410968 15.720000 \n", + "1961-04 6.925333 7.094667 7.342333 7.237000 11.147333 10.278333 \n", + "1961-05 7.604000 8.177097 8.039355 8.499355 11.900323 12.011613 \n", + "1961-06 9.095667 8.849333 9.086667 9.940333 13.995000 14.553793 \n", + "1961-07 8.353333 8.284194 8.077097 8.891613 11.092581 12.312903 \n", + "1961-08 10.093871 10.460968 9.111613 10.544667 14.410000 14.345333 \n", + "1961-09 8.206000 8.936552 7.728333 9.931333 13.718333 12.921667 \n", + "1961-10 11.194194 9.271935 8.942667 11.455806 14.229355 16.793226 \n", + "1961-11 10.869655 6.313667 6.575000 8.383667 10.776667 12.146000 \n", + "1961-12 11.753548 8.163226 7.965806 9.246774 12.239355 13.098710 \n", + "1962-01 14.211935 9.600000 9.670000 11.498710 16.369355 15.661613 \n", + "1962-02 16.916429 11.285357 12.021071 12.126429 16.705357 18.426786 \n", + "1962-03 10.223226 7.641935 7.092258 8.052581 9.690000 11.509000 \n", + "1962-04 11.480000 8.722000 8.703667 9.311667 12.234333 11.780667 \n", + "1962-05 10.105806 9.084516 7.868065 9.293226 12.130000 12.922581 \n", + "1962-06 10.548667 10.306667 9.196000 10.520333 13.757000 15.218333 \n", + "1962-07 7.781613 8.123226 6.829677 8.613226 10.783871 11.326129 \n", + "1962-08 11.136774 9.097419 8.645484 9.511613 13.119032 15.420968 \n", + "1962-09 8.488000 7.020333 6.372667 8.286000 11.483667 12.313333 \n", + "1962-10 8.448065 7.626774 6.630645 9.091290 13.286774 14.090323 \n", + "1962-11 9.615333 5.943000 6.362333 8.084333 9.786667 13.298333 \n", + "1962-12 13.735806 11.212258 10.683548 11.881935 16.043548 20.074516 \n", + "1963-01 12.797419 9.844839 7.841613 9.390000 11.428710 18.822258 \n", + "1963-02 12.729286 10.823214 8.981786 10.355714 13.266429 17.120714 \n", + "1963-03 12.168387 11.340968 9.690968 11.515484 13.982903 14.132581 \n", + "1963-04 11.979000 11.353000 10.341667 11.900333 13.875667 16.333667 \n", + "1963-05 12.280968 10.964194 10.745161 11.394839 14.777097 14.975161 \n", + "1963-06 9.267333 9.589333 8.583667 9.585333 12.098000 11.358667 \n", + "... ... ... ... ... ... ... \n", + "1976-07 6.994839 5.135806 7.941290 6.491290 10.264194 11.912258 \n", + "1976-08 5.437097 3.362581 5.946452 4.496452 7.079677 9.438387 \n", + "1976-09 8.617667 6.415333 8.953333 7.263333 11.587000 17.634000 \n", + "1976-10 6.380323 6.933226 7.552258 7.449032 11.837742 15.078065 \n", + "1976-11 9.058333 5.791000 6.577000 7.512333 12.568333 15.685333 \n", + "1976-12 8.034516 4.500000 5.952258 6.147742 7.814839 14.346774 \n", + "1977-01 10.107419 7.211613 8.280000 9.328387 12.131935 18.830000 \n", + "1977-02 10.949643 7.965357 9.320000 8.711429 11.435357 17.561429 \n", + "1977-03 14.283226 11.361613 12.102581 11.906452 15.863226 19.133548 \n", + "1977-04 13.887667 9.574000 10.342333 11.419667 15.593667 18.274667 \n", + "1977-05 9.226452 5.638387 6.699355 6.045484 10.213548 11.936129 \n", + "1977-06 8.799667 5.931000 7.065333 6.583333 11.321333 11.175333 \n", + "1977-07 9.961935 6.526129 7.980968 7.620000 12.924194 12.186774 \n", + "1977-08 8.943548 4.543226 6.384839 5.694839 9.825161 11.659355 \n", + "1977-09 11.939333 7.923000 8.828000 8.506333 14.051000 17.030333 \n", + "1977-10 12.924839 11.875161 11.481290 10.340323 17.640968 19.842903 \n", + "1977-11 14.051000 11.286000 10.318667 10.327000 17.215333 22.333000 \n", + "1977-12 13.231613 10.703871 10.401613 9.415484 13.237419 19.299677 \n", + "1978-01 12.207097 10.206452 9.549032 9.247419 15.101613 20.715806 \n", + "1978-02 11.903214 11.068929 10.052143 8.093929 10.353929 17.298571 \n", + "1978-03 12.129355 11.665161 11.656452 9.657097 14.234194 18.611290 \n", + "1978-04 8.586333 8.306667 8.537000 6.999000 11.190667 14.152000 \n", + "1978-05 5.420968 6.130645 5.742581 5.926452 9.263548 10.756452 \n", + "1978-06 7.928000 7.802000 8.220333 7.550000 11.501000 15.078667 \n", + "1978-07 7.831935 8.459355 8.523871 7.732903 12.648710 14.077419 \n", + "1978-08 5.650323 5.417742 7.241290 5.536774 10.466774 12.054194 \n", + "1978-09 10.790333 9.583000 10.069333 8.939000 15.680333 19.391333 \n", + "1978-10 8.115484 7.337742 8.297742 8.243871 13.776774 17.150000 \n", + "1978-11 11.492333 9.657333 10.701333 10.676000 17.404667 20.723000 \n", + "1978-12 12.077419 10.194839 10.616774 11.028710 13.859677 21.371613 \n", "\n", - "[216 rows x 16 columns]" + "[216 rows x 12 columns]" ] }, - "execution_count": 429, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "data.query('day == 1')" + "data.groupby(data.index.to_period('M')).mean()" ] }, { @@ -2688,198 +2565,8 @@ }, { "cell_type": "code", - "execution_count": 430, - "metadata": { - "collapsed": false - }, - "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", - " \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", - "
RPTVALROSKILSHABIRDUBCLAMULCLOBELMALdatemonthyearday
Yr_Mo_Dy
1961-01-0115.0414.9613.179.29NaN9.8713.6710.2510.8312.5818.5015.041961-01-01119611
1961-01-0810.969.757.625.919.627.2914.297.629.2510.4616.6216.461961-01-08119618
1961-01-1512.049.6711.752.377.383.132.506.834.755.637.546.751961-01-151196115
1961-01-229.595.889.922.176.875.509.387.046.347.5010.889.921961-01-221196122
1961-01-29NaN23.9122.2917.5424.0819.7022.0020.2521.4619.9527.7123.381961-01-291196129
\n", - "
" - ], - "text/plain": [ - " RPT VAL ROS KIL SHA BIR DUB CLA MUL \\\n", - "Yr_Mo_Dy \n", - "1961-01-01 15.04 14.96 13.17 9.29 NaN 9.87 13.67 10.25 10.83 \n", - "1961-01-08 10.96 9.75 7.62 5.91 9.62 7.29 14.29 7.62 9.25 \n", - "1961-01-15 12.04 9.67 11.75 2.37 7.38 3.13 2.50 6.83 4.75 \n", - "1961-01-22 9.59 5.88 9.92 2.17 6.87 5.50 9.38 7.04 6.34 \n", - "1961-01-29 NaN 23.91 22.29 17.54 24.08 19.70 22.00 20.25 21.46 \n", - "\n", - " CLO BEL MAL date month year day \n", - "Yr_Mo_Dy \n", - "1961-01-01 12.58 18.50 15.04 1961-01-01 1 1961 1 \n", - "1961-01-08 10.46 16.62 16.46 1961-01-08 1 1961 8 \n", - "1961-01-15 5.63 7.54 6.75 1961-01-15 1 1961 15 \n", - "1961-01-22 7.50 10.88 9.92 1961-01-22 1 1961 22 \n", - "1961-01-29 19.95 27.71 23.38 1961-01-29 1 1961 29 " - ] - }, - "execution_count": 430, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data[::7].head()" - ] - }, - { - "cell_type": "markdown", + "execution_count": 14, "metadata": {}, - "source": [ - "### Step 15. Calculate the mean windspeed for each month in the dataset. \n", - "#### Treat January 1961 and January 1962 as *different* months.\n", - "#### (hint: first find a way to create an identifier unique for each month.)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, "outputs": [ { "data": { @@ -2889,594 +2576,485 @@ " \n", " \n", " \n", - " Yr\n", - " Mo\n", - " Dy\n", " RPT\n", " VAL\n", " ROS\n", " KIL\n", - " SHA\n", - " BIR\n", - " DUB\n", - " CLA\n", - " MUL\n", - " CLO\n", - " BEL\n", - " MAL\n", - " months_num\n", - " \n", - " \n", - " \n", - " \n", - " 0\n", - " 61\n", - " 1\n", - " 1\n", - " 15.04\n", - " 14.96\n", - " 13.17\n", - " 9.29\n", - " NaN\n", - " 9.87\n", - " 13.67\n", - " 10.25\n", - " 10.83\n", - " 12.58\n", - " 18.50\n", - " 15.04\n", - " 1\n", - " \n", - " \n", - " 1\n", - " 61\n", - " 1\n", - " 2\n", - " 14.71\n", - " NaN\n", - " 10.83\n", - " 6.50\n", - " 12.62\n", - " 7.67\n", - " 11.50\n", - " 10.04\n", - " 9.79\n", - " 9.67\n", - " 17.54\n", - " 13.83\n", - " 1\n", - " \n", - " \n", - " 2\n", - " 61\n", - " 1\n", - " 3\n", - " 18.50\n", - " 16.88\n", - " 12.33\n", - " 10.13\n", - " 11.17\n", - " 6.17\n", - " 11.25\n", - " NaN\n", - " 8.50\n", - " 7.67\n", - " 12.75\n", - " 12.71\n", - " 1\n", - " \n", - " \n", - " 3\n", - " 61\n", - " 1\n", - " 4\n", - " 10.58\n", - " 6.63\n", - " 11.75\n", - " 4.58\n", - " 4.54\n", - " 2.88\n", - " 8.63\n", - " 1.79\n", - " 5.83\n", - " 5.88\n", - " 5.46\n", - " 10.88\n", - " 1\n", - " \n", - " \n", - " 4\n", - " 61\n", - " 1\n", - " 5\n", - " 13.33\n", - " 13.25\n", - " 11.42\n", - " 6.17\n", - " 10.71\n", - " 8.21\n", - " 11.92\n", - " 6.54\n", - " 10.92\n", - " 10.34\n", - " 12.92\n", - " 11.83\n", - " 1\n", - " \n", - " \n", - " 5\n", - " 61\n", - " 1\n", - " 6\n", - " 13.21\n", - " 8.12\n", - " 9.96\n", - " 6.67\n", - " 5.37\n", - " 4.50\n", - " 10.67\n", - " 4.42\n", - " 7.17\n", - " 7.50\n", - " 8.12\n", - " 13.17\n", - " 1\n", - " \n", - " \n", - " 6\n", - " 61\n", - " 1\n", - " 7\n", - " 13.50\n", - " 14.29\n", - " 9.50\n", - " 4.96\n", - " 12.29\n", - " 8.33\n", - " 9.17\n", - " 9.29\n", - " 7.58\n", - " 7.96\n", - " 13.96\n", - " 13.79\n", - " 1\n", - " \n", - " \n", - " 7\n", - " 61\n", - " 1\n", - " 8\n", - " 10.96\n", - " 9.75\n", - " 7.62\n", - " 5.91\n", - " 9.62\n", - " 7.29\n", - " 14.29\n", - " 7.62\n", - " 9.25\n", - " 10.46\n", - " 16.62\n", - " 16.46\n", - " 1\n", - " \n", - " \n", - " 8\n", - " 61\n", - " 1\n", - " 9\n", - " 12.58\n", - " 10.83\n", - " 10.00\n", - " 4.75\n", - " 10.37\n", - " 6.79\n", - " 8.04\n", - " 10.13\n", - " 7.79\n", - " 9.08\n", - " 13.04\n", - " 15.37\n", - " 1\n", - " \n", - " \n", - " 9\n", - " 61\n", - " 1\n", - " 10\n", - " 13.37\n", - " 11.12\n", - " 19.50\n", - " 8.33\n", - " 9.71\n", - " 6.54\n", - " 11.42\n", - " 7.79\n", - " 8.54\n", - " 9.00\n", - " 8.58\n", - " 11.83\n", - " 1\n", - " \n", - " \n", - " 10\n", - " 61\n", - " 1\n", - " 11\n", - " 10.58\n", - " 9.87\n", - " 8.42\n", - " 2.79\n", - " 8.71\n", - " 7.25\n", - " 7.54\n", - " 8.33\n", - " 5.71\n", - " 8.67\n", - " 20.71\n", - " 16.92\n", - " 1\n", - " \n", - " \n", - " 11\n", - " 61\n", - " 1\n", - " 12\n", - " 19.75\n", - " 12.08\n", - " 18.50\n", - " 10.54\n", - " 10.29\n", - " 9.46\n", - " 15.54\n", - " 11.50\n", - " 10.37\n", - " 14.58\n", - " 15.59\n", - " 14.09\n", - " 1\n", - " \n", - " \n", - " 12\n", - " 61\n", - " 1\n", - " 13\n", - " 9.92\n", - " 3.54\n", - " 8.46\n", - " 2.96\n", - " 2.29\n", - " 0.96\n", - " 4.63\n", - " 0.58\n", - " 2.33\n", - " 3.37\n", - " 5.25\n", - " 7.04\n", - " 1\n", - " \n", - " \n", - " 13\n", - " 61\n", - " 1\n", - " 14\n", - " 9.04\n", - " 5.66\n", - " 7.08\n", - " 0.67\n", - " 2.71\n", - " 1.38\n", - " 3.08\n", - " 2.58\n", - " 0.50\n", - " 2.67\n", - " 7.17\n", - " 5.17\n", - " 1\n", + " SHA\n", + " BIR\n", + " DUB\n", + " CLA\n", + " MUL\n", + " CLO\n", + " BEL\n", + " MAL\n", " \n", " \n", - " 14\n", - " 61\n", - " 1\n", - " 15\n", - " 12.04\n", - " 9.67\n", - " 11.75\n", - " 2.37\n", - " 7.38\n", - " 3.13\n", - " 2.50\n", - " 6.83\n", - " 4.75\n", - " 5.63\n", - " 7.54\n", - " 6.75\n", - " 1\n", + " Yr_Mo_Dy\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", + " \n", " \n", - " 15\n", - " 61\n", - " 1\n", - " 16\n", - " 16.42\n", - " 11.25\n", - " 15.67\n", - " 4.71\n", - " 11.34\n", - " 6.92\n", - " 9.25\n", - " 8.79\n", - " 8.21\n", - " 7.33\n", - " 13.04\n", - " 9.04\n", - " 1\n", + " 1960-12-26/1961-01-01\n", + " 15.040000\n", + " 14.960000\n", + " 13.170000\n", + " 9.290000\n", + " NaN\n", + " 9.870000\n", + " 13.670000\n", + " 10.250000\n", + " 10.830000\n", + " 12.580000\n", + " 18.500000\n", + " 15.040000\n", " \n", " \n", - " 16\n", - " 61\n", - " 1\n", - " 17\n", - " 17.75\n", - " 14.37\n", - " 17.33\n", - " 10.13\n", - " 13.96\n", - " 13.37\n", - " 13.42\n", - " 11.04\n", - " 8.71\n", - " 11.38\n", - " 15.92\n", - " 16.08\n", - " 1\n", + " 1961-01-02/1961-01-08\n", + " 13.541429\n", + " 11.486667\n", + " 10.487143\n", + " 6.417143\n", + " 9.474286\n", + " 6.435714\n", + " 11.061429\n", + " 6.616667\n", + " 8.434286\n", + " 8.497143\n", + " 12.481429\n", + " 13.238571\n", " \n", " \n", - " 17\n", - " 61\n", - " 1\n", - " 18\n", - " 19.83\n", - " 12.04\n", - " 20.79\n", - " 18.54\n", - " NaN\n", - " 10.29\n", - " 17.83\n", - " 11.38\n", - " 14.67\n", - " 16.71\n", - " 8.79\n", - " 17.96\n", - " 1\n", + " 1961-01-09/1961-01-15\n", + " 12.468571\n", + " 8.967143\n", + " 11.958571\n", + " 4.630000\n", + " 7.351429\n", + " 5.072857\n", + " 7.535714\n", + " 6.820000\n", + " 5.712857\n", + " 7.571429\n", + " 11.125714\n", + " 11.024286\n", " \n", " \n", - " 18\n", - " 61\n", - " 1\n", - " 19\n", - " 4.92\n", - " 3.42\n", - " 7.29\n", - " 1.04\n", - " 3.67\n", - " 3.17\n", - " 3.71\n", - " 2.79\n", - " 1.92\n", - " 2.71\n", - " 6.87\n", - " 7.83\n", - " 1\n", - " \n", - " \n", - " 19\n", - " 61\n", - " 1\n", - " 20\n", - " 9.59\n", - " 11.83\n", - " 7.96\n", - " 1.58\n", - " 7.92\n", - " 5.00\n", - " 3.17\n", - " 4.92\n", - " 3.13\n", - " 3.37\n", - " 6.50\n", - " 6.79\n", - " 1\n", + " 1961-01-16/1961-01-22\n", + " 13.204286\n", + " 9.862857\n", + " 12.982857\n", + " 6.328571\n", + " 8.966667\n", + " 7.417143\n", + " 9.257143\n", + " 7.875714\n", + " 7.145714\n", + " 8.124286\n", + " 9.821429\n", + " 11.434286\n", " \n", " \n", - " 20\n", - " 61\n", - " 1\n", - " 21\n", - " 14.33\n", - " 10.25\n", - " 11.92\n", - " 6.13\n", - " 10.04\n", - " 7.67\n", - " 8.04\n", - " 9.17\n", - " 7.04\n", - " 7.87\n", - " 6.75\n", - " 12.42\n", - " 1\n", + " 1961-01-23/1961-01-29\n", + " 19.880000\n", + " 16.141429\n", + " 18.225714\n", + " 12.720000\n", + " 17.432857\n", + " 14.828571\n", + " 15.528571\n", + " 15.160000\n", + " 14.480000\n", + " 15.640000\n", + " 20.930000\n", + " 22.530000\n", " \n", " \n", - " 21\n", - " 61\n", - " 1\n", - " 22\n", - " 9.59\n", - " 5.88\n", - " 9.92\n", - " 2.17\n", - " 6.87\n", - " 5.50\n", - " 9.38\n", - " 7.04\n", - " 6.34\n", - " 7.50\n", - " 10.88\n", - " 9.92\n", - " 1\n", + " 1961-01-30/1961-02-05\n", + " 16.827143\n", + " 15.460000\n", + " 12.618571\n", + " 8.247143\n", + " 13.361429\n", + " 9.107143\n", + " 12.204286\n", + " 8.548571\n", + " 9.821429\n", + " 9.460000\n", + " 14.012857\n", + " 11.935714\n", " \n", " \n", - " 22\n", - " 61\n", - " 1\n", - " 23\n", - " 16.54\n", - " 9.96\n", - " 18.54\n", - " 10.46\n", - " 13.50\n", - " 12.67\n", - " 13.70\n", - " 13.75\n", - " 10.75\n", - " 13.17\n", - " 14.79\n", - " 20.58\n", - " 1\n", + " 1961-02-06/1961-02-12\n", + " 19.684286\n", + " 16.417143\n", + " 17.304286\n", + " 10.774286\n", + " 14.718571\n", + " 12.522857\n", + " 14.934286\n", + " 14.850000\n", + " 14.064286\n", + " 14.440000\n", + " 21.832857\n", + " 19.155714\n", " \n", " \n", - " 23\n", - " 61\n", - " 1\n", - " 24\n", - " 25.04\n", - " 14.83\n", - " 25.84\n", - " 15.67\n", - " 21.46\n", - " 18.58\n", - " 20.38\n", - " 19.38\n", - " 15.37\n", - " 15.12\n", - " 23.09\n", - " 25.25\n", - " 1\n", - " \n", - " \n", - " 24\n", - " 61\n", - " 1\n", - " 25\n", - " 13.62\n", - " 11.17\n", - " 12.67\n", - " 6.04\n", - " 10.00\n", - " 9.42\n", - " 9.25\n", - " 8.71\n", - " 7.12\n", - " 12.04\n", - " 14.04\n", - " 17.50\n", - " 1\n", + " 1961-02-13/1961-02-19\n", + " 15.130000\n", + " 15.091429\n", + " 13.797143\n", + " 10.083333\n", + " 13.410000\n", + " 11.868571\n", + " 9.542857\n", + " 12.128571\n", + " 12.375714\n", + " 13.542857\n", + " 21.167143\n", + " 16.584286\n", " \n", " \n", - " 25\n", - " 61\n", - " 1\n", - " 26\n", - " 24.37\n", - " 18.79\n", - " 17.50\n", - " 14.25\n", - " 18.91\n", - " 15.67\n", - " 14.33\n", - " 15.16\n", - " 16.08\n", - " 19.08\n", - " 20.50\n", - " 25.25\n", - " 1\n", - " \n", - " \n", - " 26\n", - " 61\n", - " 1\n", - " 27\n", - " 22.04\n", - " 20.79\n", - " 17.41\n", - " 16.21\n", - " 19.04\n", - " 16.13\n", - " 16.79\n", - " 18.29\n", - " 18.66\n", - " 19.08\n", - " 26.08\n", - " 27.63\n", - " 1\n", + " 1961-02-20/1961-02-26\n", + " 15.221429\n", + " 13.625714\n", + " 14.334286\n", + " 8.524286\n", + " 13.655714\n", + " 10.114286\n", + " 11.150000\n", + " 10.875714\n", + " 10.392857\n", + " 12.730000\n", + " 16.304286\n", + " 14.322857\n", " \n", " \n", - " 27\n", - " 61\n", - " 1\n", - " 28\n", - " 17.67\n", - " 13.54\n", - " 13.33\n", - " 8.87\n", - " 15.04\n", - " 11.63\n", - " 12.25\n", - " 10.58\n", - " 11.92\n", - " 11.04\n", - " 20.30\n", - " 18.12\n", - " 1\n", + " 1961-02-27/1961-03-05\n", + " 12.101429\n", + " 12.951429\n", + " 11.063333\n", + " 7.834286\n", + " 12.101429\n", + " 9.238571\n", + " 10.232857\n", + " 11.130000\n", + " 10.383333\n", + " 12.370000\n", + " 17.842857\n", + " 13.951667\n", " \n", " \n", - " 28\n", - " 61\n", - " 1\n", - " 29\n", - " NaN\n", - " 23.91\n", - " 22.29\n", - " 17.54\n", - " 24.08\n", - " 19.70\n", - " 22.00\n", - " 20.25\n", - " 21.46\n", - " 19.95\n", - " 27.71\n", - " 23.38\n", - " 1\n", + " 1961-03-06/1961-03-12\n", + " 9.376667\n", + " 11.578571\n", + " 10.845714\n", + " 7.137143\n", + " 10.940000\n", + " 9.488571\n", + " 6.881429\n", + " 9.637143\n", + " 9.885714\n", + " 10.458571\n", + " 16.701429\n", + " 14.420000\n", " \n", " \n", - " 29\n", - " 61\n", - " 1\n", - " 30\n", - " 12.21\n", - " 11.42\n", - " 10.92\n", - " 7.92\n", - " 13.08\n", - " 9.62\n", - " 14.50\n", - " 10.21\n", - " 9.92\n", - " 11.96\n", - " 18.88\n", - " 19.25\n", - " 1\n", + " 1961-03-13/1961-03-19\n", + " 11.911429\n", + " 13.501429\n", + " 11.607143\n", + " 7.084286\n", + " 10.751429\n", + " 8.652857\n", + " 10.041429\n", + " 10.220000\n", + " 10.101429\n", + " 11.627143\n", + " 19.350000\n", + " 16.227143\n", + " \n", + " \n", + " 1961-03-20/1961-03-26\n", + " 9.567143\n", + " 8.387143\n", + " 9.695714\n", + " 6.648571\n", + " 8.964286\n", + " 7.982857\n", + " 10.774286\n", + " 8.977143\n", + " 10.904286\n", + " 11.481429\n", + " 14.037143\n", + " 18.134286\n", + " \n", + " \n", + " 1961-03-27/1961-04-02\n", + " 10.757143\n", + " 8.852857\n", + " 9.501429\n", + " 7.300000\n", + " 9.975714\n", + " 9.165714\n", + " 11.125714\n", + " 9.061429\n", + " 10.478333\n", + " 9.631429\n", + " 13.471429\n", + " 13.900000\n", + " \n", + " \n", + " 1961-04-03/1961-04-09\n", + " 11.964286\n", + " 10.654286\n", + " 13.607143\n", + " 5.958571\n", + " 9.494286\n", + " 7.637143\n", + " 7.107143\n", + " 8.041429\n", + " 8.161429\n", + " 7.238571\n", + " 11.712857\n", + " 11.371429\n", + " \n", + " \n", + " 1961-04-10/1961-04-16\n", + " 8.965714\n", + " 8.000000\n", + " 8.787143\n", + " 4.971429\n", + " 6.405714\n", + " 4.947143\n", + " 5.005714\n", + " 4.994286\n", + " 5.718571\n", + " 6.178571\n", + " 9.482857\n", + " 8.690000\n", + " \n", + " \n", + " 1961-04-17/1961-04-23\n", + " 12.621429\n", + " 10.438571\n", + " 10.255714\n", + " 7.768571\n", + " 10.357143\n", + " 7.798571\n", + " 9.000000\n", + " 9.111429\n", + " 8.767143\n", + " 9.551429\n", + " 13.620000\n", + " 12.470000\n", + " \n", + " \n", + " 1961-04-24/1961-04-30\n", + " 10.117143\n", + " 9.798571\n", + " 8.281429\n", + " 4.801429\n", + " 7.892857\n", + " 5.197143\n", + " 6.150000\n", + " 6.377143\n", + " 6.242857\n", + " 6.124286\n", + " 9.720000\n", + " 8.637143\n", + " \n", + " \n", + " 1961-05-01/1961-05-07\n", + " 15.367143\n", + " 13.970000\n", + " 13.834286\n", + " 9.952857\n", + " 14.917143\n", + " 10.864286\n", + " 11.435714\n", + " 12.244286\n", + " 11.677143\n", + " 11.585714\n", + " 17.548571\n", + " 14.571429\n", + " \n", + " \n", + " 1961-05-08/1961-05-14\n", + " 7.772857\n", + " 8.712857\n", + " 8.172857\n", + " 5.295714\n", + " 9.150000\n", + " 6.391429\n", + " 8.013333\n", + " 7.052857\n", + " 7.528571\n", + " 7.822857\n", + " 10.421429\n", + " 10.382857\n", + " \n", + " \n", + " 1961-05-15/1961-05-21\n", + " 8.225714\n", + " 5.631667\n", + " 12.042857\n", + " 4.258571\n", + " 7.597143\n", + " 5.022857\n", + " 5.695714\n", + " 6.970000\n", + " 6.847143\n", + " 7.114286\n", + " 9.624286\n", + " 10.612857\n", + " \n", + " \n", + " 1961-05-22/1961-05-28\n", + " 8.155714\n", + " 7.388571\n", + " 8.512857\n", + " 3.748333\n", + " 6.941429\n", + " 4.112857\n", + " 5.142857\n", + " 6.272857\n", + " 6.108571\n", + " 7.535714\n", + " 10.518571\n", + " 11.697143\n", + " \n", + " \n", + " 1961-05-29/1961-06-04\n", + " 10.321429\n", + " 7.407143\n", + " 10.065714\n", + " 6.310000\n", + " 9.754286\n", + " 6.451429\n", + " 8.344286\n", + " 8.635714\n", + " 8.714286\n", + " 9.035714\n", + " 12.298571\n", + " 13.597143\n", + " \n", + " \n", + " 1961-06-05/1961-06-11\n", + " 10.917143\n", + " 8.992857\n", + " 8.095714\n", + " 5.214286\n", + " 10.030000\n", + " 5.460000\n", + " 7.084286\n", + " 6.884286\n", + " 8.034286\n", + " 8.397143\n", + " 10.148571\n", + " 12.250000\n", + " \n", + " \n", + " 1961-06-12/1961-06-18\n", + " 10.571429\n", + " 9.565714\n", + " 10.875714\n", + " 6.520000\n", + " 10.260000\n", + " 6.947143\n", + " 9.278571\n", + " 9.102857\n", + " 8.992857\n", + " 9.594286\n", + " 15.351429\n", + " 15.025714\n", + " \n", + " \n", + " 1961-06-19/1961-06-25\n", + " 7.345714\n", + " 6.108571\n", + " 8.084286\n", + " 5.478571\n", + " 11.477143\n", + " 7.492857\n", + " 11.868571\n", + " 9.447143\n", + " 10.458571\n", + " 11.257143\n", + " 14.370000\n", + " 17.410000\n", + " \n", + " \n", + " 1961-06-26/1961-07-02\n", + " 10.236667\n", + " 9.482857\n", + " 8.648571\n", + " 6.772857\n", + " 10.975714\n", + " 6.507143\n", + " 7.642857\n", + " 9.237143\n", + " 7.904286\n", + " 10.268571\n", + " 14.535714\n", + " 12.133333\n", + " \n", + " \n", + " 1961-07-03/1961-07-09\n", + " 11.715714\n", + " 7.220000\n", + " 9.320000\n", + " 7.544286\n", + " 12.494286\n", + " 7.982857\n", + " 11.888333\n", + " 9.308571\n", + " 10.732857\n", + " 10.547143\n", + " 12.220000\n", + " 15.987143\n", + " \n", + " \n", + " 1961-07-10/1961-07-16\n", + " 16.680000\n", + " 13.518571\n", + " 11.171429\n", + " 9.277143\n", + " 14.524286\n", + " 8.412857\n", + " 10.171429\n", + " 10.507143\n", + " 9.530000\n", + " 10.157143\n", + " 13.520000\n", + " 12.524286\n", + " \n", + " \n", + " 1961-07-17/1961-07-23\n", + " 4.202857\n", + " 4.255714\n", + " 6.738571\n", + " 3.300000\n", + " 6.112857\n", + " 2.715714\n", + " 3.964286\n", + " 5.642857\n", + " 5.297143\n", + " 6.041429\n", + " 7.524286\n", + " 8.415714\n", " \n", " \n", " ...\n", @@ -3492,754 +3070,700 @@ " ...\n", " ...\n", " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " \n", - " \n", - " 6544\n", - " 78\n", - " 12\n", - " 2\n", - " 13.70\n", - " 12.71\n", - " 14.29\n", - " 5.13\n", - " 9.21\n", - " 8.04\n", - " 12.33\n", - " 6.34\n", - " 9.21\n", - " 11.21\n", - " 9.59\n", - " 19.95\n", - " 216\n", - " \n", - " \n", - " 6545\n", - " 78\n", - " 12\n", - " 3\n", - " 21.21\n", - " 21.34\n", - " 17.75\n", - " 11.58\n", - " 16.75\n", - " 14.46\n", - " 17.46\n", - " 15.29\n", - " 15.79\n", - " 17.50\n", - " 21.42\n", - " 25.75\n", - " 216\n", - " \n", - " \n", - " 6546\n", - " 78\n", - " 12\n", - " 4\n", - " 9.92\n", - " 13.50\n", - " 7.21\n", - " 1.71\n", - " 11.00\n", - " 7.50\n", - " 8.38\n", - " 7.46\n", - " 10.79\n", - " 10.21\n", - " 17.88\n", - " 17.96\n", - " 216\n", - " \n", - " \n", - " 6547\n", - " 78\n", - " 12\n", - " 5\n", - " 22.75\n", - " 20.17\n", - " 18.58\n", - " 8.50\n", - " 15.96\n", - " 14.29\n", - " 13.92\n", - " 12.92\n", - " 12.96\n", - " 12.29\n", - " 17.08\n", - " 19.83\n", - " 216\n", - " \n", - " \n", - " 6548\n", - " 78\n", - " 12\n", - " 6\n", - " 29.33\n", - " 23.87\n", - " 25.37\n", - " 16.04\n", - " 24.46\n", - " 19.50\n", - " 24.54\n", - " 18.58\n", - " 21.00\n", - " 20.58\n", - " 21.67\n", - " 34.46\n", - " 216\n", - " \n", - " \n", - " 6549\n", - " 78\n", - " 12\n", - " 7\n", - " 26.63\n", - " 24.79\n", - " 24.79\n", - " 18.16\n", - " 23.13\n", - " 19.58\n", - " 19.92\n", - " 19.04\n", - " 19.75\n", - " 21.50\n", - " 23.04\n", - " 34.59\n", - " 216\n", - " \n", - " \n", - " 6550\n", - " 78\n", - " 12\n", - " 8\n", - " 12.92\n", - " 12.54\n", - " 11.25\n", - " 3.37\n", - " 6.50\n", - " 5.96\n", - " 10.34\n", - " 6.17\n", - " 6.63\n", - " 6.75\n", - " 9.54\n", - " 17.33\n", - " 216\n", - " \n", - " \n", - " 6551\n", - " 78\n", - " 12\n", - " 9\n", - " 18.71\n", - " 16.92\n", - " 15.50\n", - " 6.04\n", - " 10.37\n", - " 9.59\n", - " 10.75\n", - " 9.13\n", - " 9.75\n", - " 11.08\n", - " 14.33\n", - " 15.34\n", - " 216\n", - " \n", - " \n", - " 6552\n", - " 78\n", - " 12\n", - " 10\n", - " 24.92\n", - " 22.54\n", - " 16.54\n", - " 14.62\n", - " 15.59\n", - " 13.00\n", - " 13.21\n", - " 14.12\n", - " 16.21\n", - " 16.17\n", - " 26.08\n", - " 21.92\n", - " 216\n", - " \n", - " \n", - " 6553\n", - " 78\n", - " 12\n", - " 11\n", - " 20.25\n", - " 19.17\n", - " 17.83\n", - " 11.63\n", - " 17.79\n", - " 13.37\n", - " 14.83\n", - " 13.88\n", - " 15.54\n", - " 16.29\n", - " 18.34\n", - " 22.83\n", - " 216\n", - " \n", - " \n", - " 6554\n", - " 78\n", - " 12\n", - " 12\n", - " 23.13\n", - " 18.63\n", - " 18.05\n", - " 8.29\n", - " 14.33\n", - " 11.04\n", - " 10.54\n", - " 10.13\n", - " 11.42\n", - " 10.50\n", - " 11.25\n", - " 13.50\n", - " 216\n", - " \n", - " \n", - " 6555\n", - " 78\n", - " 12\n", - " 13\n", - " 18.84\n", - " 24.04\n", - " 14.37\n", - " 8.33\n", - " 18.12\n", - " 12.17\n", - " 13.00\n", - " 13.75\n", - " 14.17\n", - " 15.09\n", - " 21.50\n", - " 21.37\n", - " 216\n", - " \n", - " \n", - " 6556\n", - " 78\n", - " 12\n", - " 14\n", - " 17.21\n", - " 19.75\n", - " 12.71\n", - " 5.83\n", - " 13.79\n", - " 7.33\n", - " 8.83\n", - " 5.71\n", - " 7.96\n", - " 3.37\n", - " 5.21\n", - " 6.92\n", - " 216\n", - " \n", - " \n", - " 6557\n", - " 78\n", - " 12\n", - " 15\n", - " 13.13\n", - " 8.92\n", - " 16.54\n", - " 6.92\n", - " 6.00\n", - " 4.00\n", - " 12.67\n", - " 5.88\n", - " 7.67\n", - " 6.08\n", - " 5.50\n", - " 17.16\n", - " 216\n", - " \n", - " \n", - " 6558\n", - " 78\n", - " 12\n", - " 16\n", - " 14.88\n", - " 9.13\n", - " 17.37\n", - " 5.21\n", - " 6.71\n", - " 2.46\n", - " 9.13\n", - " 4.96\n", - " 6.13\n", - " 5.96\n", - " 10.92\n", - " 18.08\n", - " 216\n", - " \n", - " \n", - " 6559\n", - " 78\n", - " 12\n", - " 17\n", - " 9.87\n", - " 3.21\n", - " 8.04\n", - " 2.21\n", - " 3.04\n", - " 0.54\n", - " 2.46\n", - " 1.46\n", - " 1.29\n", - " 2.67\n", - " 5.00\n", - " 9.08\n", - " 216\n", - " \n", - " \n", - " 6560\n", - " 78\n", - " 12\n", - " 18\n", - " 9.83\n", - " 10.88\n", - " 8.50\n", - " 1.00\n", - " 9.08\n", - " 6.00\n", - " 2.42\n", - " 8.25\n", - " 4.42\n", - " 5.88\n", - " 19.79\n", - " 19.79\n", - " 216\n", - " \n", - " \n", - " 6561\n", - " 78\n", - " 12\n", - " 19\n", - " 13.88\n", - " 11.42\n", - " 10.13\n", - " 2.33\n", - " 8.12\n", - " 6.75\n", - " 4.75\n", - " 5.88\n", - " 6.21\n", - " 8.17\n", - " 8.33\n", - " 18.25\n", - " 216\n", - " \n", - " \n", - " 6562\n", - " 78\n", - " 12\n", - " 20\n", - " 9.92\n", - " 3.63\n", - " 12.38\n", - " 3.08\n", - " 3.50\n", - " 0.42\n", - " 4.54\n", - " 2.50\n", - " 2.13\n", - " 4.71\n", - " 3.21\n", - " 10.29\n", - " 216\n", - " \n", - " \n", - " 6563\n", - " 78\n", - " 12\n", - " 21\n", - " 12.96\n", - " 3.83\n", - " 13.79\n", - " 4.79\n", - " 7.12\n", - " 6.54\n", - " 11.67\n", - " 9.25\n", - " 8.67\n", - " 9.00\n", - " 11.25\n", - " 20.30\n", - " 216\n", - " \n", - " \n", - " 6564\n", - " 78\n", - " 12\n", - " 22\n", - " 6.21\n", - " 7.38\n", - " 13.08\n", - " 2.54\n", - " 7.58\n", - " 5.33\n", - " 2.46\n", - " 8.38\n", - " 5.09\n", - " 5.04\n", - " 9.92\n", - " 11.00\n", - " 216\n", - " \n", - " \n", - " 6565\n", - " 78\n", - " 12\n", - " 23\n", - " 16.62\n", - " 13.29\n", - " 22.21\n", - " 9.50\n", - " 14.29\n", - " 13.08\n", - " 16.50\n", - " 17.16\n", - " 12.71\n", - " 12.00\n", - " 18.50\n", - " 21.50\n", - " 216\n", - " \n", - " \n", - " 6566\n", - " 78\n", - " 12\n", - " 24\n", - " 8.67\n", - " 5.63\n", - " 12.12\n", - " 4.79\n", - " 5.09\n", - " 5.91\n", - " 12.25\n", - " 9.25\n", - " 10.83\n", - " 11.71\n", - " 11.92\n", - " 31.71\n", - " 216\n", - " \n", - " \n", - " 6567\n", - " 78\n", - " 12\n", - " 25\n", - " 7.21\n", - " 6.58\n", - " 7.83\n", - " 2.67\n", - " 4.79\n", - " 4.58\n", - " 8.71\n", - " 0.75\n", - " 5.21\n", - " 5.25\n", - " 1.21\n", - " 13.96\n", - " 216\n", - " \n", - " \n", - " 6568\n", - " 78\n", - " 12\n", - " 26\n", - " 13.83\n", - " 11.87\n", - " 10.34\n", - " 2.37\n", - " 6.96\n", - " 4.29\n", - " 1.96\n", - " 3.79\n", - " 3.04\n", - " 3.08\n", - " 4.79\n", - " 11.96\n", - " 216\n", - " \n", - " \n", - " 6569\n", - " 78\n", - " 12\n", - " 27\n", - " 17.58\n", - " 16.96\n", - " 17.62\n", - " 8.08\n", - " 13.21\n", - " 11.67\n", - " 14.46\n", - " 15.59\n", - " 14.04\n", - " 14.00\n", - " 17.21\n", - " 40.08\n", - " 216\n", " \n", " \n", - " 6570\n", - " 78\n", - " 12\n", - " 28\n", - " 13.21\n", - " 5.46\n", - " 13.46\n", - " 5.00\n", - " 8.12\n", - " 9.42\n", - " 14.33\n", - " 16.25\n", - " 15.25\n", - " 18.05\n", - " 21.79\n", - " 41.46\n", - " 216\n", - " \n", - " \n", - " 6571\n", - " 78\n", - " 12\n", - " 29\n", - " 14.00\n", - " 10.29\n", - " 14.42\n", - " 8.71\n", - " 9.71\n", - " 10.54\n", - " 19.17\n", - " 12.46\n", - " 14.50\n", - " 16.42\n", - " 18.88\n", - " 29.58\n", - " 216\n", - " \n", - " \n", - " 6572\n", - " 78\n", - " 12\n", - " 30\n", - " 18.50\n", - " 14.04\n", - " 21.29\n", - " 9.13\n", - " 12.75\n", - " 9.71\n", - " 18.08\n", - " 12.87\n", - " 12.46\n", - " 12.12\n", - " 14.67\n", - " 28.79\n", - " 216\n", - " \n", - " \n", - " 6573\n", - " 78\n", - " 12\n", - " 31\n", - " 20.33\n", - " 17.41\n", - " 27.29\n", - " 9.59\n", - " 12.08\n", - " 10.13\n", - " 19.25\n", - " 11.63\n", - " 11.58\n", - " 11.38\n", - " 12.08\n", - " 22.08\n", - " 216\n", + " 1978-06-05/1978-06-11\n", + " 12.022857\n", + " 9.154286\n", + " 9.488571\n", + " 5.971429\n", + " 10.637143\n", + " 8.030000\n", + " 8.678571\n", + " 8.227143\n", + " 9.172857\n", + " 9.642857\n", + " 11.632857\n", + " 17.778571\n", + " \n", + " \n", + " 1978-06-12/1978-06-18\n", + " 9.410000\n", + " 8.770000\n", + " 14.135714\n", + " 6.457143\n", + " 8.564286\n", + " 6.898571\n", + " 7.297143\n", + " 7.464286\n", + " 7.054286\n", + " 6.225714\n", + " 11.398571\n", + " 12.957143\n", + " \n", + " \n", + " 1978-06-19/1978-06-25\n", + " 12.707143\n", + " 10.244286\n", + " 8.912857\n", + " 5.878571\n", + " 10.372857\n", + " 6.852857\n", + " 7.648571\n", + " 7.875714\n", + " 7.865714\n", + " 7.084286\n", + " 13.030000\n", + " 16.678571\n", + " \n", + " \n", + " 1978-06-26/1978-07-02\n", + " 12.208571\n", + " 9.640000\n", + " 10.482857\n", + " 7.011429\n", + " 12.772857\n", + " 9.005714\n", + " 11.055714\n", + " 8.917143\n", + " 9.994286\n", + " 7.498571\n", + " 12.268571\n", + " 15.287143\n", + " \n", + " \n", + " 1978-07-03/1978-07-09\n", + " 18.052857\n", + " 12.630000\n", + " 11.984286\n", + " 9.220000\n", + " 13.414286\n", + " 10.762857\n", + " 11.368571\n", + " 11.218571\n", + " 11.272857\n", + " 11.082857\n", + " 14.754286\n", + " 18.215714\n", + " \n", + " \n", + " 1978-07-10/1978-07-16\n", + " 5.882857\n", + " 3.244286\n", + " 5.358571\n", + " 2.250000\n", + " 4.618571\n", + " 2.631429\n", + " 2.494286\n", + " 3.540000\n", + " 3.397143\n", + " 3.214286\n", + " 7.198571\n", + " 7.578571\n", + " \n", + " \n", + " 1978-07-17/1978-07-23\n", + " 13.654286\n", + " 10.007143\n", + " 9.915714\n", + " 6.577143\n", + " 10.757143\n", + " 8.282857\n", + " 8.147143\n", + " 9.301429\n", + " 8.952857\n", + " 8.402857\n", + " 13.847143\n", + " 14.785714\n", + " \n", + " \n", + " 1978-07-24/1978-07-30\n", + " 12.172857\n", + " 11.854286\n", + " 11.094286\n", + " 6.631429\n", + " 9.918571\n", + " 8.707143\n", + " 7.458571\n", + " 9.117143\n", + " 9.304286\n", + " 8.148571\n", + " 15.192857\n", + " 14.584286\n", + " \n", + " \n", + " 1978-07-31/1978-08-06\n", + " 12.475714\n", + " 9.488571\n", + " 10.584286\n", + " 5.457143\n", + " 8.724286\n", + " 5.855714\n", + " 7.065714\n", + " 5.410000\n", + " 6.631429\n", + " 4.962857\n", + " 9.084286\n", + " 11.405714\n", + " \n", + " \n", + " 1978-08-07/1978-08-13\n", + " 10.114286\n", + " 9.600000\n", + " 7.635714\n", + " 4.790000\n", + " 8.101429\n", + " 6.702857\n", + " 5.452857\n", + " 5.964286\n", + " 7.518571\n", + " 5.661429\n", + " 10.691429\n", + " 11.927143\n", + " \n", + " \n", + " 1978-08-14/1978-08-20\n", + " 11.100000\n", + " 11.237143\n", + " 10.505714\n", + " 5.697143\n", + " 9.910000\n", + " 8.034286\n", + " 7.267143\n", + " 8.517143\n", + " 9.815714\n", + " 7.941429\n", + " 15.000000\n", + " 14.405714\n", + " \n", + " \n", + " 1978-08-21/1978-08-27\n", + " 6.208571\n", + " 5.060000\n", + " 8.565714\n", + " 3.121429\n", + " 4.638571\n", + " 4.077143\n", + " 3.291429\n", + " 3.500000\n", + " 5.877143\n", + " 4.447143\n", + " 8.131429\n", + " 10.661429\n", + " \n", + " \n", + " 1978-08-28/1978-09-03\n", + " 8.232857\n", + " 4.888571\n", + " 7.767143\n", + " 3.588571\n", + " 3.892857\n", + " 5.090000\n", + " 6.184286\n", + " 3.000000\n", + " 6.202857\n", + " 4.745714\n", + " 8.105714\n", + " 13.150000\n", + " \n", + " \n", + " 1978-09-04/1978-09-10\n", + " 11.487143\n", + " 12.742857\n", + " 11.124286\n", + " 5.702857\n", + " 10.721429\n", + " 10.927143\n", + " 9.157143\n", + " 9.458571\n", + " 10.588571\n", + " 8.274286\n", + " 14.560000\n", + " 16.752857\n", + " \n", + " \n", + " 1978-09-11/1978-09-17\n", + " 12.067143\n", + " 10.648571\n", + " 11.610000\n", + " 6.864286\n", + " 12.252857\n", + " 11.868571\n", + " 13.017143\n", + " 12.447143\n", + " 11.908571\n", + " 10.957143\n", + " 18.422857\n", + " 23.441429\n", + " \n", + " \n", + " 1978-09-18/1978-09-24\n", + " 5.845714\n", + " 8.317143\n", + " 9.305714\n", + " 2.554286\n", + " 5.625714\n", + " 5.171429\n", + " 7.047143\n", + " 6.750000\n", + " 6.870000\n", + " 6.291429\n", + " 13.447143\n", + " 15.324286\n", + " \n", + " \n", + " 1978-09-25/1978-10-01\n", + " 16.252857\n", + " 14.131429\n", + " 12.098571\n", + " 8.832857\n", + " 15.810000\n", + " 10.338571\n", + " 15.124286\n", + " 12.378571\n", + " 12.275714\n", + " 11.970000\n", + " 19.160000\n", + " 24.158571\n", + " \n", + " \n", + " 1978-10-02/1978-10-08\n", + " 12.865714\n", + " 13.302857\n", + " 11.671429\n", + " 6.531429\n", + " 11.731429\n", + " 8.881429\n", + " 9.707143\n", + " 9.708571\n", + " 11.391429\n", + " 10.161429\n", + " 16.498571\n", + " 20.618571\n", + " \n", + " \n", + " 1978-10-09/1978-10-15\n", + " 9.611429\n", + " 6.327143\n", + " 9.250000\n", + " 4.167143\n", + " 6.821429\n", + " 6.237143\n", + " 5.577143\n", + " 6.348571\n", + " 7.232857\n", + " 7.285714\n", + " 12.197143\n", + " 14.177143\n", + " \n", + " \n", + " 1978-10-16/1978-10-22\n", + " 9.804286\n", + " 7.817143\n", + " 7.642857\n", + " 5.314286\n", + " 9.124286\n", + " 6.862857\n", + " 9.391429\n", + " 7.428571\n", + " 7.765714\n", + " 8.048571\n", + " 12.708571\n", + " 17.868571\n", + " \n", + " \n", + " 1978-10-23/1978-10-29\n", + " 7.504286\n", + " 7.702857\n", + " 8.102857\n", + " 3.204286\n", + " 7.464286\n", + " 5.905714\n", + " 8.727143\n", + " 6.652857\n", + " 7.605714\n", + " 8.120000\n", + " 14.487143\n", + " 16.915714\n", + " \n", + " \n", + " 1978-10-30/1978-11-05\n", + " 13.060000\n", + " 13.465714\n", + " 12.137143\n", + " 6.682857\n", + " 9.891429\n", + " 8.314286\n", + " 9.775714\n", + " 9.638571\n", + " 10.185714\n", + " 10.422857\n", + " 18.451429\n", + " 18.721429\n", + " \n", + " \n", + " 1978-11-06/1978-11-12\n", + " 14.857143\n", + " 15.237143\n", + " 12.007143\n", + " 7.684286\n", + " 12.460000\n", + " 9.352857\n", + " 10.224286\n", + " 10.554286\n", + " 11.168571\n", + " 12.232857\n", + " 19.307143\n", + " 22.522857\n", + " \n", + " \n", + " 1978-11-13/1978-11-19\n", + " 20.590000\n", + " 18.998571\n", + " 17.272857\n", + " 10.417143\n", + " 14.220000\n", + " 11.208571\n", + " 16.081429\n", + " 12.915714\n", + " 13.297143\n", + " 13.242857\n", + " 20.357143\n", + " 23.905714\n", + " \n", + " \n", + " 1978-11-20/1978-11-26\n", + " 16.498571\n", + " 13.971429\n", + " 13.544286\n", + " 6.361429\n", + " 10.438571\n", + " 7.404286\n", + " 12.797143\n", + " 7.571429\n", + " 9.998571\n", + " 8.915714\n", + " 15.207143\n", + " 19.491429\n", + " \n", + " \n", + " 1978-11-27/1978-12-03\n", + " 14.934286\n", + " 11.232857\n", + " 13.941429\n", + " 5.565714\n", + " 10.215714\n", + " 8.618571\n", + " 9.642857\n", + " 7.685714\n", + " 9.011429\n", + " 9.547143\n", + " 11.835714\n", + " 18.728571\n", + " \n", + " \n", + " 1978-12-04/1978-12-10\n", + " 20.740000\n", + " 19.190000\n", + " 17.034286\n", + " 9.777143\n", + " 15.287143\n", + " 12.774286\n", + " 14.437143\n", + " 12.488571\n", + " 13.870000\n", + " 14.082857\n", + " 18.517143\n", + " 23.061429\n", + " \n", + " \n", + " 1978-12-11/1978-12-17\n", + " 16.758571\n", + " 14.692857\n", + " 14.987143\n", + " 6.917143\n", + " 11.397143\n", + " 7.272857\n", + " 10.208571\n", + " 7.967143\n", + " 9.168571\n", + " 8.565714\n", + " 11.102857\n", + " 15.562857\n", + " \n", + " \n", + " 1978-12-18/1978-12-24\n", + " 11.155714\n", + " 8.008571\n", + " 13.172857\n", + " 4.004286\n", + " 7.825714\n", + " 6.290000\n", + " 7.798571\n", + " 8.667143\n", + " 7.151429\n", + " 8.072857\n", + " 11.845714\n", + " 18.977143\n", + " \n", + " \n", + " 1978-12-25/1978-12-31\n", + " 14.951429\n", + " 11.801429\n", + " 16.035714\n", + " 6.507143\n", + " 9.660000\n", + " 8.620000\n", + " 13.708571\n", + " 10.477143\n", + " 10.868571\n", + " 11.471429\n", + " 12.947143\n", + " 26.844286\n", " \n", " \n", "\n", - "

6574 rows × 16 columns

\n", + "

940 rows × 12 columns

\n", "" ], "text/plain": [ - " Yr Mo Dy RPT VAL ROS KIL SHA BIR DUB CLA \\\n", - "0 61 1 1 15.04 14.96 13.17 9.29 NaN 9.87 13.67 10.25 \n", - "1 61 1 2 14.71 NaN 10.83 6.50 12.62 7.67 11.50 10.04 \n", - "2 61 1 3 18.50 16.88 12.33 10.13 11.17 6.17 11.25 NaN \n", - "3 61 1 4 10.58 6.63 11.75 4.58 4.54 2.88 8.63 1.79 \n", - "4 61 1 5 13.33 13.25 11.42 6.17 10.71 8.21 11.92 6.54 \n", - "5 61 1 6 13.21 8.12 9.96 6.67 5.37 4.50 10.67 4.42 \n", - "6 61 1 7 13.50 14.29 9.50 4.96 12.29 8.33 9.17 9.29 \n", - "7 61 1 8 10.96 9.75 7.62 5.91 9.62 7.29 14.29 7.62 \n", - "8 61 1 9 12.58 10.83 10.00 4.75 10.37 6.79 8.04 10.13 \n", - "9 61 1 10 13.37 11.12 19.50 8.33 9.71 6.54 11.42 7.79 \n", - "10 61 1 11 10.58 9.87 8.42 2.79 8.71 7.25 7.54 8.33 \n", - "11 61 1 12 19.75 12.08 18.50 10.54 10.29 9.46 15.54 11.50 \n", - "12 61 1 13 9.92 3.54 8.46 2.96 2.29 0.96 4.63 0.58 \n", - "13 61 1 14 9.04 5.66 7.08 0.67 2.71 1.38 3.08 2.58 \n", - "14 61 1 15 12.04 9.67 11.75 2.37 7.38 3.13 2.50 6.83 \n", - "15 61 1 16 16.42 11.25 15.67 4.71 11.34 6.92 9.25 8.79 \n", - "16 61 1 17 17.75 14.37 17.33 10.13 13.96 13.37 13.42 11.04 \n", - "17 61 1 18 19.83 12.04 20.79 18.54 NaN 10.29 17.83 11.38 \n", - "18 61 1 19 4.92 3.42 7.29 1.04 3.67 3.17 3.71 2.79 \n", - "19 61 1 20 9.59 11.83 7.96 1.58 7.92 5.00 3.17 4.92 \n", - "20 61 1 21 14.33 10.25 11.92 6.13 10.04 7.67 8.04 9.17 \n", - "21 61 1 22 9.59 5.88 9.92 2.17 6.87 5.50 9.38 7.04 \n", - "22 61 1 23 16.54 9.96 18.54 10.46 13.50 12.67 13.70 13.75 \n", - "23 61 1 24 25.04 14.83 25.84 15.67 21.46 18.58 20.38 19.38 \n", - "24 61 1 25 13.62 11.17 12.67 6.04 10.00 9.42 9.25 8.71 \n", - "25 61 1 26 24.37 18.79 17.50 14.25 18.91 15.67 14.33 15.16 \n", - "26 61 1 27 22.04 20.79 17.41 16.21 19.04 16.13 16.79 18.29 \n", - "27 61 1 28 17.67 13.54 13.33 8.87 15.04 11.63 12.25 10.58 \n", - "28 61 1 29 NaN 23.91 22.29 17.54 24.08 19.70 22.00 20.25 \n", - "29 61 1 30 12.21 11.42 10.92 7.92 13.08 9.62 14.50 10.21 \n", - "... .. .. .. ... ... ... ... ... ... ... ... \n", - "6544 78 12 2 13.70 12.71 14.29 5.13 9.21 8.04 12.33 6.34 \n", - "6545 78 12 3 21.21 21.34 17.75 11.58 16.75 14.46 17.46 15.29 \n", - "6546 78 12 4 9.92 13.50 7.21 1.71 11.00 7.50 8.38 7.46 \n", - "6547 78 12 5 22.75 20.17 18.58 8.50 15.96 14.29 13.92 12.92 \n", - "6548 78 12 6 29.33 23.87 25.37 16.04 24.46 19.50 24.54 18.58 \n", - "6549 78 12 7 26.63 24.79 24.79 18.16 23.13 19.58 19.92 19.04 \n", - "6550 78 12 8 12.92 12.54 11.25 3.37 6.50 5.96 10.34 6.17 \n", - "6551 78 12 9 18.71 16.92 15.50 6.04 10.37 9.59 10.75 9.13 \n", - "6552 78 12 10 24.92 22.54 16.54 14.62 15.59 13.00 13.21 14.12 \n", - "6553 78 12 11 20.25 19.17 17.83 11.63 17.79 13.37 14.83 13.88 \n", - "6554 78 12 12 23.13 18.63 18.05 8.29 14.33 11.04 10.54 10.13 \n", - "6555 78 12 13 18.84 24.04 14.37 8.33 18.12 12.17 13.00 13.75 \n", - "6556 78 12 14 17.21 19.75 12.71 5.83 13.79 7.33 8.83 5.71 \n", - "6557 78 12 15 13.13 8.92 16.54 6.92 6.00 4.00 12.67 5.88 \n", - "6558 78 12 16 14.88 9.13 17.37 5.21 6.71 2.46 9.13 4.96 \n", - "6559 78 12 17 9.87 3.21 8.04 2.21 3.04 0.54 2.46 1.46 \n", - "6560 78 12 18 9.83 10.88 8.50 1.00 9.08 6.00 2.42 8.25 \n", - "6561 78 12 19 13.88 11.42 10.13 2.33 8.12 6.75 4.75 5.88 \n", - "6562 78 12 20 9.92 3.63 12.38 3.08 3.50 0.42 4.54 2.50 \n", - "6563 78 12 21 12.96 3.83 13.79 4.79 7.12 6.54 11.67 9.25 \n", - "6564 78 12 22 6.21 7.38 13.08 2.54 7.58 5.33 2.46 8.38 \n", - "6565 78 12 23 16.62 13.29 22.21 9.50 14.29 13.08 16.50 17.16 \n", - "6566 78 12 24 8.67 5.63 12.12 4.79 5.09 5.91 12.25 9.25 \n", - "6567 78 12 25 7.21 6.58 7.83 2.67 4.79 4.58 8.71 0.75 \n", - "6568 78 12 26 13.83 11.87 10.34 2.37 6.96 4.29 1.96 3.79 \n", - "6569 78 12 27 17.58 16.96 17.62 8.08 13.21 11.67 14.46 15.59 \n", - "6570 78 12 28 13.21 5.46 13.46 5.00 8.12 9.42 14.33 16.25 \n", - "6571 78 12 29 14.00 10.29 14.42 8.71 9.71 10.54 19.17 12.46 \n", - "6572 78 12 30 18.50 14.04 21.29 9.13 12.75 9.71 18.08 12.87 \n", - "6573 78 12 31 20.33 17.41 27.29 9.59 12.08 10.13 19.25 11.63 \n", + " RPT VAL ROS KIL SHA \\\n", + "Yr_Mo_Dy \n", + "1960-12-26/1961-01-01 15.040000 14.960000 13.170000 9.290000 NaN \n", + "1961-01-02/1961-01-08 13.541429 11.486667 10.487143 6.417143 9.474286 \n", + "1961-01-09/1961-01-15 12.468571 8.967143 11.958571 4.630000 7.351429 \n", + "1961-01-16/1961-01-22 13.204286 9.862857 12.982857 6.328571 8.966667 \n", + "1961-01-23/1961-01-29 19.880000 16.141429 18.225714 12.720000 17.432857 \n", + "1961-01-30/1961-02-05 16.827143 15.460000 12.618571 8.247143 13.361429 \n", + "1961-02-06/1961-02-12 19.684286 16.417143 17.304286 10.774286 14.718571 \n", + "1961-02-13/1961-02-19 15.130000 15.091429 13.797143 10.083333 13.410000 \n", + "1961-02-20/1961-02-26 15.221429 13.625714 14.334286 8.524286 13.655714 \n", + "1961-02-27/1961-03-05 12.101429 12.951429 11.063333 7.834286 12.101429 \n", + "1961-03-06/1961-03-12 9.376667 11.578571 10.845714 7.137143 10.940000 \n", + "1961-03-13/1961-03-19 11.911429 13.501429 11.607143 7.084286 10.751429 \n", + "1961-03-20/1961-03-26 9.567143 8.387143 9.695714 6.648571 8.964286 \n", + "1961-03-27/1961-04-02 10.757143 8.852857 9.501429 7.300000 9.975714 \n", + "1961-04-03/1961-04-09 11.964286 10.654286 13.607143 5.958571 9.494286 \n", + "1961-04-10/1961-04-16 8.965714 8.000000 8.787143 4.971429 6.405714 \n", + "1961-04-17/1961-04-23 12.621429 10.438571 10.255714 7.768571 10.357143 \n", + "1961-04-24/1961-04-30 10.117143 9.798571 8.281429 4.801429 7.892857 \n", + "1961-05-01/1961-05-07 15.367143 13.970000 13.834286 9.952857 14.917143 \n", + "1961-05-08/1961-05-14 7.772857 8.712857 8.172857 5.295714 9.150000 \n", + "1961-05-15/1961-05-21 8.225714 5.631667 12.042857 4.258571 7.597143 \n", + "1961-05-22/1961-05-28 8.155714 7.388571 8.512857 3.748333 6.941429 \n", + "1961-05-29/1961-06-04 10.321429 7.407143 10.065714 6.310000 9.754286 \n", + "1961-06-05/1961-06-11 10.917143 8.992857 8.095714 5.214286 10.030000 \n", + "1961-06-12/1961-06-18 10.571429 9.565714 10.875714 6.520000 10.260000 \n", + "1961-06-19/1961-06-25 7.345714 6.108571 8.084286 5.478571 11.477143 \n", + "1961-06-26/1961-07-02 10.236667 9.482857 8.648571 6.772857 10.975714 \n", + "1961-07-03/1961-07-09 11.715714 7.220000 9.320000 7.544286 12.494286 \n", + "1961-07-10/1961-07-16 16.680000 13.518571 11.171429 9.277143 14.524286 \n", + "1961-07-17/1961-07-23 4.202857 4.255714 6.738571 3.300000 6.112857 \n", + "... ... ... ... ... ... \n", + "1978-06-05/1978-06-11 12.022857 9.154286 9.488571 5.971429 10.637143 \n", + "1978-06-12/1978-06-18 9.410000 8.770000 14.135714 6.457143 8.564286 \n", + "1978-06-19/1978-06-25 12.707143 10.244286 8.912857 5.878571 10.372857 \n", + "1978-06-26/1978-07-02 12.208571 9.640000 10.482857 7.011429 12.772857 \n", + "1978-07-03/1978-07-09 18.052857 12.630000 11.984286 9.220000 13.414286 \n", + "1978-07-10/1978-07-16 5.882857 3.244286 5.358571 2.250000 4.618571 \n", + "1978-07-17/1978-07-23 13.654286 10.007143 9.915714 6.577143 10.757143 \n", + "1978-07-24/1978-07-30 12.172857 11.854286 11.094286 6.631429 9.918571 \n", + "1978-07-31/1978-08-06 12.475714 9.488571 10.584286 5.457143 8.724286 \n", + "1978-08-07/1978-08-13 10.114286 9.600000 7.635714 4.790000 8.101429 \n", + "1978-08-14/1978-08-20 11.100000 11.237143 10.505714 5.697143 9.910000 \n", + "1978-08-21/1978-08-27 6.208571 5.060000 8.565714 3.121429 4.638571 \n", + "1978-08-28/1978-09-03 8.232857 4.888571 7.767143 3.588571 3.892857 \n", + "1978-09-04/1978-09-10 11.487143 12.742857 11.124286 5.702857 10.721429 \n", + "1978-09-11/1978-09-17 12.067143 10.648571 11.610000 6.864286 12.252857 \n", + "1978-09-18/1978-09-24 5.845714 8.317143 9.305714 2.554286 5.625714 \n", + "1978-09-25/1978-10-01 16.252857 14.131429 12.098571 8.832857 15.810000 \n", + "1978-10-02/1978-10-08 12.865714 13.302857 11.671429 6.531429 11.731429 \n", + "1978-10-09/1978-10-15 9.611429 6.327143 9.250000 4.167143 6.821429 \n", + "1978-10-16/1978-10-22 9.804286 7.817143 7.642857 5.314286 9.124286 \n", + "1978-10-23/1978-10-29 7.504286 7.702857 8.102857 3.204286 7.464286 \n", + "1978-10-30/1978-11-05 13.060000 13.465714 12.137143 6.682857 9.891429 \n", + "1978-11-06/1978-11-12 14.857143 15.237143 12.007143 7.684286 12.460000 \n", + "1978-11-13/1978-11-19 20.590000 18.998571 17.272857 10.417143 14.220000 \n", + "1978-11-20/1978-11-26 16.498571 13.971429 13.544286 6.361429 10.438571 \n", + "1978-11-27/1978-12-03 14.934286 11.232857 13.941429 5.565714 10.215714 \n", + "1978-12-04/1978-12-10 20.740000 19.190000 17.034286 9.777143 15.287143 \n", + "1978-12-11/1978-12-17 16.758571 14.692857 14.987143 6.917143 11.397143 \n", + "1978-12-18/1978-12-24 11.155714 8.008571 13.172857 4.004286 7.825714 \n", + "1978-12-25/1978-12-31 14.951429 11.801429 16.035714 6.507143 9.660000 \n", "\n", - " MUL CLO BEL MAL months_num \n", - "0 10.83 12.58 18.50 15.04 1 \n", - "1 9.79 9.67 17.54 13.83 1 \n", - "2 8.50 7.67 12.75 12.71 1 \n", - "3 5.83 5.88 5.46 10.88 1 \n", - "4 10.92 10.34 12.92 11.83 1 \n", - "5 7.17 7.50 8.12 13.17 1 \n", - "6 7.58 7.96 13.96 13.79 1 \n", - "7 9.25 10.46 16.62 16.46 1 \n", - "8 7.79 9.08 13.04 15.37 1 \n", - "9 8.54 9.00 8.58 11.83 1 \n", - "10 5.71 8.67 20.71 16.92 1 \n", - "11 10.37 14.58 15.59 14.09 1 \n", - "12 2.33 3.37 5.25 7.04 1 \n", - "13 0.50 2.67 7.17 5.17 1 \n", - "14 4.75 5.63 7.54 6.75 1 \n", - "15 8.21 7.33 13.04 9.04 1 \n", - "16 8.71 11.38 15.92 16.08 1 \n", - "17 14.67 16.71 8.79 17.96 1 \n", - "18 1.92 2.71 6.87 7.83 1 \n", - "19 3.13 3.37 6.50 6.79 1 \n", - "20 7.04 7.87 6.75 12.42 1 \n", - "21 6.34 7.50 10.88 9.92 1 \n", - "22 10.75 13.17 14.79 20.58 1 \n", - "23 15.37 15.12 23.09 25.25 1 \n", - "24 7.12 12.04 14.04 17.50 1 \n", - "25 16.08 19.08 20.50 25.25 1 \n", - "26 18.66 19.08 26.08 27.63 1 \n", - "27 11.92 11.04 20.30 18.12 1 \n", - "28 21.46 19.95 27.71 23.38 1 \n", - "29 9.92 11.96 18.88 19.25 1 \n", - "... ... ... ... ... ... \n", - "6544 9.21 11.21 9.59 19.95 216 \n", - "6545 15.79 17.50 21.42 25.75 216 \n", - "6546 10.79 10.21 17.88 17.96 216 \n", - "6547 12.96 12.29 17.08 19.83 216 \n", - "6548 21.00 20.58 21.67 34.46 216 \n", - "6549 19.75 21.50 23.04 34.59 216 \n", - "6550 6.63 6.75 9.54 17.33 216 \n", - "6551 9.75 11.08 14.33 15.34 216 \n", - "6552 16.21 16.17 26.08 21.92 216 \n", - "6553 15.54 16.29 18.34 22.83 216 \n", - "6554 11.42 10.50 11.25 13.50 216 \n", - "6555 14.17 15.09 21.50 21.37 216 \n", - "6556 7.96 3.37 5.21 6.92 216 \n", - "6557 7.67 6.08 5.50 17.16 216 \n", - "6558 6.13 5.96 10.92 18.08 216 \n", - "6559 1.29 2.67 5.00 9.08 216 \n", - "6560 4.42 5.88 19.79 19.79 216 \n", - "6561 6.21 8.17 8.33 18.25 216 \n", - "6562 2.13 4.71 3.21 10.29 216 \n", - "6563 8.67 9.00 11.25 20.30 216 \n", - "6564 5.09 5.04 9.92 11.00 216 \n", - "6565 12.71 12.00 18.50 21.50 216 \n", - "6566 10.83 11.71 11.92 31.71 216 \n", - "6567 5.21 5.25 1.21 13.96 216 \n", - "6568 3.04 3.08 4.79 11.96 216 \n", - "6569 14.04 14.00 17.21 40.08 216 \n", - "6570 15.25 18.05 21.79 41.46 216 \n", - "6571 14.50 16.42 18.88 29.58 216 \n", - "6572 12.46 12.12 14.67 28.79 216 \n", - "6573 11.58 11.38 12.08 22.08 216 \n", + " BIR DUB CLA MUL CLO \\\n", + "Yr_Mo_Dy \n", + "1960-12-26/1961-01-01 9.870000 13.670000 10.250000 10.830000 12.580000 \n", + "1961-01-02/1961-01-08 6.435714 11.061429 6.616667 8.434286 8.497143 \n", + "1961-01-09/1961-01-15 5.072857 7.535714 6.820000 5.712857 7.571429 \n", + "1961-01-16/1961-01-22 7.417143 9.257143 7.875714 7.145714 8.124286 \n", + "1961-01-23/1961-01-29 14.828571 15.528571 15.160000 14.480000 15.640000 \n", + "1961-01-30/1961-02-05 9.107143 12.204286 8.548571 9.821429 9.460000 \n", + "1961-02-06/1961-02-12 12.522857 14.934286 14.850000 14.064286 14.440000 \n", + "1961-02-13/1961-02-19 11.868571 9.542857 12.128571 12.375714 13.542857 \n", + "1961-02-20/1961-02-26 10.114286 11.150000 10.875714 10.392857 12.730000 \n", + "1961-02-27/1961-03-05 9.238571 10.232857 11.130000 10.383333 12.370000 \n", + "1961-03-06/1961-03-12 9.488571 6.881429 9.637143 9.885714 10.458571 \n", + "1961-03-13/1961-03-19 8.652857 10.041429 10.220000 10.101429 11.627143 \n", + "1961-03-20/1961-03-26 7.982857 10.774286 8.977143 10.904286 11.481429 \n", + "1961-03-27/1961-04-02 9.165714 11.125714 9.061429 10.478333 9.631429 \n", + "1961-04-03/1961-04-09 7.637143 7.107143 8.041429 8.161429 7.238571 \n", + "1961-04-10/1961-04-16 4.947143 5.005714 4.994286 5.718571 6.178571 \n", + "1961-04-17/1961-04-23 7.798571 9.000000 9.111429 8.767143 9.551429 \n", + "1961-04-24/1961-04-30 5.197143 6.150000 6.377143 6.242857 6.124286 \n", + "1961-05-01/1961-05-07 10.864286 11.435714 12.244286 11.677143 11.585714 \n", + "1961-05-08/1961-05-14 6.391429 8.013333 7.052857 7.528571 7.822857 \n", + "1961-05-15/1961-05-21 5.022857 5.695714 6.970000 6.847143 7.114286 \n", + "1961-05-22/1961-05-28 4.112857 5.142857 6.272857 6.108571 7.535714 \n", + "1961-05-29/1961-06-04 6.451429 8.344286 8.635714 8.714286 9.035714 \n", + "1961-06-05/1961-06-11 5.460000 7.084286 6.884286 8.034286 8.397143 \n", + "1961-06-12/1961-06-18 6.947143 9.278571 9.102857 8.992857 9.594286 \n", + "1961-06-19/1961-06-25 7.492857 11.868571 9.447143 10.458571 11.257143 \n", + "1961-06-26/1961-07-02 6.507143 7.642857 9.237143 7.904286 10.268571 \n", + "1961-07-03/1961-07-09 7.982857 11.888333 9.308571 10.732857 10.547143 \n", + "1961-07-10/1961-07-16 8.412857 10.171429 10.507143 9.530000 10.157143 \n", + "1961-07-17/1961-07-23 2.715714 3.964286 5.642857 5.297143 6.041429 \n", + "... ... ... ... ... ... \n", + "1978-06-05/1978-06-11 8.030000 8.678571 8.227143 9.172857 9.642857 \n", + "1978-06-12/1978-06-18 6.898571 7.297143 7.464286 7.054286 6.225714 \n", + "1978-06-19/1978-06-25 6.852857 7.648571 7.875714 7.865714 7.084286 \n", + "1978-06-26/1978-07-02 9.005714 11.055714 8.917143 9.994286 7.498571 \n", + "1978-07-03/1978-07-09 10.762857 11.368571 11.218571 11.272857 11.082857 \n", + "1978-07-10/1978-07-16 2.631429 2.494286 3.540000 3.397143 3.214286 \n", + "1978-07-17/1978-07-23 8.282857 8.147143 9.301429 8.952857 8.402857 \n", + "1978-07-24/1978-07-30 8.707143 7.458571 9.117143 9.304286 8.148571 \n", + "1978-07-31/1978-08-06 5.855714 7.065714 5.410000 6.631429 4.962857 \n", + "1978-08-07/1978-08-13 6.702857 5.452857 5.964286 7.518571 5.661429 \n", + "1978-08-14/1978-08-20 8.034286 7.267143 8.517143 9.815714 7.941429 \n", + "1978-08-21/1978-08-27 4.077143 3.291429 3.500000 5.877143 4.447143 \n", + "1978-08-28/1978-09-03 5.090000 6.184286 3.000000 6.202857 4.745714 \n", + "1978-09-04/1978-09-10 10.927143 9.157143 9.458571 10.588571 8.274286 \n", + "1978-09-11/1978-09-17 11.868571 13.017143 12.447143 11.908571 10.957143 \n", + "1978-09-18/1978-09-24 5.171429 7.047143 6.750000 6.870000 6.291429 \n", + "1978-09-25/1978-10-01 10.338571 15.124286 12.378571 12.275714 11.970000 \n", + "1978-10-02/1978-10-08 8.881429 9.707143 9.708571 11.391429 10.161429 \n", + "1978-10-09/1978-10-15 6.237143 5.577143 6.348571 7.232857 7.285714 \n", + "1978-10-16/1978-10-22 6.862857 9.391429 7.428571 7.765714 8.048571 \n", + "1978-10-23/1978-10-29 5.905714 8.727143 6.652857 7.605714 8.120000 \n", + "1978-10-30/1978-11-05 8.314286 9.775714 9.638571 10.185714 10.422857 \n", + "1978-11-06/1978-11-12 9.352857 10.224286 10.554286 11.168571 12.232857 \n", + "1978-11-13/1978-11-19 11.208571 16.081429 12.915714 13.297143 13.242857 \n", + "1978-11-20/1978-11-26 7.404286 12.797143 7.571429 9.998571 8.915714 \n", + "1978-11-27/1978-12-03 8.618571 9.642857 7.685714 9.011429 9.547143 \n", + "1978-12-04/1978-12-10 12.774286 14.437143 12.488571 13.870000 14.082857 \n", + "1978-12-11/1978-12-17 7.272857 10.208571 7.967143 9.168571 8.565714 \n", + "1978-12-18/1978-12-24 6.290000 7.798571 8.667143 7.151429 8.072857 \n", + "1978-12-25/1978-12-31 8.620000 13.708571 10.477143 10.868571 11.471429 \n", "\n", - "[6574 rows x 16 columns]" + " BEL MAL \n", + "Yr_Mo_Dy \n", + "1960-12-26/1961-01-01 18.500000 15.040000 \n", + "1961-01-02/1961-01-08 12.481429 13.238571 \n", + "1961-01-09/1961-01-15 11.125714 11.024286 \n", + "1961-01-16/1961-01-22 9.821429 11.434286 \n", + "1961-01-23/1961-01-29 20.930000 22.530000 \n", + "1961-01-30/1961-02-05 14.012857 11.935714 \n", + "1961-02-06/1961-02-12 21.832857 19.155714 \n", + "1961-02-13/1961-02-19 21.167143 16.584286 \n", + "1961-02-20/1961-02-26 16.304286 14.322857 \n", + "1961-02-27/1961-03-05 17.842857 13.951667 \n", + "1961-03-06/1961-03-12 16.701429 14.420000 \n", + "1961-03-13/1961-03-19 19.350000 16.227143 \n", + "1961-03-20/1961-03-26 14.037143 18.134286 \n", + "1961-03-27/1961-04-02 13.471429 13.900000 \n", + "1961-04-03/1961-04-09 11.712857 11.371429 \n", + "1961-04-10/1961-04-16 9.482857 8.690000 \n", + "1961-04-17/1961-04-23 13.620000 12.470000 \n", + "1961-04-24/1961-04-30 9.720000 8.637143 \n", + "1961-05-01/1961-05-07 17.548571 14.571429 \n", + "1961-05-08/1961-05-14 10.421429 10.382857 \n", + "1961-05-15/1961-05-21 9.624286 10.612857 \n", + "1961-05-22/1961-05-28 10.518571 11.697143 \n", + "1961-05-29/1961-06-04 12.298571 13.597143 \n", + "1961-06-05/1961-06-11 10.148571 12.250000 \n", + "1961-06-12/1961-06-18 15.351429 15.025714 \n", + "1961-06-19/1961-06-25 14.370000 17.410000 \n", + "1961-06-26/1961-07-02 14.535714 12.133333 \n", + "1961-07-03/1961-07-09 12.220000 15.987143 \n", + "1961-07-10/1961-07-16 13.520000 12.524286 \n", + "1961-07-17/1961-07-23 7.524286 8.415714 \n", + "... ... ... \n", + "1978-06-05/1978-06-11 11.632857 17.778571 \n", + "1978-06-12/1978-06-18 11.398571 12.957143 \n", + "1978-06-19/1978-06-25 13.030000 16.678571 \n", + "1978-06-26/1978-07-02 12.268571 15.287143 \n", + "1978-07-03/1978-07-09 14.754286 18.215714 \n", + "1978-07-10/1978-07-16 7.198571 7.578571 \n", + "1978-07-17/1978-07-23 13.847143 14.785714 \n", + "1978-07-24/1978-07-30 15.192857 14.584286 \n", + "1978-07-31/1978-08-06 9.084286 11.405714 \n", + "1978-08-07/1978-08-13 10.691429 11.927143 \n", + "1978-08-14/1978-08-20 15.000000 14.405714 \n", + "1978-08-21/1978-08-27 8.131429 10.661429 \n", + "1978-08-28/1978-09-03 8.105714 13.150000 \n", + "1978-09-04/1978-09-10 14.560000 16.752857 \n", + "1978-09-11/1978-09-17 18.422857 23.441429 \n", + "1978-09-18/1978-09-24 13.447143 15.324286 \n", + "1978-09-25/1978-10-01 19.160000 24.158571 \n", + "1978-10-02/1978-10-08 16.498571 20.618571 \n", + "1978-10-09/1978-10-15 12.197143 14.177143 \n", + "1978-10-16/1978-10-22 12.708571 17.868571 \n", + "1978-10-23/1978-10-29 14.487143 16.915714 \n", + "1978-10-30/1978-11-05 18.451429 18.721429 \n", + "1978-11-06/1978-11-12 19.307143 22.522857 \n", + "1978-11-13/1978-11-19 20.357143 23.905714 \n", + "1978-11-20/1978-11-26 15.207143 19.491429 \n", + "1978-11-27/1978-12-03 11.835714 18.728571 \n", + "1978-12-04/1978-12-10 18.517143 23.061429 \n", + "1978-12-11/1978-12-17 11.102857 15.562857 \n", + "1978-12-18/1978-12-24 11.845714 18.977143 \n", + "1978-12-25/1978-12-31 12.947143 26.844286 \n", + "\n", + "[940 rows x 12 columns]" ] }, - "execution_count": 3, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# call data again but this time don't use parse_dates\n", - "wind_data = pd.read_table(\"wind.data\", sep = \"\\s+\") \n", - "\n", - "# compute the month number for each day in the dataset, there are in total 216 months\n", - "wind_data['months_num'] = (wind_data.iloc[:, 0] - 61) * 12 + wind_data.iloc[:, 1]\n", - "\n", - "wind_data\n", - "\n", - "# group the data according to the months_num and get the mean\n", - "# monthly_data = wind_data.groupby(['months_num']).mean()\n", - "\n", - "# monthly_data.head()" + "data.groupby(data.index.to_period('W')).mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 16. Calculate the min, max and mean windspeeds and standard deviations of the windspeeds across all locations for each week (assume that the first week starts on January 2 1961) for the first 52 weeks." + "### Step 15. Calculate the min, max and mean windspeeds and standard deviations of the windspeeds across all locations for each week (assume that the first week starts on January 2 1961) for the first 52 weeks." ] }, { "cell_type": "code", - "execution_count": 433, - "metadata": { - "collapsed": false - }, + "execution_count": 17, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -4562,38 +4086,38 @@ "1961-03-05 10.96 13.33 12.101429 0.997721 8.83 17.00 12.951429 \n", "1961-03-12 4.88 14.79 9.376667 3.732263 8.08 16.96 11.578571 \n", "\n", - " ROS ... CLO BEL \\\n", - " std min max ... mean std min \n", - "Yr_Mo_Dy ... \n", - "1961-01-08 3.949525 7.62 12.33 ... 8.497143 1.704941 5.46 \n", - "1961-01-15 3.148945 7.08 19.50 ... 7.571429 4.084293 5.25 \n", - "1961-01-22 3.837785 7.29 20.79 ... 8.124286 4.783952 6.50 \n", - "1961-01-29 5.170224 12.67 25.84 ... 15.640000 3.713368 14.04 \n", - "1961-02-05 5.187395 9.04 19.70 ... 9.460000 2.839501 9.17 \n", - "1961-02-12 3.608373 13.67 21.34 ... 14.440000 1.746749 15.21 \n", - "1961-02-19 3.575012 6.13 19.41 ... 13.542857 2.531361 14.09 \n", - "1961-02-26 5.147348 6.08 22.42 ... 12.730000 4.920064 9.59 \n", - "1961-03-05 2.851955 8.17 13.67 ... 12.370000 1.593685 11.58 \n", - "1961-03-12 3.230167 7.54 16.38 ... 10.458571 3.655113 10.21 \n", + " ROS ... CLO BEL \\\n", + " std min max ... mean std min max \n", + "Yr_Mo_Dy ... \n", + "1961-01-08 3.949525 7.62 12.33 ... 8.497143 1.704941 5.46 17.54 \n", + "1961-01-15 3.148945 7.08 19.50 ... 7.571429 4.084293 5.25 20.71 \n", + "1961-01-22 3.837785 7.29 20.79 ... 8.124286 4.783952 6.50 15.92 \n", + "1961-01-29 5.170224 12.67 25.84 ... 15.640000 3.713368 14.04 27.71 \n", + "1961-02-05 5.187395 9.04 19.70 ... 9.460000 2.839501 9.17 19.33 \n", + "1961-02-12 3.608373 13.67 21.34 ... 14.440000 1.746749 15.21 26.38 \n", + "1961-02-19 3.575012 6.13 19.41 ... 13.542857 2.531361 14.09 29.63 \n", + "1961-02-26 5.147348 6.08 22.42 ... 12.730000 4.920064 9.59 23.21 \n", + "1961-03-05 2.851955 8.17 13.67 ... 12.370000 1.593685 11.58 23.45 \n", + "1961-03-12 3.230167 7.54 16.38 ... 10.458571 3.655113 10.21 22.71 \n", "\n", - " MAL \n", - " max mean std min max mean std \n", - "Yr_Mo_Dy \n", - "1961-01-08 17.54 12.481429 4.349139 10.88 16.46 13.238571 1.773062 \n", - "1961-01-15 20.71 11.125714 5.552215 5.17 16.92 11.024286 4.692355 \n", - "1961-01-22 15.92 9.821429 3.626584 6.79 17.96 11.434286 4.237239 \n", - "1961-01-29 27.71 20.930000 5.210726 17.50 27.63 22.530000 3.874721 \n", - "1961-02-05 19.33 14.012857 4.210858 7.17 19.25 11.935714 4.336104 \n", - "1961-02-12 26.38 21.832857 4.063753 17.04 21.84 19.155714 1.828705 \n", - "1961-02-19 29.63 21.167143 5.910938 10.96 22.58 16.584286 4.685377 \n", - "1961-02-26 23.21 16.304286 5.091162 6.67 23.87 14.322857 6.182283 \n", - "1961-03-05 23.45 17.842857 4.332331 8.83 17.54 13.951667 3.021387 \n", - "1961-03-12 22.71 16.701429 4.358759 5.54 22.54 14.420000 5.769890 \n", + " MAL \n", + " mean std min max mean std \n", + "Yr_Mo_Dy \n", + "1961-01-08 12.481429 4.349139 10.88 16.46 13.238571 1.773062 \n", + "1961-01-15 11.125714 5.552215 5.17 16.92 11.024286 4.692355 \n", + "1961-01-22 9.821429 3.626584 6.79 17.96 11.434286 4.237239 \n", + "1961-01-29 20.930000 5.210726 17.50 27.63 22.530000 3.874721 \n", + "1961-02-05 14.012857 4.210858 7.17 19.25 11.935714 4.336104 \n", + "1961-02-12 21.832857 4.063753 17.04 21.84 19.155714 1.828705 \n", + "1961-02-19 21.167143 5.910938 10.96 22.58 16.584286 4.685377 \n", + "1961-02-26 16.304286 5.091162 6.67 23.87 14.322857 6.182283 \n", + "1961-03-05 17.842857 4.332331 8.83 17.54 13.951667 3.021387 \n", + "1961-03-12 16.701429 4.358759 5.54 22.54 14.420000 5.769890 \n", "\n", "[10 rows x 48 columns]" ] }, - "execution_count": 433, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -4603,29 +4127,43 @@ "weekly = data.resample('W').agg(['min','max','mean','std'])\n", "\n", "# slice it for the first 52 weeks and locations\n", - "weekly.ix[1:53, \"RPT\":\"MAL\"].head(10)" + "weekly.loc[weekly.index[1:53], \"RPT\":\"MAL\"] .head(10)" ] } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/06_Stats/Wind_Stats/Solutions.ipynb b/06_Stats/Wind_Stats/Solutions.ipynb index a0160b398..8f23339b4 100644 --- a/06_Stats/Wind_Stats/Solutions.ipynb +++ b/06_Stats/Wind_Stats/Solutions.ipynb @@ -27,9 +27,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -64,9 +62,7 @@ }, { "cell_type": "markdown", - "metadata": { - "collapsed": false - }, + "metadata": {}, "source": [ "### Step 1. Import the necessary libraries" ] @@ -74,20 +70,15 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], - "source": [ - "import pandas as pd\n", - "import datetime" - ] + "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://github.com/guipsamora/pandas_exercises/blob/master/Stats/Wind_Stats/wind.data)" + "### Step 2. Import the dataset from this [address](https://github.com/guipsamora/pandas_exercises/blob/master/06_Stats/Wind_Stats/wind.data)" ] }, { @@ -100,9 +91,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -245,9 +234,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -390,9 +377,7 @@ { "cell_type": "code", "execution_count": 5, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -546,10 +531,8 @@ }, { "cell_type": "code", - "execution_count": 423, - "metadata": { - "collapsed": false - }, + "execution_count": 6, + "metadata": {}, "outputs": [ { "data": { @@ -569,7 +552,7 @@ "dtype: int64" ] }, - "execution_count": 423, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -585,31 +568,30 @@ }, { "cell_type": "code", - "execution_count": 424, + "execution_count": 7, "metadata": { - "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ - "RPT 6\n", - "VAL 9\n", - "ROS 10\n", - "KIL 7\n", - "SHA 10\n", - "BIR 12\n", - "DUB 9\n", - "CLA 10\n", - "MUL 9\n", - "CLO 11\n", - "BEL 12\n", - "MAL 8\n", + "RPT 6568\n", + "VAL 6571\n", + "ROS 6572\n", + "KIL 6569\n", + "SHA 6572\n", + "BIR 6574\n", + "DUB 6571\n", + "CLA 6572\n", + "MUL 6571\n", + "CLO 6573\n", + "BEL 6574\n", + "MAL 6570\n", "dtype: int64" ] }, - "execution_count": 424, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -626,18 +608,16 @@ }, { "cell_type": "code", - "execution_count": 426, - "metadata": { - "collapsed": false - }, + "execution_count": 8, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "10.227982360836924" + "10.227883764282167" ] }, - "execution_count": 426, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -655,11 +635,17 @@ }, { "cell_type": "code", - "execution_count": 264, - "metadata": { - "collapsed": false - }, + "execution_count": 9, + "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "//anaconda/lib/python2.7/site-packages/numpy/lib/function_base.py:4291: RuntimeWarning: Invalid value encountered in percentile\n", + " interpolation=interpolation)\n" + ] + }, { "data": { "text/html": [ @@ -668,118 +654,142 @@ " \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", - " \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", "
minmaxmeanstdRPTVALROSKILSHABIRDUBCLAMULCLOBELMAL
RPT0.6735.8012.3629875.618413count6568.0000006571.0000006572.0000006569.0000006572.0000006574.0000006571.0000006572.0000006571.0000006573.0000006574.0000006570.000000
VAL0.2133.37mean12.36298710.6443145.267356
ROS1.5033.8411.6605265.008450
KIL0.0028.466.3064683.605811
SHA0.1337.5410.4558344.936125
BIR0.0026.167.0922543.968683
DUB0.0030.379.7973434.977555
CLA0.0031.088.4950534.499449
MUL0.0025.888.4935904.1668728.70733213.12100715.599079
CLO0.0428.218.707332std5.6184135.2673565.0084503.6058114.9361253.9686834.9775554.4994494.1668724.5039545.8350376.699794
BEL0.1342.3813.1210075.835037min0.6700000.2100001.5000000.0000000.1300000.0000000.0000000.0000000.0000000.0400000.1300000.670000
50%NaNNaNNaNNaNNaN6.830000NaNNaNNaNNaN12.500000NaN
MAL0.6742.5415.5990796.699794max35.80000033.37000033.84000028.46000037.54000026.16000030.37000031.08000025.88000028.21000042.38000042.540000
\n", "
" ], "text/plain": [ - " min max mean std\n", - "RPT 0.67 35.80 12.362987 5.618413\n", - "VAL 0.21 33.37 10.644314 5.267356\n", - "ROS 1.50 33.84 11.660526 5.008450\n", - "KIL 0.00 28.46 6.306468 3.605811\n", - "SHA 0.13 37.54 10.455834 4.936125\n", - "BIR 0.00 26.16 7.092254 3.968683\n", - "DUB 0.00 30.37 9.797343 4.977555\n", - "CLA 0.00 31.08 8.495053 4.499449\n", - "MUL 0.00 25.88 8.493590 4.166872\n", - "CLO 0.04 28.21 8.707332 4.503954\n", - "BEL 0.13 42.38 13.121007 5.835037\n", - "MAL 0.67 42.54 15.599079 6.699794" + " RPT VAL ROS KIL SHA \\\n", + "count 6568.000000 6571.000000 6572.000000 6569.000000 6572.000000 \n", + "mean 12.362987 10.644314 11.660526 6.306468 10.455834 \n", + "std 5.618413 5.267356 5.008450 3.605811 4.936125 \n", + "min 0.670000 0.210000 1.500000 0.000000 0.130000 \n", + "50% NaN NaN NaN NaN NaN \n", + "max 35.800000 33.370000 33.840000 28.460000 37.540000 \n", + "\n", + " BIR DUB CLA MUL CLO \\\n", + "count 6574.000000 6571.000000 6572.000000 6571.000000 6573.000000 \n", + "mean 7.092254 9.797343 8.495053 8.493590 8.707332 \n", + "std 3.968683 4.977555 4.499449 4.166872 4.503954 \n", + "min 0.000000 0.000000 0.000000 0.000000 0.040000 \n", + "50% 6.830000 NaN NaN NaN NaN \n", + "max 26.160000 30.370000 31.080000 25.880000 28.210000 \n", + "\n", + " BEL MAL \n", + "count 6574.000000 6570.000000 \n", + "mean 13.121007 15.599079 \n", + "std 5.835037 6.699794 \n", + "min 0.130000 0.670000 \n", + "50% 12.500000 NaN \n", + "max 42.380000 42.540000 " ] }, - "execution_count": 264, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -797,10 +807,8 @@ }, { "cell_type": "code", - "execution_count": 404, - "metadata": { - "collapsed": false - }, + "execution_count": 10, + "metadata": {}, "outputs": [ { "data": { @@ -815,57 +823,65 @@ " mean\n", " std\n", " \n", + " \n", + " Yr_Mo_Dy\n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " 0\n", - " 1.0\n", + " 1961-01-01\n", + " 9.29\n", " 18.50\n", - " 12.016667\n", - " 4.382798\n", + " 13.018182\n", + " 2.808875\n", " \n", " \n", - " 1\n", - " 1.0\n", + " 1961-01-02\n", + " 6.50\n", " 17.54\n", - " 10.475000\n", - " 4.260110\n", + " 11.336364\n", + " 3.188994\n", " \n", " \n", - " 2\n", - " 1.0\n", + " 1961-01-03\n", + " 6.17\n", " 18.50\n", - " 10.755000\n", - " 4.664914\n", + " 11.641818\n", + " 3.681912\n", " \n", " \n", - " 3\n", - " 1.0\n", + " 1961-01-04\n", + " 1.79\n", " 11.75\n", - " 6.186923\n", - " 3.435771\n", + " 6.619167\n", + " 3.198126\n", " \n", " \n", - " 4\n", - " 1.0\n", + " 1961-01-05\n", + " 6.17\n", " 13.33\n", - " 9.889231\n", - " 3.551768\n", + " 10.630000\n", + " 2.445356\n", " \n", " \n", "\n", "" ], "text/plain": [ - " min max mean std\n", - "0 1.0 18.50 12.016667 4.382798\n", - "1 1.0 17.54 10.475000 4.260110\n", - "2 1.0 18.50 10.755000 4.664914\n", - "3 1.0 11.75 6.186923 3.435771\n", - "4 1.0 13.33 9.889231 3.551768" + " min max mean std\n", + "Yr_Mo_Dy \n", + "1961-01-01 9.29 18.50 13.018182 2.808875\n", + "1961-01-02 6.50 17.54 11.336364 3.188994\n", + "1961-01-03 6.17 18.50 11.641818 3.681912\n", + "1961-01-04 1.79 11.75 6.619167 3.198126\n", + "1961-01-05 6.17 13.33 10.630000 2.445356" ] }, - "execution_count": 404, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -882,10 +898,8 @@ }, { "cell_type": "code", - "execution_count": 427, - "metadata": { - "collapsed": false - }, + "execution_count": 11, + "metadata": {}, "outputs": [ { "data": { @@ -905,7 +919,7 @@ "dtype: float64" ] }, - "execution_count": 427, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -921,10 +935,8 @@ }, { "cell_type": "code", - "execution_count": 428, - "metadata": { - "collapsed": false - }, + "execution_count": 12, + "metadata": {}, "outputs": [ { "data": { @@ -946,10 +958,6 @@ " CLO\n", " BEL\n", " MAL\n", - " date\n", - " month\n", - " year\n", - " day\n", " \n", " \n", " Yr_Mo_Dy\n", @@ -965,404 +973,328 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", - " 1961-01-01\n", - " 15.04\n", - " 14.96\n", - " 13.17\n", - " 9.29\n", - " NaN\n", - " 9.87\n", - " 13.67\n", - " 10.25\n", - " 10.83\n", - " 12.58\n", - " 18.50\n", - " 15.04\n", - " 1961-01-01\n", - " 1\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1962-01-01\n", - " 9.29\n", - " 3.42\n", - " 11.54\n", - " 3.50\n", - " 2.21\n", - " 1.96\n", - " 10.41\n", - " 2.79\n", - " 3.54\n", - " 5.17\n", - " 4.38\n", - " 7.92\n", - " 1962-01-01\n", - " 1\n", - " 1962\n", - " 1\n", - " \n", - " \n", - " 1963-01-01\n", - " 15.59\n", - " 13.62\n", - " 19.79\n", - " 8.38\n", - " 12.25\n", - " 10.00\n", - " 23.45\n", - " 15.71\n", - " 13.59\n", - " 14.37\n", - " 17.58\n", - " 34.13\n", - " 1963-01-01\n", - " 1\n", - " 1963\n", - " 1\n", - " \n", - " \n", - " 1964-01-01\n", - " 25.80\n", - " 22.13\n", - " 18.21\n", - " 13.25\n", - " 21.29\n", - " 14.79\n", - " 14.12\n", - " 19.58\n", - " 13.25\n", - " 16.75\n", - " 28.96\n", - " 21.00\n", - " 1964-01-01\n", - " 1\n", - " 1964\n", - " 1\n", - " \n", - " \n", - " 1965-01-01\n", - " 9.54\n", - " 11.92\n", - " 9.00\n", - " 4.38\n", - " 6.08\n", - " 5.21\n", - " 10.25\n", - " 6.08\n", - " 5.71\n", - " 8.63\n", - " 12.04\n", - " 17.41\n", - " 1965-01-01\n", - " 1\n", - " 1965\n", - " 1\n", - " \n", - " \n", - " 1966-01-01\n", - " 22.04\n", - " 21.50\n", - " 17.08\n", - " 12.75\n", - " 22.17\n", - " 15.59\n", - " 21.79\n", - " 18.12\n", - " 16.66\n", - " 17.83\n", - " 28.33\n", - " 23.79\n", - " 1966-01-01\n", - " 1\n", - " 1966\n", - " 1\n", - " \n", - " \n", - " 1967-01-01\n", - " 6.46\n", - " 4.46\n", - " 6.50\n", - " 3.21\n", - " 6.67\n", - " 3.79\n", - " 11.38\n", - " 3.83\n", - " 7.71\n", - " 9.08\n", - " 10.67\n", - " 20.91\n", - " 1967-01-01\n", - " 1\n", - " 1967\n", - " 1\n", - " \n", - " \n", - " 1968-01-01\n", - " 30.04\n", - " 17.88\n", - " 16.25\n", - " 16.25\n", - " 21.79\n", - " 12.54\n", - " 18.16\n", - " 16.62\n", - " 18.75\n", - " 17.62\n", - " 22.25\n", - " 27.29\n", - " 1968-01-01\n", - " 1\n", - " 1968\n", - " 1\n", - " \n", - " \n", - " 1969-01-01\n", - " 6.13\n", - " 1.63\n", - " 5.41\n", - " 1.08\n", - " 2.54\n", - " 1.00\n", - " 8.50\n", - " 2.42\n", - " 4.58\n", - " 6.34\n", - " 9.17\n", - " 16.71\n", - " 1969-01-01\n", - " 1\n", - " 1969\n", - " 1\n", - " \n", - " \n", - " 1970-01-01\n", - " 9.59\n", - " 2.96\n", - " 11.79\n", - " 3.42\n", - " 6.13\n", - " 4.08\n", - " 9.00\n", - " 4.46\n", - " 7.29\n", - " 3.50\n", - " 7.33\n", - " 13.00\n", - " 1970-01-01\n", - " 1\n", - " 1970\n", - " 1\n", - " \n", - " \n", - " 1971-01-01\n", - " 3.71\n", - " 0.79\n", - " 4.71\n", - " 0.17\n", - " 1.42\n", - " 1.04\n", - " 4.63\n", - " 0.75\n", - " 1.54\n", - " 1.08\n", - " 4.21\n", - " 9.54\n", - " 1971-01-01\n", - " 1\n", - " 1971\n", - " 1\n", - " \n", - " \n", - " 1972-01-01\n", - " 9.29\n", - " 3.63\n", - " 14.54\n", - " 4.25\n", - " 6.75\n", - " 4.42\n", - " 13.00\n", - " 5.33\n", - " 10.04\n", - " 8.54\n", - " 8.71\n", - " 19.17\n", - " 1972-01-01\n", - " 1\n", - " 1972\n", - " 1\n", - " \n", - " \n", - " 1973-01-01\n", - " 16.50\n", - " 15.92\n", - " 14.62\n", - " 7.41\n", - " 8.29\n", - " 11.21\n", - " 13.54\n", - " 7.79\n", - " 10.46\n", - " 10.79\n", - " 13.37\n", - " 9.71\n", - " 1973-01-01\n", - " 1\n", - " 1973\n", - " 1\n", - " \n", - " \n", - " 1974-01-01\n", - " 23.21\n", - " 16.54\n", - " 16.08\n", - " 9.75\n", - " 15.83\n", - " 11.46\n", - " 9.54\n", - " 13.54\n", - " 13.83\n", - " 16.66\n", - " 17.21\n", - " 25.29\n", - " 1974-01-01\n", - " 1\n", - " 1974\n", - " 1\n", - " \n", - " \n", - " 1975-01-01\n", - " 14.04\n", - " 13.54\n", - " 11.29\n", - " 5.46\n", - " 12.58\n", - " 5.58\n", - " 8.12\n", - " 8.96\n", - " 9.29\n", - " 5.17\n", - " 7.71\n", - " 11.63\n", - " 1975-01-01\n", - " 1\n", - " 1975\n", - " 1\n", - " \n", - " \n", - " 1976-01-01\n", - " 18.34\n", - " 17.67\n", - " 14.83\n", - " 8.00\n", - " 16.62\n", - " 10.13\n", - " 13.17\n", - " 9.04\n", - " 13.13\n", - " 5.75\n", - " 11.38\n", - " 14.96\n", - " 1976-01-01\n", - " 1\n", - " 1976\n", - " 1\n", - " \n", - " \n", - " 1977-01-01\n", - " 20.04\n", - " 11.92\n", - " 20.25\n", - " 9.13\n", - " 9.29\n", - " 8.04\n", - " 10.75\n", - " 5.88\n", - " 9.00\n", - " 9.00\n", - " 14.88\n", - " 25.70\n", - " 1977-01-01\n", - " 1\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1978-01-01\n", - " 8.33\n", - " 7.12\n", - " 7.71\n", - " 3.54\n", - " 8.50\n", - " 7.50\n", - " 14.71\n", - " 10.00\n", - " 11.83\n", - " 10.00\n", - " 15.09\n", - " 20.46\n", - " 1978-01-01\n", - " 1\n", - " 1978\n", - " 1\n", + " 1961\n", + " 12.299583\n", + " 10.351796\n", + " 11.362369\n", + " 6.958227\n", + " 10.881763\n", + " 7.729726\n", + " 9.733923\n", + " 8.858788\n", + " 8.647652\n", + " 9.835577\n", + " 13.502795\n", + " 13.680773\n", + " \n", + " \n", + " 1962\n", + " 12.246923\n", + " 10.110438\n", + " 11.732712\n", + " 6.960440\n", + " 10.657918\n", + " 7.393068\n", + " 11.020712\n", + " 8.793753\n", + " 8.316822\n", + " 9.676247\n", + " 12.930685\n", + " 14.323956\n", + " \n", + " \n", + " 1963\n", + " 12.813452\n", + " 10.836986\n", + " 12.541151\n", + " 7.330055\n", + " 11.724110\n", + " 8.434712\n", + " 11.075699\n", + " 10.336548\n", + " 8.903589\n", + " 10.224438\n", + " 13.638877\n", + " 14.999014\n", + " \n", + " \n", + " 1964\n", + " 12.363661\n", + " 10.920164\n", + " 12.104372\n", + " 6.787787\n", + " 11.454481\n", + " 7.570874\n", + " 10.259153\n", + " 9.467350\n", + " 7.789016\n", + " 10.207951\n", + " 13.740546\n", + " 14.910301\n", + " \n", + " \n", + " 1965\n", + " 12.451370\n", + " 11.075534\n", + " 11.848767\n", + " 6.858466\n", + " 11.024795\n", + " 7.478110\n", + " 10.618712\n", + " 8.879918\n", + " 7.907425\n", + " 9.918082\n", + " 12.964247\n", + " 15.591644\n", + " \n", + " \n", + " 1966\n", + " 13.461973\n", + " 11.557205\n", + " 12.020630\n", + " 7.345726\n", + " 11.805041\n", + " 7.793671\n", + " 10.579808\n", + " 8.835096\n", + " 8.514438\n", + " 9.768959\n", + " 14.265836\n", + " 16.307260\n", + " \n", + " \n", + " 1967\n", + " 12.737151\n", + " 10.990986\n", + " 11.739397\n", + " 7.143425\n", + " 11.630740\n", + " 7.368164\n", + " 10.652027\n", + " 9.325616\n", + " 8.645014\n", + " 9.547425\n", + " 14.774548\n", + " 17.135945\n", + " \n", + " \n", + " 1968\n", + " 11.835628\n", + " 10.468197\n", + " 11.409754\n", + " 6.477678\n", + " 10.760765\n", + " 6.067322\n", + " 8.859180\n", + " 8.255519\n", + " 7.224945\n", + " 7.832978\n", + " 12.808634\n", + " 15.017486\n", + " \n", + " \n", + " 1969\n", + " 11.166356\n", + " 9.723699\n", + " 10.902000\n", + " 5.767973\n", + " 9.873918\n", + " 6.189973\n", + " 8.564493\n", + " 7.711397\n", + " 7.924521\n", + " 7.754384\n", + " 12.621233\n", + " 15.762904\n", + " \n", + " \n", + " 1970\n", + " 12.600329\n", + " 10.726932\n", + " 11.730247\n", + " 6.217178\n", + " 10.567370\n", + " 7.609452\n", + " 9.609890\n", + " 8.334630\n", + " 9.297616\n", + " 8.289808\n", + " 13.183644\n", + " 16.456027\n", + " \n", + " \n", + " 1971\n", + " 11.273123\n", + " 9.095178\n", + " 11.088329\n", + " 5.241507\n", + " 9.440329\n", + " 6.097151\n", + " 8.385890\n", + " 6.757315\n", + " 7.915370\n", + " 7.229753\n", + " 12.208932\n", + " 15.025233\n", + " \n", + " \n", + " 1972\n", + " 12.463962\n", + " 10.561311\n", + " 12.058333\n", + " 5.929699\n", + " 9.430410\n", + " 6.358825\n", + " 9.704508\n", + " 7.680792\n", + " 8.357295\n", + " 7.515273\n", + " 12.727377\n", + " 15.028716\n", + " \n", + " \n", + " 1973\n", + " 11.828466\n", + " 10.680493\n", + " 10.680493\n", + " 5.547863\n", + " 9.640877\n", + " 6.548740\n", + " 8.482110\n", + " 7.614274\n", + " 8.245534\n", + " 7.812411\n", + " 12.169699\n", + " 15.441096\n", + " \n", + " \n", + " 1974\n", + " 13.643096\n", + " 11.811781\n", + " 12.336356\n", + " 6.427041\n", + " 11.110986\n", + " 6.809781\n", + " 10.084603\n", + " 9.896986\n", + " 9.331753\n", + " 8.736356\n", + " 13.252959\n", + " 16.947671\n", + " \n", + " \n", + " 1975\n", + " 12.008575\n", + " 10.293836\n", + " 11.564712\n", + " 5.269096\n", + " 9.190082\n", + " 5.668521\n", + " 8.562603\n", + " 7.843836\n", + " 8.797945\n", + " 7.382822\n", + " 12.631671\n", + " 15.307863\n", + " \n", + " \n", + " 1976\n", + " 11.737842\n", + " 10.203115\n", + " 10.761230\n", + " 5.109426\n", + " 8.846339\n", + " 6.311038\n", + " 9.149126\n", + " 7.146202\n", + " 8.883716\n", + " 7.883087\n", + " 12.332377\n", + " 15.471448\n", + " \n", + " \n", + " 1977\n", + " 13.099616\n", + " 11.144493\n", + " 12.627836\n", + " 6.073945\n", + " 10.003836\n", + " 8.586438\n", + " 11.523205\n", + " 8.378384\n", + " 9.098192\n", + " 8.821616\n", + " 13.459068\n", + " 16.590849\n", + " \n", + " \n", + " 1978\n", + " 12.504356\n", + " 11.044274\n", + " 11.380000\n", + " 6.082356\n", + " 10.167233\n", + " 7.650658\n", + " 9.489342\n", + " 8.800466\n", + " 9.089753\n", + " 8.301699\n", + " 12.967397\n", + " 16.771370\n", " \n", " \n", "\n", "" ], "text/plain": [ - " RPT VAL ROS KIL SHA BIR DUB CLA MUL \\\n", - "Yr_Mo_Dy \n", - "1961-01-01 15.04 14.96 13.17 9.29 NaN 9.87 13.67 10.25 10.83 \n", - "1962-01-01 9.29 3.42 11.54 3.50 2.21 1.96 10.41 2.79 3.54 \n", - "1963-01-01 15.59 13.62 19.79 8.38 12.25 10.00 23.45 15.71 13.59 \n", - "1964-01-01 25.80 22.13 18.21 13.25 21.29 14.79 14.12 19.58 13.25 \n", - "1965-01-01 9.54 11.92 9.00 4.38 6.08 5.21 10.25 6.08 5.71 \n", - "1966-01-01 22.04 21.50 17.08 12.75 22.17 15.59 21.79 18.12 16.66 \n", - "1967-01-01 6.46 4.46 6.50 3.21 6.67 3.79 11.38 3.83 7.71 \n", - "1968-01-01 30.04 17.88 16.25 16.25 21.79 12.54 18.16 16.62 18.75 \n", - "1969-01-01 6.13 1.63 5.41 1.08 2.54 1.00 8.50 2.42 4.58 \n", - "1970-01-01 9.59 2.96 11.79 3.42 6.13 4.08 9.00 4.46 7.29 \n", - "1971-01-01 3.71 0.79 4.71 0.17 1.42 1.04 4.63 0.75 1.54 \n", - "1972-01-01 9.29 3.63 14.54 4.25 6.75 4.42 13.00 5.33 10.04 \n", - "1973-01-01 16.50 15.92 14.62 7.41 8.29 11.21 13.54 7.79 10.46 \n", - "1974-01-01 23.21 16.54 16.08 9.75 15.83 11.46 9.54 13.54 13.83 \n", - "1975-01-01 14.04 13.54 11.29 5.46 12.58 5.58 8.12 8.96 9.29 \n", - "1976-01-01 18.34 17.67 14.83 8.00 16.62 10.13 13.17 9.04 13.13 \n", - "1977-01-01 20.04 11.92 20.25 9.13 9.29 8.04 10.75 5.88 9.00 \n", - "1978-01-01 8.33 7.12 7.71 3.54 8.50 7.50 14.71 10.00 11.83 \n", + " RPT VAL ROS KIL SHA BIR \\\n", + "Yr_Mo_Dy \n", + "1961 12.299583 10.351796 11.362369 6.958227 10.881763 7.729726 \n", + "1962 12.246923 10.110438 11.732712 6.960440 10.657918 7.393068 \n", + "1963 12.813452 10.836986 12.541151 7.330055 11.724110 8.434712 \n", + "1964 12.363661 10.920164 12.104372 6.787787 11.454481 7.570874 \n", + "1965 12.451370 11.075534 11.848767 6.858466 11.024795 7.478110 \n", + "1966 13.461973 11.557205 12.020630 7.345726 11.805041 7.793671 \n", + "1967 12.737151 10.990986 11.739397 7.143425 11.630740 7.368164 \n", + "1968 11.835628 10.468197 11.409754 6.477678 10.760765 6.067322 \n", + "1969 11.166356 9.723699 10.902000 5.767973 9.873918 6.189973 \n", + "1970 12.600329 10.726932 11.730247 6.217178 10.567370 7.609452 \n", + "1971 11.273123 9.095178 11.088329 5.241507 9.440329 6.097151 \n", + "1972 12.463962 10.561311 12.058333 5.929699 9.430410 6.358825 \n", + "1973 11.828466 10.680493 10.680493 5.547863 9.640877 6.548740 \n", + "1974 13.643096 11.811781 12.336356 6.427041 11.110986 6.809781 \n", + "1975 12.008575 10.293836 11.564712 5.269096 9.190082 5.668521 \n", + "1976 11.737842 10.203115 10.761230 5.109426 8.846339 6.311038 \n", + "1977 13.099616 11.144493 12.627836 6.073945 10.003836 8.586438 \n", + "1978 12.504356 11.044274 11.380000 6.082356 10.167233 7.650658 \n", "\n", - " CLO BEL MAL date month year day \n", - "Yr_Mo_Dy \n", - "1961-01-01 12.58 18.50 15.04 1961-01-01 1 1961 1 \n", - "1962-01-01 5.17 4.38 7.92 1962-01-01 1 1962 1 \n", - "1963-01-01 14.37 17.58 34.13 1963-01-01 1 1963 1 \n", - "1964-01-01 16.75 28.96 21.00 1964-01-01 1 1964 1 \n", - "1965-01-01 8.63 12.04 17.41 1965-01-01 1 1965 1 \n", - "1966-01-01 17.83 28.33 23.79 1966-01-01 1 1966 1 \n", - "1967-01-01 9.08 10.67 20.91 1967-01-01 1 1967 1 \n", - "1968-01-01 17.62 22.25 27.29 1968-01-01 1 1968 1 \n", - "1969-01-01 6.34 9.17 16.71 1969-01-01 1 1969 1 \n", - "1970-01-01 3.50 7.33 13.00 1970-01-01 1 1970 1 \n", - "1971-01-01 1.08 4.21 9.54 1971-01-01 1 1971 1 \n", - "1972-01-01 8.54 8.71 19.17 1972-01-01 1 1972 1 \n", - "1973-01-01 10.79 13.37 9.71 1973-01-01 1 1973 1 \n", - "1974-01-01 16.66 17.21 25.29 1974-01-01 1 1974 1 \n", - "1975-01-01 5.17 7.71 11.63 1975-01-01 1 1975 1 \n", - "1976-01-01 5.75 11.38 14.96 1976-01-01 1 1976 1 \n", - "1977-01-01 9.00 14.88 25.70 1977-01-01 1 1977 1 \n", - "1978-01-01 10.00 15.09 20.46 1978-01-01 1 1978 1 " + " DUB CLA MUL CLO BEL MAL \n", + "Yr_Mo_Dy \n", + "1961 9.733923 8.858788 8.647652 9.835577 13.502795 13.680773 \n", + "1962 11.020712 8.793753 8.316822 9.676247 12.930685 14.323956 \n", + "1963 11.075699 10.336548 8.903589 10.224438 13.638877 14.999014 \n", + "1964 10.259153 9.467350 7.789016 10.207951 13.740546 14.910301 \n", + "1965 10.618712 8.879918 7.907425 9.918082 12.964247 15.591644 \n", + "1966 10.579808 8.835096 8.514438 9.768959 14.265836 16.307260 \n", + "1967 10.652027 9.325616 8.645014 9.547425 14.774548 17.135945 \n", + "1968 8.859180 8.255519 7.224945 7.832978 12.808634 15.017486 \n", + "1969 8.564493 7.711397 7.924521 7.754384 12.621233 15.762904 \n", + "1970 9.609890 8.334630 9.297616 8.289808 13.183644 16.456027 \n", + "1971 8.385890 6.757315 7.915370 7.229753 12.208932 15.025233 \n", + "1972 9.704508 7.680792 8.357295 7.515273 12.727377 15.028716 \n", + "1973 8.482110 7.614274 8.245534 7.812411 12.169699 15.441096 \n", + "1974 10.084603 9.896986 9.331753 8.736356 13.252959 16.947671 \n", + "1975 8.562603 7.843836 8.797945 7.382822 12.631671 15.307863 \n", + "1976 9.149126 7.146202 8.883716 7.883087 12.332377 15.471448 \n", + "1977 11.523205 8.378384 9.098192 8.821616 13.459068 16.590849 \n", + "1978 9.489342 8.800466 9.089753 8.301699 12.967397 16.771370 " ] }, - "execution_count": 428, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -1378,10 +1310,8 @@ }, { "cell_type": "code", - "execution_count": 429, - "metadata": { - "collapsed": false - }, + "execution_count": 13, + "metadata": {}, "outputs": [ { "data": { @@ -1403,10 +1333,6 @@ " CLO\n", " BEL\n", " MAL\n", - " date\n", - " month\n", - " year\n", - " day\n", " \n", " \n", " Yr_Mo_Dy\n", @@ -1422,582 +1348,458 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", - " 1961-01-01\n", - " 15.04\n", - " 14.96\n", - " 13.17\n", - " 9.29\n", - " NaN\n", - " 9.87\n", - " 13.67\n", - " 10.25\n", - " 10.83\n", - " 12.58\n", - " 18.50\n", - " 15.04\n", - " 1961-01-01\n", - " 1\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1961-02-01\n", - " 14.25\n", - " 15.12\n", - " 9.04\n", - " 5.88\n", - " 12.08\n", - " 7.17\n", - " 10.17\n", - " 3.63\n", - " 6.50\n", - " 5.50\n", - " 9.17\n", - " 8.00\n", - " 1961-02-01\n", - " 2\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1961-03-01\n", - " 12.67\n", - " 13.13\n", - " 11.79\n", - " 6.42\n", - " 9.79\n", - " 8.54\n", - " 10.25\n", - " 13.29\n", - " NaN\n", - " 12.21\n", - " 20.62\n", - " NaN\n", - " 1961-03-01\n", - " 3\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1961-04-01\n", - " 8.38\n", - " 6.34\n", - " 8.33\n", - " 6.75\n", - " 9.33\n", - " 9.54\n", - " 11.67\n", - " 8.21\n", - " 11.21\n", - " 6.46\n", - " 11.96\n", - " 7.17\n", - " 1961-04-01\n", - " 4\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1961-05-01\n", - " 15.87\n", - " 13.88\n", - " 15.37\n", - " 9.79\n", - " 13.46\n", - " 10.17\n", - " 9.96\n", - " 14.04\n", - " 9.75\n", - " 9.92\n", - " 18.63\n", - " 11.12\n", - " 1961-05-01\n", - " 5\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1961-06-01\n", - " 15.92\n", - " 9.59\n", - " 12.04\n", - " 8.79\n", - " 11.54\n", - " 6.04\n", - " 9.75\n", - " 8.29\n", - " 9.33\n", - " 10.34\n", - " 10.67\n", - " 12.12\n", - " 1961-06-01\n", - " 6\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1961-07-01\n", - " 7.21\n", - " 6.83\n", - " 7.71\n", - " 4.42\n", - " 8.46\n", - " 4.79\n", - " 6.71\n", - " 6.00\n", - " 5.79\n", - " 7.96\n", - " 6.96\n", - " 8.71\n", - " 1961-07-01\n", - " 7\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1961-08-01\n", - " 9.59\n", - " 5.09\n", - " 5.54\n", - " 4.63\n", - " 8.29\n", - " 5.25\n", - " 4.21\n", - " 5.25\n", - " 5.37\n", - " 5.41\n", - " 8.38\n", - " 9.08\n", - " 1961-08-01\n", - " 8\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1961-09-01\n", - " 5.58\n", - " 1.13\n", - " 4.96\n", - " 3.04\n", - " 4.25\n", - " 2.25\n", - " 4.63\n", - " 2.71\n", - " 3.67\n", - " 6.00\n", - " 4.79\n", - " 5.41\n", - " 1961-09-01\n", - " 9\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1961-10-01\n", - " 14.25\n", - " 12.87\n", - " 7.87\n", - " 8.00\n", - " 13.00\n", - " 7.75\n", - " 5.83\n", - " 9.00\n", - " 7.08\n", - " 5.29\n", - " 11.79\n", - " 4.04\n", - " 1961-10-01\n", - " 10\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1961-11-01\n", - " 13.21\n", - " 13.13\n", - " 14.33\n", - " 8.54\n", - " 12.17\n", - " 10.21\n", - " 13.08\n", - " 12.17\n", - " 10.92\n", - " 13.54\n", - " 20.17\n", - " 20.04\n", - " 1961-11-01\n", - " 11\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1961-12-01\n", - " 9.67\n", - " 7.75\n", - " 8.00\n", - " 3.96\n", - " 6.00\n", - " 2.75\n", - " 7.25\n", - " 2.50\n", - " 5.58\n", - " 5.58\n", - " 7.79\n", - " 11.17\n", - " 1961-12-01\n", - " 12\n", - " 1961\n", - " 1\n", - " \n", - " \n", - " 1962-01-01\n", - " 9.29\n", - " 3.42\n", - " 11.54\n", - " 3.50\n", - " 2.21\n", - " 1.96\n", - " 10.41\n", - " 2.79\n", - " 3.54\n", - " 5.17\n", - " 4.38\n", - " 7.92\n", - " 1962-01-01\n", - " 1\n", - " 1962\n", - " 1\n", - " \n", - " \n", - " 1962-02-01\n", - " 19.12\n", - " 13.96\n", - " 12.21\n", - " 10.58\n", - " 15.71\n", - " 10.63\n", - " 15.71\n", - " 11.08\n", - " 13.17\n", - " 12.62\n", - " 17.67\n", - " 22.71\n", - " 1962-02-01\n", - " 2\n", - " 1962\n", - " 1\n", - " \n", - " \n", - " 1962-03-01\n", - " 8.21\n", - " 4.83\n", - " 9.00\n", - " 4.83\n", - " 6.00\n", - " 2.21\n", - " 7.96\n", - " 1.87\n", - " 4.08\n", - " 3.92\n", - " 4.08\n", - " 5.41\n", - " 1962-03-01\n", - " 3\n", - " 1962\n", - " 1\n", - " \n", - " \n", - " 1962-04-01\n", - " 14.33\n", - " 12.25\n", - " 11.87\n", - " 10.37\n", - " 14.92\n", - " 11.00\n", - " 19.79\n", - " 11.67\n", - " 14.09\n", - " 15.46\n", - " 16.62\n", - " 23.58\n", - " 1962-04-01\n", - " 4\n", - " 1962\n", - " 1\n", - " \n", - " \n", - " 1962-05-01\n", - " 9.62\n", - " 9.54\n", - " 3.58\n", - " 3.33\n", - " 8.75\n", - " 3.75\n", - " 2.25\n", - " 2.58\n", - " 1.67\n", - " 2.37\n", - " 7.29\n", - " 3.25\n", - " 1962-05-01\n", - " 5\n", - " 1962\n", - " 1\n", - " \n", - " \n", - " 1962-06-01\n", - " 5.88\n", - " 6.29\n", - " 8.67\n", - " 5.21\n", - " 5.00\n", - " 4.25\n", - " 5.91\n", - " 5.41\n", - " 4.79\n", - " 9.25\n", - " 5.25\n", - " 10.71\n", - " 1962-06-01\n", - " 6\n", - " 1962\n", - " 1\n", - " \n", - " \n", - " 1962-07-01\n", - " 8.67\n", - " 4.17\n", - " 6.92\n", - " 6.71\n", - " 8.17\n", - " 5.66\n", - " 11.17\n", - " 9.38\n", - " 8.75\n", - " 11.12\n", - " 10.25\n", - " 17.08\n", - " 1962-07-01\n", - " 7\n", - " 1962\n", - " 1\n", + " 1961-01\n", + " 14.841333\n", + " 11.988333\n", + " 13.431613\n", + " 7.736774\n", + " 11.072759\n", + " 8.588065\n", + " 11.184839\n", + " 9.245333\n", + " 9.085806\n", + " 10.107419\n", + " 13.880968\n", + " 14.703226\n", " \n", " \n", - " 1962-08-01\n", - " 4.58\n", - " 5.37\n", - " 6.04\n", - " 2.29\n", - " 7.87\n", - " 3.71\n", - " 4.46\n", - " 2.58\n", - " 4.00\n", - " 4.79\n", - " 7.21\n", - " 7.46\n", - " 1962-08-01\n", - " 8\n", - " 1962\n", - " 1\n", - " \n", - " \n", - " 1962-09-01\n", - " 10.00\n", - " 12.08\n", - " 10.96\n", - " 9.25\n", - " 9.29\n", - " 7.62\n", - " 7.41\n", - " 8.75\n", - " 7.67\n", - " 9.62\n", - " 14.58\n", - " 11.92\n", - " 1962-09-01\n", - " 9\n", - " 1962\n", - " 1\n", + " 1961-02\n", + " 16.269286\n", + " 14.975357\n", + " 14.441481\n", + " 9.230741\n", + " 13.852143\n", + " 10.937500\n", + " 11.890714\n", + " 11.846071\n", + " 11.821429\n", + " 12.714286\n", + " 18.583214\n", + " 15.411786\n", " \n", " \n", - " 1962-10-01\n", - " 14.58\n", - " 7.83\n", - " 19.21\n", - " 10.08\n", - " 11.54\n", - " 8.38\n", - " 13.29\n", - " 10.63\n", - " 8.21\n", - " 12.92\n", - " 18.05\n", - " 18.12\n", - " 1962-10-01\n", - " 10\n", - " 1962\n", - " 1\n", + " 1961-03\n", + " 10.890000\n", + " 11.296452\n", + " 10.752903\n", + " 7.284000\n", + " 10.509355\n", + " 8.866774\n", + " 9.644194\n", + " 9.829677\n", + " 10.294138\n", + " 11.251935\n", + " 16.410968\n", + " 15.720000\n", " \n", " \n", - " 1962-11-01\n", - " 16.88\n", - " 13.25\n", - " 16.00\n", - " 8.96\n", - " 13.46\n", - " 11.46\n", - " 10.46\n", - " 10.17\n", - " 10.37\n", - " 13.21\n", - " 14.83\n", - " 15.16\n", - " 1962-11-01\n", - " 11\n", - " 1962\n", - " 1\n", - " \n", - " \n", - " 1962-12-01\n", - " 18.38\n", - " 15.41\n", - " 11.75\n", - " 6.79\n", - " 12.21\n", - " 8.04\n", - " 8.42\n", - " 10.83\n", - " 5.66\n", - " 9.08\n", - " 11.50\n", - " 11.50\n", - " 1962-12-01\n", - " 12\n", - " 1962\n", - " 1\n", + " 1961-04\n", + " 10.722667\n", + " 9.427667\n", + " 9.998000\n", + " 5.830667\n", + " 8.435000\n", + " 6.495000\n", + " 6.925333\n", + " 7.094667\n", + " 7.342333\n", + " 7.237000\n", + " 11.147333\n", + " 10.278333\n", " \n", " \n", - " 1963-01-01\n", - " 15.59\n", - " 13.62\n", - " 19.79\n", - " 8.38\n", - " 12.25\n", - " 10.00\n", - " 23.45\n", - " 15.71\n", - " 13.59\n", - " 14.37\n", - " 17.58\n", - " 34.13\n", - " 1963-01-01\n", - " 1\n", - " 1963\n", - " 1\n", + " 1961-05\n", + " 9.860968\n", + " 8.850000\n", + " 10.818065\n", + " 5.905333\n", + " 9.490323\n", + " 6.574839\n", + " 7.604000\n", + " 8.177097\n", + " 8.039355\n", + " 8.499355\n", + " 11.900323\n", + " 12.011613\n", " \n", " \n", - " 1963-02-01\n", - " 15.41\n", - " 7.62\n", - " 24.67\n", - " 11.42\n", - " 9.21\n", - " 8.17\n", - " 14.04\n", - " 7.54\n", - " 7.54\n", - " 10.08\n", - " 10.17\n", - " 17.67\n", - " 1963-02-01\n", - " 2\n", - " 1963\n", - " 1\n", - " \n", - " \n", - " 1963-03-01\n", - " 16.75\n", - " 19.67\n", - " 17.67\n", - " 8.87\n", - " 19.08\n", - " 15.37\n", - " 16.21\n", - " 14.29\n", - " 11.29\n", - " 9.21\n", - " 19.92\n", - " 19.79\n", - " 1963-03-01\n", - " 3\n", - " 1963\n", - " 1\n", - " \n", - " \n", - " 1963-04-01\n", - " 10.54\n", - " 9.59\n", - " 12.46\n", - " 7.33\n", - " 9.46\n", - " 9.59\n", - " 11.79\n", - " 11.87\n", - " 9.79\n", - " 10.71\n", - " 13.37\n", - " 18.21\n", - " 1963-04-01\n", - " 4\n", - " 1963\n", - " 1\n", - " \n", - " \n", - " 1963-05-01\n", - " 18.79\n", - " 14.17\n", - " 13.59\n", - " 11.63\n", - " 14.17\n", - " 11.96\n", - " 14.46\n", - " 12.46\n", - " 12.87\n", - " 13.96\n", - " 15.29\n", - " 21.62\n", - " 1963-05-01\n", - " 5\n", - " 1963\n", - " 1\n", - " \n", - " \n", - " 1963-06-01\n", - " 13.37\n", - " 6.87\n", - " 12.00\n", - " 8.50\n", - " 10.04\n", - " 9.42\n", - " 10.92\n", - " 12.96\n", - " 11.79\n", - " 11.04\n", - " 10.92\n", - " 13.67\n", - " 1963-06-01\n", - " 6\n", - " 1963\n", - " 1\n", + " 1961-06\n", + " 9.904138\n", + " 8.520333\n", + " 8.867000\n", + " 6.083000\n", + " 10.824000\n", + " 6.707333\n", + " 9.095667\n", + " 8.849333\n", + " 9.086667\n", + " 9.940333\n", + " 13.995000\n", + " 14.553793\n", + " \n", + " \n", + " 1961-07\n", + " 10.614194\n", + " 8.221613\n", + " 9.110323\n", + " 6.340968\n", + " 10.532581\n", + " 6.198387\n", + " 8.353333\n", + " 8.284194\n", + " 8.077097\n", + " 8.891613\n", + " 11.092581\n", + " 12.312903\n", + " \n", + " \n", + " 1961-08\n", + " 12.035000\n", + " 10.133871\n", + " 10.335806\n", + " 6.845806\n", + " 12.715161\n", + " 8.441935\n", + " 10.093871\n", + " 10.460968\n", + " 9.111613\n", + " 10.544667\n", + " 14.410000\n", + " 14.345333\n", + " \n", + " \n", + " 1961-09\n", + " 12.531000\n", + " 9.656897\n", + " 10.776897\n", + " 7.155517\n", + " 11.003333\n", + " 7.234000\n", + " 8.206000\n", + " 8.936552\n", + " 7.728333\n", + " 9.931333\n", + " 13.718333\n", + " 12.921667\n", + " \n", + " \n", + " 1961-10\n", + " 14.289667\n", + " 10.915806\n", + " 12.236452\n", + " 8.154839\n", + " 11.865484\n", + " 8.333871\n", + " 11.194194\n", + " 9.271935\n", + " 8.942667\n", + " 11.455806\n", + " 14.229355\n", + " 16.793226\n", + " \n", + " \n", + " 1961-11\n", + " 10.896333\n", + " 8.592667\n", + " 11.850333\n", + " 6.045667\n", + " 9.123667\n", + " 6.250667\n", + " 10.869655\n", + " 6.313667\n", + " 6.575000\n", + " 8.383667\n", + " 10.776667\n", + " 12.146000\n", + " \n", + " \n", + " 1961-12\n", + " 14.973548\n", + " 11.903871\n", + " 13.980323\n", + " 7.073871\n", + " 11.323548\n", + " 8.302258\n", + " 11.753548\n", + " 8.163226\n", + " 7.965806\n", + " 9.246774\n", + " 12.239355\n", + " 13.098710\n", + " \n", + " \n", + " 1962-01\n", + " 14.783871\n", + " 13.160323\n", + " 12.591935\n", + " 7.538065\n", + " 11.779677\n", + " 8.720000\n", + " 14.211935\n", + " 9.600000\n", + " 9.670000\n", + " 11.498710\n", + " 16.369355\n", + " 15.661613\n", + " \n", + " \n", + " 1962-02\n", + " 15.844643\n", + " 12.041429\n", + " 15.178929\n", + " 9.262963\n", + " 13.821429\n", + " 9.726786\n", + " 16.916429\n", + " 11.285357\n", + " 12.021071\n", + " 12.126429\n", + " 16.705357\n", + " 18.426786\n", + " \n", + " \n", + " 1962-03\n", + " 11.634333\n", + " 8.602258\n", + " 12.110645\n", + " 6.403226\n", + " 10.352258\n", + " 6.732258\n", + " 10.223226\n", + " 7.641935\n", + " 7.092258\n", + " 8.052581\n", + " 9.690000\n", + " 11.509000\n", + " \n", + " \n", + " 1962-04\n", + " 12.160667\n", + " 9.676667\n", + " 12.088333\n", + " 7.163000\n", + " 10.544000\n", + " 7.558000\n", + " 11.480000\n", + " 8.722000\n", + " 8.703667\n", + " 9.311667\n", + " 12.234333\n", + " 11.780667\n", + " \n", + " \n", + " 1962-05\n", + " 12.745806\n", + " 10.865484\n", + " 11.874839\n", + " 7.471935\n", + " 11.285806\n", + " 7.209032\n", + " 10.105806\n", + " 9.084516\n", + " 7.868065\n", + " 9.293226\n", + " 12.130000\n", + " 12.922581\n", + " \n", + " \n", + " 1962-06\n", + " 10.305667\n", + " 9.677000\n", + " 9.996333\n", + " 6.846667\n", + " 10.711333\n", + " 7.441333\n", + " 10.548667\n", + " 10.306667\n", + " 9.196000\n", + " 10.520333\n", + " 13.757000\n", + " 15.218333\n", + " \n", + " \n", + " 1962-07\n", + " 9.981935\n", + " 8.370645\n", + " 9.753548\n", + " 6.093226\n", + " 9.112903\n", + " 5.877097\n", + " 7.781613\n", + " 8.123226\n", + " 6.829677\n", + " 8.613226\n", + " 10.783871\n", + " 11.326129\n", + " \n", + " \n", + " 1962-08\n", + " 10.964194\n", + " 9.694194\n", + " 10.184516\n", + " 6.701290\n", + " 10.465161\n", + " 7.009032\n", + " 11.136774\n", + " 9.097419\n", + " 8.645484\n", + " 9.511613\n", + " 13.119032\n", + " 15.420968\n", + " \n", + " \n", + " 1962-09\n", + " 11.176333\n", + " 9.507000\n", + " 11.640000\n", + " 6.164333\n", + " 9.722333\n", + " 6.214000\n", + " 8.488000\n", + " 7.020333\n", + " 6.372667\n", + " 8.286000\n", + " 11.483667\n", + " 12.313333\n", + " \n", + " \n", + " 1962-10\n", + " 9.699355\n", + " 8.063548\n", + " 9.357097\n", + " 4.818065\n", + " 8.432258\n", + " 5.730000\n", + " 8.448065\n", + " 7.626774\n", + " 6.630645\n", + " 9.091290\n", + " 13.286774\n", + " 14.090323\n", + " \n", + " \n", + " 1962-11\n", + " 11.071333\n", + " 7.984000\n", + " 12.035667\n", + " 5.740000\n", + " 8.135667\n", + " 6.338333\n", + " 9.615333\n", + " 5.943000\n", + " 6.362333\n", + " 8.084333\n", + " 9.786667\n", + " 13.298333\n", + " \n", + " \n", + " 1962-12\n", + " 16.785484\n", + " 13.753548\n", + " 14.276452\n", + " 9.557419\n", + " 13.724839\n", + " 10.321613\n", + " 13.735806\n", + " 11.212258\n", + " 10.683548\n", + " 11.881935\n", + " 16.043548\n", + " 20.074516\n", + " \n", + " \n", + " 1963-01\n", + " 14.868387\n", + " 11.112903\n", + " 15.121613\n", + " 6.635806\n", + " 11.080645\n", + " 7.835484\n", + " 12.797419\n", + " 9.844839\n", + " 7.841613\n", + " 9.390000\n", + " 11.428710\n", + " 18.822258\n", + " \n", + " \n", + " 1963-02\n", + " 14.418929\n", + " 11.876429\n", + " 15.697500\n", + " 8.611786\n", + " 12.887857\n", + " 9.600357\n", + " 12.729286\n", + " 10.823214\n", + " 8.981786\n", + " 10.355714\n", + " 13.266429\n", + " 17.120714\n", + " \n", + " \n", + " 1963-03\n", + " 14.853871\n", + " 12.271290\n", + " 14.295806\n", + " 9.268387\n", + " 13.112903\n", + " 10.088065\n", + " 12.168387\n", + " 11.340968\n", + " 9.690968\n", + " 11.515484\n", + " 13.982903\n", + " 14.132581\n", + " \n", + " \n", + " 1963-04\n", + " 11.616000\n", + " 10.138000\n", + " 13.233667\n", + " 7.990333\n", + " 11.515333\n", + " 9.727000\n", + " 11.979000\n", + " 11.353000\n", + " 10.341667\n", + " 11.900333\n", + " 13.875667\n", + " 16.333667\n", + " \n", + " \n", + " 1963-05\n", + " 12.879677\n", + " 11.010645\n", + " 12.881290\n", + " 8.411613\n", + " 12.981613\n", + " 9.739677\n", + " 12.280968\n", + " 10.964194\n", + " 10.745161\n", + " 11.394839\n", + " 14.777097\n", + " 14.975161\n", + " \n", + " \n", + " 1963-06\n", + " 10.623333\n", + " 8.434667\n", + " 11.685000\n", + " 6.420333\n", + " 10.142667\n", + " 7.219333\n", + " 9.267333\n", + " 9.589333\n", + " 8.583667\n", + " 9.585333\n", + " 12.098000\n", + " 11.358667\n", " \n", " \n", " ...\n", @@ -2007,725 +1809,601 @@ " ...\n", " ...\n", " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " \n", - " \n", - " 1976-07-01\n", - " 8.50\n", - " 1.75\n", - " 6.58\n", - " 2.13\n", - " 2.75\n", - " 2.21\n", - " 5.37\n", - " 2.04\n", - " 5.88\n", - " 4.50\n", - " 4.96\n", - " 10.63\n", - " 1976-07-01\n", - " 7\n", - " 1976\n", - " 1\n", - " \n", - " \n", - " 1976-08-01\n", - " 13.00\n", - " 8.38\n", - " 8.63\n", - " 5.83\n", - " 12.92\n", - " 8.25\n", - " 13.00\n", - " 9.42\n", - " 10.58\n", - " 11.34\n", - " 14.21\n", - " 20.25\n", - " 1976-08-01\n", - " 8\n", - " 1976\n", - " 1\n", - " \n", - " \n", - " 1976-09-01\n", - " 11.87\n", - " 11.00\n", - " 7.38\n", - " 6.87\n", - " 7.75\n", - " 8.33\n", - " 10.34\n", - " 6.46\n", - " 10.17\n", - " 9.29\n", - " 12.75\n", - " 19.55\n", - " 1976-09-01\n", - " 9\n", - " 1976\n", - " 1\n", - " \n", - " \n", - " 1976-10-01\n", - " 10.96\n", - " 6.71\n", - " 10.41\n", - " 4.63\n", - " 7.58\n", - " 5.04\n", - " 5.04\n", - " 5.54\n", - " 6.50\n", - " 3.92\n", - " 6.79\n", - " 5.00\n", - " 1976-10-01\n", - " 10\n", - " 1976\n", - " 1\n", - " \n", - " \n", - " 1976-11-01\n", - " 13.96\n", - " 15.67\n", - " 10.29\n", - " 6.46\n", - " 12.79\n", - " 9.08\n", - " 10.00\n", - " 9.67\n", - " 10.21\n", - " 11.63\n", - " 23.09\n", - " 21.96\n", - " 1976-11-01\n", - " 11\n", - " 1976\n", - " 1\n", - " \n", - " \n", - " 1976-12-01\n", - " 13.46\n", - " 16.42\n", - " 9.21\n", - " 4.54\n", - " 10.75\n", - " 8.67\n", - " 10.88\n", - " 4.83\n", - " 8.79\n", - " 5.91\n", - " 8.83\n", - " 13.67\n", - " 1976-12-01\n", - " 12\n", - " 1976\n", - " 1\n", - " \n", - " \n", - " 1977-01-01\n", - " 20.04\n", - " 11.92\n", - " 20.25\n", - " 9.13\n", - " 9.29\n", - " 8.04\n", - " 10.75\n", - " 5.88\n", - " 9.00\n", - " 9.00\n", - " 14.88\n", - " 25.70\n", - " 1977-01-01\n", - " 1\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1977-02-01\n", - " 11.83\n", - " 9.71\n", - " 11.00\n", - " 4.25\n", - " 8.58\n", - " 8.71\n", - " 6.17\n", - " 5.66\n", - " 8.29\n", - " 7.58\n", - " 11.71\n", - " 16.50\n", - " 1977-02-01\n", - " 2\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1977-03-01\n", - " 8.63\n", - " 14.83\n", - " 10.29\n", - " 3.75\n", - " 6.63\n", - " 8.79\n", - " 5.00\n", - " 8.12\n", - " 7.87\n", - " 6.42\n", - " 13.54\n", - " 13.67\n", - " 1977-03-01\n", - " 3\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1977-04-01\n", - " 21.67\n", - " 16.00\n", - " 17.33\n", - " 13.59\n", - " 20.83\n", - " 15.96\n", - " 25.62\n", - " 17.62\n", - " 19.41\n", - " 20.67\n", - " 24.37\n", - " 30.09\n", - " 1977-04-01\n", - " 4\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1977-05-01\n", - " 6.42\n", - " 7.12\n", - " 8.67\n", - " 3.58\n", - " 4.58\n", - " 4.00\n", - " 6.75\n", - " 6.13\n", - " 3.33\n", - " 4.50\n", - " 19.21\n", - " 12.38\n", - " 1977-05-01\n", - " 5\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1977-06-01\n", - " 7.08\n", - " 5.25\n", - " 9.71\n", - " 2.83\n", - " 2.21\n", - " 3.50\n", - " 5.29\n", - " 1.42\n", - " 2.00\n", - " 0.92\n", - " 5.21\n", - " 5.63\n", - " 1977-06-01\n", - " 6\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1977-07-01\n", - " 15.41\n", - " 16.29\n", - " 17.08\n", - " 6.25\n", - " 11.83\n", - " 11.83\n", - " 12.29\n", - " 10.58\n", - " 10.41\n", - " 7.21\n", - " 17.37\n", - " 7.83\n", - " 1977-07-01\n", - " 7\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1977-08-01\n", - " 4.33\n", - " 2.96\n", - " 4.42\n", - " 2.33\n", - " 0.96\n", - " 1.08\n", - " 4.96\n", - " 1.87\n", - " 2.33\n", - " 2.04\n", - " 10.50\n", - " 9.83\n", - " 1977-08-01\n", - " 8\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1977-09-01\n", - " 17.37\n", - " 16.33\n", - " 16.83\n", - " 8.58\n", - " 14.46\n", - " 11.83\n", - " 15.09\n", - " 13.92\n", - " 13.29\n", - " 13.88\n", - " 23.29\n", - " 25.17\n", - " 1977-09-01\n", - " 9\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1977-10-01\n", - " 16.75\n", - " 15.34\n", - " 12.25\n", - " 9.42\n", - " 16.38\n", - " 11.38\n", - " 18.50\n", - " 13.92\n", - " 14.09\n", - " 14.46\n", - " 22.34\n", - " 29.67\n", - " 1977-10-01\n", - " 10\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1977-11-01\n", - " 16.71\n", - " 11.54\n", - " 12.17\n", - " 4.17\n", - " 8.54\n", - " 7.17\n", - " 11.12\n", - " 6.46\n", - " 8.25\n", - " 6.21\n", - " 11.04\n", - " 15.63\n", - " 1977-11-01\n", - " 11\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1977-12-01\n", - " 13.37\n", - " 10.92\n", - " 12.42\n", - " 2.37\n", - " 5.79\n", - " 6.13\n", - " 8.96\n", - " 7.38\n", - " 6.29\n", - " 5.71\n", - " 8.54\n", - " 12.42\n", - " 1977-12-01\n", - " 12\n", - " 1977\n", - " 1\n", - " \n", - " \n", - " 1978-01-01\n", - " 8.33\n", - " 7.12\n", - " 7.71\n", - " 3.54\n", - " 8.50\n", - " 7.50\n", - " 14.71\n", - " 10.00\n", - " 11.83\n", - " 10.00\n", - " 15.09\n", - " 20.46\n", - " 1978-01-01\n", - " 1\n", - " 1978\n", - " 1\n", - " \n", - " \n", - " 1978-02-01\n", - " 27.25\n", - " 24.21\n", - " 18.16\n", - " 17.46\n", - " 27.54\n", - " 18.05\n", - " 20.96\n", - " 25.04\n", - " 20.04\n", - " 17.50\n", - " 27.71\n", - " 21.12\n", - " 1978-02-01\n", - " 2\n", - " 1978\n", - " 1\n", - " \n", - " \n", - " 1978-03-01\n", - " 15.04\n", - " 6.21\n", - " 16.04\n", - " 7.87\n", - " 6.42\n", - " 6.67\n", - " 12.29\n", - " 8.00\n", - " 10.58\n", - " 9.33\n", - " 5.41\n", - " 17.00\n", - " 1978-03-01\n", - " 3\n", - " 1978\n", - " 1\n", - " \n", - " \n", - " 1978-04-01\n", - " 3.42\n", - " 7.58\n", - " 2.71\n", - " 1.38\n", - " 3.46\n", - " 2.08\n", - " 2.67\n", - " 4.75\n", - " 4.83\n", - " 1.67\n", - " 7.33\n", - " 13.67\n", - " 1978-04-01\n", - " 4\n", - " 1978\n", - " 1\n", - " \n", - " \n", - " 1978-05-01\n", - " 10.54\n", - " 12.21\n", - " 9.08\n", - " 5.29\n", - " 11.00\n", - " 10.08\n", - " 11.17\n", - " 13.75\n", - " 11.87\n", - " 11.79\n", - " 12.87\n", - " 27.16\n", - " 1978-05-01\n", - " 5\n", - " 1978\n", - " 1\n", - " \n", - " \n", - " 1978-06-01\n", - " 10.37\n", - " 11.42\n", - " 6.46\n", - " 6.04\n", - " 11.25\n", - " 7.50\n", - " 6.46\n", - " 5.96\n", - " 7.79\n", - " 5.46\n", - " 5.50\n", - " 10.41\n", - " 1978-06-01\n", - " 6\n", - " 1978\n", - " 1\n", - " \n", - " \n", - " 1978-07-01\n", - " 12.46\n", - " 10.63\n", - " 11.17\n", - " 6.75\n", - " 12.92\n", - " 9.04\n", - " 12.42\n", - " 9.62\n", - " 12.08\n", - " 8.04\n", - " 14.04\n", - " 16.17\n", - " 1978-07-01\n", - " 7\n", - " 1978\n", - " 1\n", - " \n", - " \n", - " 1978-08-01\n", - " 19.33\n", - " 15.09\n", - " 20.17\n", - " 8.83\n", - " 12.62\n", - " 10.41\n", - " 9.33\n", - " 12.33\n", - " 9.50\n", - " 9.92\n", - " 15.75\n", - " 18.00\n", - " 1978-08-01\n", - " 8\n", - " 1978\n", - " 1\n", - " \n", - " \n", - " 1978-09-01\n", - " 8.42\n", - " 6.13\n", - " 9.87\n", - " 5.25\n", - " 3.21\n", - " 5.71\n", - " 7.25\n", - " 3.50\n", - " 7.33\n", - " 6.50\n", - " 7.62\n", - " 15.96\n", - " 1978-09-01\n", - " 9\n", - " 1978\n", - " 1\n", - " \n", - " \n", - " 1978-10-01\n", - " 9.50\n", - " 6.83\n", - " 10.50\n", - " 3.88\n", - " 6.13\n", - " 4.58\n", - " 4.21\n", - " 6.50\n", - " 6.38\n", - " 6.54\n", - " 10.63\n", - " 14.09\n", - " 1978-10-01\n", - " 10\n", - " 1978\n", - " 1\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", " \n", " \n", - " 1978-11-01\n", - " 13.59\n", - " 16.75\n", - " 11.25\n", - " 7.08\n", - " 11.04\n", - " 8.33\n", - " 8.17\n", - " 11.29\n", - " 10.75\n", - " 11.25\n", - " 23.13\n", - " 25.00\n", - " 1978-11-01\n", - " 11\n", - " 1978\n", - " 1\n", - " \n", - " \n", - " 1978-12-01\n", - " 21.29\n", - " 16.29\n", - " 24.04\n", - " 12.79\n", - " 18.21\n", - " 19.29\n", - " 21.54\n", - " 17.21\n", - " 16.71\n", - " 17.83\n", - " 17.75\n", - " 25.70\n", - " 1978-12-01\n", - " 12\n", - " 1978\n", - " 1\n", + " 1976-07\n", + " 9.687742\n", + " 7.980968\n", + " 8.267742\n", + " 4.631613\n", + " 7.576774\n", + " 4.927419\n", + " 6.994839\n", + " 5.135806\n", + " 7.941290\n", + " 6.491290\n", + " 10.264194\n", + " 11.912258\n", + " \n", + " \n", + " 1976-08\n", + " 7.640645\n", + " 5.366129\n", + " 9.000645\n", + " 3.142258\n", + " 4.695484\n", + " 3.847742\n", + " 5.437097\n", + " 3.362581\n", + " 5.946452\n", + " 4.496452\n", + " 7.079677\n", + " 9.438387\n", + " \n", + " \n", + " 1976-09\n", + " 11.703667\n", + " 10.515333\n", + " 10.466333\n", + " 5.313333\n", + " 8.761333\n", + " 7.062333\n", + " 8.617667\n", + " 6.415333\n", + " 8.953333\n", + " 7.263333\n", + " 11.587000\n", + " 17.634000\n", + " \n", + " \n", + " 1976-10\n", + " 12.427097\n", + " 9.572258\n", + " 10.640000\n", + " 4.885484\n", + " 9.393548\n", + " 6.906452\n", + " 6.380323\n", + " 6.933226\n", + " 7.552258\n", + " 7.449032\n", + " 11.837742\n", + " 15.078065\n", + " \n", + " \n", + " 1976-11\n", + " 10.962667\n", + " 9.443667\n", + " 9.202000\n", + " 3.696000\n", + " 7.459333\n", + " 7.026333\n", + " 9.058333\n", + " 5.791000\n", + " 6.577000\n", + " 7.512333\n", + " 12.568333\n", + " 15.685333\n", + " \n", + " \n", + " 1976-12\n", + " 11.962258\n", + " 10.086774\n", + " 10.474516\n", + " 3.383871\n", + " 7.645484\n", + " 6.148387\n", + " 8.034516\n", + " 4.500000\n", + " 5.952258\n", + " 6.147742\n", + " 7.814839\n", + " 14.346774\n", + " \n", + " \n", + " 1977-01\n", + " 13.404516\n", + " 10.377742\n", + " 12.764839\n", + " 5.884516\n", + " 9.159677\n", + " 8.005161\n", + " 10.107419\n", + " 7.211613\n", + " 8.280000\n", + " 9.328387\n", + " 12.131935\n", + " 18.830000\n", + " \n", + " \n", + " 1977-02\n", + " 12.336786\n", + " 11.898929\n", + " 12.016786\n", + " 5.317500\n", + " 10.134643\n", + " 9.423929\n", + " 10.949643\n", + " 7.965357\n", + " 9.320000\n", + " 8.711429\n", + " 11.435357\n", + " 17.561429\n", + " \n", + " \n", + " 1977-03\n", + " 16.750000\n", + " 14.499677\n", + " 16.118387\n", + " 8.414516\n", + " 13.293871\n", + " 11.562258\n", + " 14.283226\n", + " 11.361613\n", + " 12.102581\n", + " 11.906452\n", + " 15.863226\n", + " 19.133548\n", + " \n", + " \n", + " 1977-04\n", + " 14.955333\n", + " 12.293000\n", + " 12.689667\n", + " 7.422333\n", + " 11.740000\n", + " 10.137000\n", + " 13.887667\n", + " 9.574000\n", + " 10.342333\n", + " 11.419667\n", + " 15.593667\n", + " 18.274667\n", + " \n", + " \n", + " 1977-05\n", + " 9.441290\n", + " 7.173871\n", + " 12.455806\n", + " 4.507742\n", + " 6.198387\n", + " 6.689677\n", + " 9.226452\n", + " 5.638387\n", + " 6.699355\n", + " 6.045484\n", + " 10.213548\n", + " 11.936129\n", + " \n", + " \n", + " 1977-06\n", + " 11.040000\n", + " 8.353000\n", + " 12.228000\n", + " 4.864000\n", + " 8.790333\n", + " 7.209667\n", + " 8.799667\n", + " 5.931000\n", + " 7.065333\n", + " 6.583333\n", + " 11.321333\n", + " 11.175333\n", + " \n", + " \n", + " 1977-07\n", + " 10.881935\n", + " 8.663548\n", + " 10.816452\n", + " 5.419677\n", + " 9.014839\n", + " 7.600000\n", + " 9.961935\n", + " 6.526129\n", + " 7.980968\n", + " 7.620000\n", + " 12.924194\n", + " 12.186774\n", + " \n", + " \n", + " 1977-08\n", + " 9.233548\n", + " 7.727742\n", + " 10.679032\n", + " 4.453871\n", + " 6.620645\n", + " 5.961290\n", + " 8.943548\n", + " 4.543226\n", + " 6.384839\n", + " 5.694839\n", + " 9.825161\n", + " 11.659355\n", + " \n", + " \n", + " 1977-09\n", + " 12.472333\n", + " 10.742667\n", + " 11.849333\n", + " 5.638667\n", + " 10.077333\n", + " 8.242667\n", + " 11.939333\n", + " 7.923000\n", + " 8.828000\n", + " 8.506333\n", + " 14.051000\n", + " 17.030333\n", + " \n", + " \n", + " 1977-10\n", + " 15.004516\n", + " 13.960000\n", + " 12.819677\n", + " 6.754194\n", + " 11.779032\n", + " 9.671613\n", + " 12.924839\n", + " 11.875161\n", + " 11.481290\n", + " 10.340323\n", + " 17.640968\n", + " 19.842903\n", + " \n", + " \n", + " 1977-11\n", + " 16.946667\n", + " 15.444667\n", + " 13.561333\n", + " 7.584000\n", + " 12.088667\n", + " 9.161333\n", + " 14.051000\n", + " 11.286000\n", + " 10.318667\n", + " 10.327000\n", + " 17.215333\n", + " 22.333000\n", + " \n", + " \n", + " 1977-12\n", + " 14.751935\n", + " 12.744839\n", + " 13.469677\n", + " 6.592258\n", + " 11.247742\n", + " 9.466774\n", + " 13.231613\n", + " 10.703871\n", + " 10.401613\n", + " 9.415484\n", + " 13.237419\n", + " 19.299677\n", + " \n", + " \n", + " 1978-01\n", + " 14.291935\n", + " 11.872258\n", + " 12.014194\n", + " 6.463226\n", + " 11.402903\n", + " 7.517097\n", + " 12.207097\n", + " 10.206452\n", + " 9.549032\n", + " 9.247419\n", + " 15.101613\n", + " 20.715806\n", + " \n", + " \n", + " 1978-02\n", + " 14.143571\n", + " 12.153214\n", + " 13.803214\n", + " 6.828929\n", + " 11.196786\n", + " 7.858929\n", + " 11.903214\n", + " 11.068929\n", + " 10.052143\n", + " 8.093929\n", + " 10.353929\n", + " 17.298571\n", + " \n", + " \n", + " 1978-03\n", + " 14.717097\n", + " 14.601935\n", + " 13.334194\n", + " 8.231290\n", + " 12.783226\n", + " 9.488710\n", + " 12.129355\n", + " 11.665161\n", + " 11.656452\n", + " 9.657097\n", + " 14.234194\n", + " 18.611290\n", + " \n", + " \n", + " 1978-04\n", + " 11.805000\n", + " 11.255667\n", + " 12.516333\n", + " 5.920333\n", + " 10.218000\n", + " 7.301667\n", + " 8.586333\n", + " 8.306667\n", + " 8.537000\n", + " 6.999000\n", + " 11.190667\n", + " 14.152000\n", + " \n", + " \n", + " 1978-05\n", + " 8.270645\n", + " 7.226774\n", + " 6.901613\n", + " 3.740645\n", + " 6.973871\n", + " 4.449677\n", + " 5.420968\n", + " 6.130645\n", + " 5.742581\n", + " 5.926452\n", + " 9.263548\n", + " 10.756452\n", + " \n", + " \n", + " 1978-06\n", + " 11.386667\n", + " 9.474333\n", + " 10.253333\n", + " 6.053000\n", + " 10.395333\n", + " 7.490333\n", + " 7.928000\n", + " 7.802000\n", + " 8.220333\n", + " 7.550000\n", + " 11.501000\n", + " 15.078667\n", + " \n", + " \n", + " 1978-07\n", + " 12.820000\n", + " 9.750968\n", + " 9.910323\n", + " 6.483871\n", + " 10.055161\n", + " 7.820645\n", + " 7.831935\n", + " 8.459355\n", + " 8.523871\n", + " 7.732903\n", + " 12.648710\n", + " 14.077419\n", + " \n", + " \n", + " 1978-08\n", + " 9.645161\n", + " 8.259355\n", + " 9.032258\n", + " 4.502903\n", + " 7.368065\n", + " 5.935161\n", + " 5.650323\n", + " 5.417742\n", + " 7.241290\n", + " 5.536774\n", + " 10.466774\n", + " 12.054194\n", + " \n", + " \n", + " 1978-09\n", + " 10.913667\n", + " 10.895000\n", + " 10.635000\n", + " 5.725000\n", + " 10.372000\n", + " 9.278333\n", + " 10.790333\n", + " 9.583000\n", + " 10.069333\n", + " 8.939000\n", + " 15.680333\n", + " 19.391333\n", + " \n", + " \n", + " 1978-10\n", + " 9.897742\n", + " 8.670968\n", + " 9.295806\n", + " 4.721290\n", + " 8.525161\n", + " 6.774194\n", + " 8.115484\n", + " 7.337742\n", + " 8.297742\n", + " 8.243871\n", + " 13.776774\n", + " 17.150000\n", + " \n", + " \n", + " 1978-11\n", + " 16.151667\n", + " 14.802667\n", + " 13.508000\n", + " 7.317333\n", + " 11.475000\n", + " 8.743000\n", + " 11.492333\n", + " 9.657333\n", + " 10.701333\n", + " 10.676000\n", + " 17.404667\n", + " 20.723000\n", + " \n", + " \n", + " 1978-12\n", + " 16.175484\n", + " 13.748065\n", + " 15.635161\n", + " 7.094839\n", + " 11.398710\n", + " 9.241613\n", + " 12.077419\n", + " 10.194839\n", + " 10.616774\n", + " 11.028710\n", + " 13.859677\n", + " 21.371613\n", " \n", " \n", "\n", - "

216 rows × 16 columns

\n", + "

216 rows × 12 columns

\n", "" ], "text/plain": [ - " RPT VAL ROS KIL SHA BIR DUB CLA MUL \\\n", + " RPT VAL ROS KIL SHA BIR \\\n", "Yr_Mo_Dy \n", - "1961-01-01 15.04 14.96 13.17 9.29 NaN 9.87 13.67 10.25 10.83 \n", - "1961-02-01 14.25 15.12 9.04 5.88 12.08 7.17 10.17 3.63 6.50 \n", - "1961-03-01 12.67 13.13 11.79 6.42 9.79 8.54 10.25 13.29 NaN \n", - "1961-04-01 8.38 6.34 8.33 6.75 9.33 9.54 11.67 8.21 11.21 \n", - "1961-05-01 15.87 13.88 15.37 9.79 13.46 10.17 9.96 14.04 9.75 \n", - "1961-06-01 15.92 9.59 12.04 8.79 11.54 6.04 9.75 8.29 9.33 \n", - "1961-07-01 7.21 6.83 7.71 4.42 8.46 4.79 6.71 6.00 5.79 \n", - "1961-08-01 9.59 5.09 5.54 4.63 8.29 5.25 4.21 5.25 5.37 \n", - "1961-09-01 5.58 1.13 4.96 3.04 4.25 2.25 4.63 2.71 3.67 \n", - "1961-10-01 14.25 12.87 7.87 8.00 13.00 7.75 5.83 9.00 7.08 \n", - "1961-11-01 13.21 13.13 14.33 8.54 12.17 10.21 13.08 12.17 10.92 \n", - "1961-12-01 9.67 7.75 8.00 3.96 6.00 2.75 7.25 2.50 5.58 \n", - "1962-01-01 9.29 3.42 11.54 3.50 2.21 1.96 10.41 2.79 3.54 \n", - "1962-02-01 19.12 13.96 12.21 10.58 15.71 10.63 15.71 11.08 13.17 \n", - "1962-03-01 8.21 4.83 9.00 4.83 6.00 2.21 7.96 1.87 4.08 \n", - "1962-04-01 14.33 12.25 11.87 10.37 14.92 11.00 19.79 11.67 14.09 \n", - "1962-05-01 9.62 9.54 3.58 3.33 8.75 3.75 2.25 2.58 1.67 \n", - "1962-06-01 5.88 6.29 8.67 5.21 5.00 4.25 5.91 5.41 4.79 \n", - "1962-07-01 8.67 4.17 6.92 6.71 8.17 5.66 11.17 9.38 8.75 \n", - "1962-08-01 4.58 5.37 6.04 2.29 7.87 3.71 4.46 2.58 4.00 \n", - "1962-09-01 10.00 12.08 10.96 9.25 9.29 7.62 7.41 8.75 7.67 \n", - "1962-10-01 14.58 7.83 19.21 10.08 11.54 8.38 13.29 10.63 8.21 \n", - "1962-11-01 16.88 13.25 16.00 8.96 13.46 11.46 10.46 10.17 10.37 \n", - "1962-12-01 18.38 15.41 11.75 6.79 12.21 8.04 8.42 10.83 5.66 \n", - "1963-01-01 15.59 13.62 19.79 8.38 12.25 10.00 23.45 15.71 13.59 \n", - "1963-02-01 15.41 7.62 24.67 11.42 9.21 8.17 14.04 7.54 7.54 \n", - "1963-03-01 16.75 19.67 17.67 8.87 19.08 15.37 16.21 14.29 11.29 \n", - "1963-04-01 10.54 9.59 12.46 7.33 9.46 9.59 11.79 11.87 9.79 \n", - "1963-05-01 18.79 14.17 13.59 11.63 14.17 11.96 14.46 12.46 12.87 \n", - "1963-06-01 13.37 6.87 12.00 8.50 10.04 9.42 10.92 12.96 11.79 \n", - "... ... ... ... ... ... ... ... ... ... \n", - "1976-07-01 8.50 1.75 6.58 2.13 2.75 2.21 5.37 2.04 5.88 \n", - "1976-08-01 13.00 8.38 8.63 5.83 12.92 8.25 13.00 9.42 10.58 \n", - "1976-09-01 11.87 11.00 7.38 6.87 7.75 8.33 10.34 6.46 10.17 \n", - "1976-10-01 10.96 6.71 10.41 4.63 7.58 5.04 5.04 5.54 6.50 \n", - "1976-11-01 13.96 15.67 10.29 6.46 12.79 9.08 10.00 9.67 10.21 \n", - "1976-12-01 13.46 16.42 9.21 4.54 10.75 8.67 10.88 4.83 8.79 \n", - "1977-01-01 20.04 11.92 20.25 9.13 9.29 8.04 10.75 5.88 9.00 \n", - "1977-02-01 11.83 9.71 11.00 4.25 8.58 8.71 6.17 5.66 8.29 \n", - "1977-03-01 8.63 14.83 10.29 3.75 6.63 8.79 5.00 8.12 7.87 \n", - "1977-04-01 21.67 16.00 17.33 13.59 20.83 15.96 25.62 17.62 19.41 \n", - "1977-05-01 6.42 7.12 8.67 3.58 4.58 4.00 6.75 6.13 3.33 \n", - "1977-06-01 7.08 5.25 9.71 2.83 2.21 3.50 5.29 1.42 2.00 \n", - "1977-07-01 15.41 16.29 17.08 6.25 11.83 11.83 12.29 10.58 10.41 \n", - "1977-08-01 4.33 2.96 4.42 2.33 0.96 1.08 4.96 1.87 2.33 \n", - "1977-09-01 17.37 16.33 16.83 8.58 14.46 11.83 15.09 13.92 13.29 \n", - "1977-10-01 16.75 15.34 12.25 9.42 16.38 11.38 18.50 13.92 14.09 \n", - "1977-11-01 16.71 11.54 12.17 4.17 8.54 7.17 11.12 6.46 8.25 \n", - "1977-12-01 13.37 10.92 12.42 2.37 5.79 6.13 8.96 7.38 6.29 \n", - "1978-01-01 8.33 7.12 7.71 3.54 8.50 7.50 14.71 10.00 11.83 \n", - "1978-02-01 27.25 24.21 18.16 17.46 27.54 18.05 20.96 25.04 20.04 \n", - "1978-03-01 15.04 6.21 16.04 7.87 6.42 6.67 12.29 8.00 10.58 \n", - "1978-04-01 3.42 7.58 2.71 1.38 3.46 2.08 2.67 4.75 4.83 \n", - "1978-05-01 10.54 12.21 9.08 5.29 11.00 10.08 11.17 13.75 11.87 \n", - "1978-06-01 10.37 11.42 6.46 6.04 11.25 7.50 6.46 5.96 7.79 \n", - "1978-07-01 12.46 10.63 11.17 6.75 12.92 9.04 12.42 9.62 12.08 \n", - "1978-08-01 19.33 15.09 20.17 8.83 12.62 10.41 9.33 12.33 9.50 \n", - "1978-09-01 8.42 6.13 9.87 5.25 3.21 5.71 7.25 3.50 7.33 \n", - "1978-10-01 9.50 6.83 10.50 3.88 6.13 4.58 4.21 6.50 6.38 \n", - "1978-11-01 13.59 16.75 11.25 7.08 11.04 8.33 8.17 11.29 10.75 \n", - "1978-12-01 21.29 16.29 24.04 12.79 18.21 19.29 21.54 17.21 16.71 \n", + "1961-01 14.841333 11.988333 13.431613 7.736774 11.072759 8.588065 \n", + "1961-02 16.269286 14.975357 14.441481 9.230741 13.852143 10.937500 \n", + "1961-03 10.890000 11.296452 10.752903 7.284000 10.509355 8.866774 \n", + "1961-04 10.722667 9.427667 9.998000 5.830667 8.435000 6.495000 \n", + "1961-05 9.860968 8.850000 10.818065 5.905333 9.490323 6.574839 \n", + "1961-06 9.904138 8.520333 8.867000 6.083000 10.824000 6.707333 \n", + "1961-07 10.614194 8.221613 9.110323 6.340968 10.532581 6.198387 \n", + "1961-08 12.035000 10.133871 10.335806 6.845806 12.715161 8.441935 \n", + "1961-09 12.531000 9.656897 10.776897 7.155517 11.003333 7.234000 \n", + "1961-10 14.289667 10.915806 12.236452 8.154839 11.865484 8.333871 \n", + "1961-11 10.896333 8.592667 11.850333 6.045667 9.123667 6.250667 \n", + "1961-12 14.973548 11.903871 13.980323 7.073871 11.323548 8.302258 \n", + "1962-01 14.783871 13.160323 12.591935 7.538065 11.779677 8.720000 \n", + "1962-02 15.844643 12.041429 15.178929 9.262963 13.821429 9.726786 \n", + "1962-03 11.634333 8.602258 12.110645 6.403226 10.352258 6.732258 \n", + "1962-04 12.160667 9.676667 12.088333 7.163000 10.544000 7.558000 \n", + "1962-05 12.745806 10.865484 11.874839 7.471935 11.285806 7.209032 \n", + "1962-06 10.305667 9.677000 9.996333 6.846667 10.711333 7.441333 \n", + "1962-07 9.981935 8.370645 9.753548 6.093226 9.112903 5.877097 \n", + "1962-08 10.964194 9.694194 10.184516 6.701290 10.465161 7.009032 \n", + "1962-09 11.176333 9.507000 11.640000 6.164333 9.722333 6.214000 \n", + "1962-10 9.699355 8.063548 9.357097 4.818065 8.432258 5.730000 \n", + "1962-11 11.071333 7.984000 12.035667 5.740000 8.135667 6.338333 \n", + "1962-12 16.785484 13.753548 14.276452 9.557419 13.724839 10.321613 \n", + "1963-01 14.868387 11.112903 15.121613 6.635806 11.080645 7.835484 \n", + "1963-02 14.418929 11.876429 15.697500 8.611786 12.887857 9.600357 \n", + "1963-03 14.853871 12.271290 14.295806 9.268387 13.112903 10.088065 \n", + "1963-04 11.616000 10.138000 13.233667 7.990333 11.515333 9.727000 \n", + "1963-05 12.879677 11.010645 12.881290 8.411613 12.981613 9.739677 \n", + "1963-06 10.623333 8.434667 11.685000 6.420333 10.142667 7.219333 \n", + "... ... ... ... ... ... ... \n", + "1976-07 9.687742 7.980968 8.267742 4.631613 7.576774 4.927419 \n", + "1976-08 7.640645 5.366129 9.000645 3.142258 4.695484 3.847742 \n", + "1976-09 11.703667 10.515333 10.466333 5.313333 8.761333 7.062333 \n", + "1976-10 12.427097 9.572258 10.640000 4.885484 9.393548 6.906452 \n", + "1976-11 10.962667 9.443667 9.202000 3.696000 7.459333 7.026333 \n", + "1976-12 11.962258 10.086774 10.474516 3.383871 7.645484 6.148387 \n", + "1977-01 13.404516 10.377742 12.764839 5.884516 9.159677 8.005161 \n", + "1977-02 12.336786 11.898929 12.016786 5.317500 10.134643 9.423929 \n", + "1977-03 16.750000 14.499677 16.118387 8.414516 13.293871 11.562258 \n", + "1977-04 14.955333 12.293000 12.689667 7.422333 11.740000 10.137000 \n", + "1977-05 9.441290 7.173871 12.455806 4.507742 6.198387 6.689677 \n", + "1977-06 11.040000 8.353000 12.228000 4.864000 8.790333 7.209667 \n", + "1977-07 10.881935 8.663548 10.816452 5.419677 9.014839 7.600000 \n", + "1977-08 9.233548 7.727742 10.679032 4.453871 6.620645 5.961290 \n", + "1977-09 12.472333 10.742667 11.849333 5.638667 10.077333 8.242667 \n", + "1977-10 15.004516 13.960000 12.819677 6.754194 11.779032 9.671613 \n", + "1977-11 16.946667 15.444667 13.561333 7.584000 12.088667 9.161333 \n", + "1977-12 14.751935 12.744839 13.469677 6.592258 11.247742 9.466774 \n", + "1978-01 14.291935 11.872258 12.014194 6.463226 11.402903 7.517097 \n", + "1978-02 14.143571 12.153214 13.803214 6.828929 11.196786 7.858929 \n", + "1978-03 14.717097 14.601935 13.334194 8.231290 12.783226 9.488710 \n", + "1978-04 11.805000 11.255667 12.516333 5.920333 10.218000 7.301667 \n", + "1978-05 8.270645 7.226774 6.901613 3.740645 6.973871 4.449677 \n", + "1978-06 11.386667 9.474333 10.253333 6.053000 10.395333 7.490333 \n", + "1978-07 12.820000 9.750968 9.910323 6.483871 10.055161 7.820645 \n", + "1978-08 9.645161 8.259355 9.032258 4.502903 7.368065 5.935161 \n", + "1978-09 10.913667 10.895000 10.635000 5.725000 10.372000 9.278333 \n", + "1978-10 9.897742 8.670968 9.295806 4.721290 8.525161 6.774194 \n", + "1978-11 16.151667 14.802667 13.508000 7.317333 11.475000 8.743000 \n", + "1978-12 16.175484 13.748065 15.635161 7.094839 11.398710 9.241613 \n", "\n", - " CLO BEL MAL date month year day \n", - "Yr_Mo_Dy \n", - "1961-01-01 12.58 18.50 15.04 1961-01-01 1 1961 1 \n", - "1961-02-01 5.50 9.17 8.00 1961-02-01 2 1961 1 \n", - "1961-03-01 12.21 20.62 NaN 1961-03-01 3 1961 1 \n", - "1961-04-01 6.46 11.96 7.17 1961-04-01 4 1961 1 \n", - "1961-05-01 9.92 18.63 11.12 1961-05-01 5 1961 1 \n", - "1961-06-01 10.34 10.67 12.12 1961-06-01 6 1961 1 \n", - "1961-07-01 7.96 6.96 8.71 1961-07-01 7 1961 1 \n", - "1961-08-01 5.41 8.38 9.08 1961-08-01 8 1961 1 \n", - "1961-09-01 6.00 4.79 5.41 1961-09-01 9 1961 1 \n", - "1961-10-01 5.29 11.79 4.04 1961-10-01 10 1961 1 \n", - "1961-11-01 13.54 20.17 20.04 1961-11-01 11 1961 1 \n", - "1961-12-01 5.58 7.79 11.17 1961-12-01 12 1961 1 \n", - "1962-01-01 5.17 4.38 7.92 1962-01-01 1 1962 1 \n", - "1962-02-01 12.62 17.67 22.71 1962-02-01 2 1962 1 \n", - "1962-03-01 3.92 4.08 5.41 1962-03-01 3 1962 1 \n", - "1962-04-01 15.46 16.62 23.58 1962-04-01 4 1962 1 \n", - "1962-05-01 2.37 7.29 3.25 1962-05-01 5 1962 1 \n", - "1962-06-01 9.25 5.25 10.71 1962-06-01 6 1962 1 \n", - "1962-07-01 11.12 10.25 17.08 1962-07-01 7 1962 1 \n", - "1962-08-01 4.79 7.21 7.46 1962-08-01 8 1962 1 \n", - "1962-09-01 9.62 14.58 11.92 1962-09-01 9 1962 1 \n", - "1962-10-01 12.92 18.05 18.12 1962-10-01 10 1962 1 \n", - "1962-11-01 13.21 14.83 15.16 1962-11-01 11 1962 1 \n", - "1962-12-01 9.08 11.50 11.50 1962-12-01 12 1962 1 \n", - "1963-01-01 14.37 17.58 34.13 1963-01-01 1 1963 1 \n", - "1963-02-01 10.08 10.17 17.67 1963-02-01 2 1963 1 \n", - "1963-03-01 9.21 19.92 19.79 1963-03-01 3 1963 1 \n", - "1963-04-01 10.71 13.37 18.21 1963-04-01 4 1963 1 \n", - "1963-05-01 13.96 15.29 21.62 1963-05-01 5 1963 1 \n", - "1963-06-01 11.04 10.92 13.67 1963-06-01 6 1963 1 \n", - "... ... ... ... ... ... ... ... \n", - "1976-07-01 4.50 4.96 10.63 1976-07-01 7 1976 1 \n", - "1976-08-01 11.34 14.21 20.25 1976-08-01 8 1976 1 \n", - "1976-09-01 9.29 12.75 19.55 1976-09-01 9 1976 1 \n", - "1976-10-01 3.92 6.79 5.00 1976-10-01 10 1976 1 \n", - "1976-11-01 11.63 23.09 21.96 1976-11-01 11 1976 1 \n", - "1976-12-01 5.91 8.83 13.67 1976-12-01 12 1976 1 \n", - "1977-01-01 9.00 14.88 25.70 1977-01-01 1 1977 1 \n", - "1977-02-01 7.58 11.71 16.50 1977-02-01 2 1977 1 \n", - "1977-03-01 6.42 13.54 13.67 1977-03-01 3 1977 1 \n", - "1977-04-01 20.67 24.37 30.09 1977-04-01 4 1977 1 \n", - "1977-05-01 4.50 19.21 12.38 1977-05-01 5 1977 1 \n", - "1977-06-01 0.92 5.21 5.63 1977-06-01 6 1977 1 \n", - "1977-07-01 7.21 17.37 7.83 1977-07-01 7 1977 1 \n", - "1977-08-01 2.04 10.50 9.83 1977-08-01 8 1977 1 \n", - "1977-09-01 13.88 23.29 25.17 1977-09-01 9 1977 1 \n", - "1977-10-01 14.46 22.34 29.67 1977-10-01 10 1977 1 \n", - "1977-11-01 6.21 11.04 15.63 1977-11-01 11 1977 1 \n", - "1977-12-01 5.71 8.54 12.42 1977-12-01 12 1977 1 \n", - "1978-01-01 10.00 15.09 20.46 1978-01-01 1 1978 1 \n", - "1978-02-01 17.50 27.71 21.12 1978-02-01 2 1978 1 \n", - "1978-03-01 9.33 5.41 17.00 1978-03-01 3 1978 1 \n", - "1978-04-01 1.67 7.33 13.67 1978-04-01 4 1978 1 \n", - "1978-05-01 11.79 12.87 27.16 1978-05-01 5 1978 1 \n", - "1978-06-01 5.46 5.50 10.41 1978-06-01 6 1978 1 \n", - "1978-07-01 8.04 14.04 16.17 1978-07-01 7 1978 1 \n", - "1978-08-01 9.92 15.75 18.00 1978-08-01 8 1978 1 \n", - "1978-09-01 6.50 7.62 15.96 1978-09-01 9 1978 1 \n", - "1978-10-01 6.54 10.63 14.09 1978-10-01 10 1978 1 \n", - "1978-11-01 11.25 23.13 25.00 1978-11-01 11 1978 1 \n", - "1978-12-01 17.83 17.75 25.70 1978-12-01 12 1978 1 \n", + " DUB CLA MUL CLO BEL MAL \n", + "Yr_Mo_Dy \n", + "1961-01 11.184839 9.245333 9.085806 10.107419 13.880968 14.703226 \n", + "1961-02 11.890714 11.846071 11.821429 12.714286 18.583214 15.411786 \n", + "1961-03 9.644194 9.829677 10.294138 11.251935 16.410968 15.720000 \n", + "1961-04 6.925333 7.094667 7.342333 7.237000 11.147333 10.278333 \n", + "1961-05 7.604000 8.177097 8.039355 8.499355 11.900323 12.011613 \n", + "1961-06 9.095667 8.849333 9.086667 9.940333 13.995000 14.553793 \n", + "1961-07 8.353333 8.284194 8.077097 8.891613 11.092581 12.312903 \n", + "1961-08 10.093871 10.460968 9.111613 10.544667 14.410000 14.345333 \n", + "1961-09 8.206000 8.936552 7.728333 9.931333 13.718333 12.921667 \n", + "1961-10 11.194194 9.271935 8.942667 11.455806 14.229355 16.793226 \n", + "1961-11 10.869655 6.313667 6.575000 8.383667 10.776667 12.146000 \n", + "1961-12 11.753548 8.163226 7.965806 9.246774 12.239355 13.098710 \n", + "1962-01 14.211935 9.600000 9.670000 11.498710 16.369355 15.661613 \n", + "1962-02 16.916429 11.285357 12.021071 12.126429 16.705357 18.426786 \n", + "1962-03 10.223226 7.641935 7.092258 8.052581 9.690000 11.509000 \n", + "1962-04 11.480000 8.722000 8.703667 9.311667 12.234333 11.780667 \n", + "1962-05 10.105806 9.084516 7.868065 9.293226 12.130000 12.922581 \n", + "1962-06 10.548667 10.306667 9.196000 10.520333 13.757000 15.218333 \n", + "1962-07 7.781613 8.123226 6.829677 8.613226 10.783871 11.326129 \n", + "1962-08 11.136774 9.097419 8.645484 9.511613 13.119032 15.420968 \n", + "1962-09 8.488000 7.020333 6.372667 8.286000 11.483667 12.313333 \n", + "1962-10 8.448065 7.626774 6.630645 9.091290 13.286774 14.090323 \n", + "1962-11 9.615333 5.943000 6.362333 8.084333 9.786667 13.298333 \n", + "1962-12 13.735806 11.212258 10.683548 11.881935 16.043548 20.074516 \n", + "1963-01 12.797419 9.844839 7.841613 9.390000 11.428710 18.822258 \n", + "1963-02 12.729286 10.823214 8.981786 10.355714 13.266429 17.120714 \n", + "1963-03 12.168387 11.340968 9.690968 11.515484 13.982903 14.132581 \n", + "1963-04 11.979000 11.353000 10.341667 11.900333 13.875667 16.333667 \n", + "1963-05 12.280968 10.964194 10.745161 11.394839 14.777097 14.975161 \n", + "1963-06 9.267333 9.589333 8.583667 9.585333 12.098000 11.358667 \n", + "... ... ... ... ... ... ... \n", + "1976-07 6.994839 5.135806 7.941290 6.491290 10.264194 11.912258 \n", + "1976-08 5.437097 3.362581 5.946452 4.496452 7.079677 9.438387 \n", + "1976-09 8.617667 6.415333 8.953333 7.263333 11.587000 17.634000 \n", + "1976-10 6.380323 6.933226 7.552258 7.449032 11.837742 15.078065 \n", + "1976-11 9.058333 5.791000 6.577000 7.512333 12.568333 15.685333 \n", + "1976-12 8.034516 4.500000 5.952258 6.147742 7.814839 14.346774 \n", + "1977-01 10.107419 7.211613 8.280000 9.328387 12.131935 18.830000 \n", + "1977-02 10.949643 7.965357 9.320000 8.711429 11.435357 17.561429 \n", + "1977-03 14.283226 11.361613 12.102581 11.906452 15.863226 19.133548 \n", + "1977-04 13.887667 9.574000 10.342333 11.419667 15.593667 18.274667 \n", + "1977-05 9.226452 5.638387 6.699355 6.045484 10.213548 11.936129 \n", + "1977-06 8.799667 5.931000 7.065333 6.583333 11.321333 11.175333 \n", + "1977-07 9.961935 6.526129 7.980968 7.620000 12.924194 12.186774 \n", + "1977-08 8.943548 4.543226 6.384839 5.694839 9.825161 11.659355 \n", + "1977-09 11.939333 7.923000 8.828000 8.506333 14.051000 17.030333 \n", + "1977-10 12.924839 11.875161 11.481290 10.340323 17.640968 19.842903 \n", + "1977-11 14.051000 11.286000 10.318667 10.327000 17.215333 22.333000 \n", + "1977-12 13.231613 10.703871 10.401613 9.415484 13.237419 19.299677 \n", + "1978-01 12.207097 10.206452 9.549032 9.247419 15.101613 20.715806 \n", + "1978-02 11.903214 11.068929 10.052143 8.093929 10.353929 17.298571 \n", + "1978-03 12.129355 11.665161 11.656452 9.657097 14.234194 18.611290 \n", + "1978-04 8.586333 8.306667 8.537000 6.999000 11.190667 14.152000 \n", + "1978-05 5.420968 6.130645 5.742581 5.926452 9.263548 10.756452 \n", + "1978-06 7.928000 7.802000 8.220333 7.550000 11.501000 15.078667 \n", + "1978-07 7.831935 8.459355 8.523871 7.732903 12.648710 14.077419 \n", + "1978-08 5.650323 5.417742 7.241290 5.536774 10.466774 12.054194 \n", + "1978-09 10.790333 9.583000 10.069333 8.939000 15.680333 19.391333 \n", + "1978-10 8.115484 7.337742 8.297742 8.243871 13.776774 17.150000 \n", + "1978-11 11.492333 9.657333 10.701333 10.676000 17.404667 20.723000 \n", + "1978-12 12.077419 10.194839 10.616774 11.028710 13.859677 21.371613 \n", "\n", - "[216 rows x 16 columns]" + "[216 rows x 12 columns]" ] }, - "execution_count": 429, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -2741,10 +2419,8 @@ }, { "cell_type": "code", - "execution_count": 430, - "metadata": { - "collapsed": false - }, + "execution_count": 14, + "metadata": {}, "outputs": [ { "data": { @@ -2766,10 +2442,6 @@ " CLO\n", " BEL\n", " MAL\n", - " date\n", - " month\n", - " year\n", - " day\n", " \n", " \n", " Yr_Mo_Dy\n", @@ -2785,318 +2457,1126 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", - " 1961-01-01\n", - " 15.04\n", - " 14.96\n", - " 13.17\n", - " 9.29\n", + " 1960-12-26/1961-01-01\n", + " 15.040000\n", + " 14.960000\n", + " 13.170000\n", + " 9.290000\n", " NaN\n", - " 9.87\n", - " 13.67\n", - " 10.25\n", - " 10.83\n", - " 12.58\n", - " 18.50\n", - " 15.04\n", - " 1961-01-01\n", - " 1\n", - " 1961\n", - " 1\n", + " 9.870000\n", + " 13.670000\n", + " 10.250000\n", + " 10.830000\n", + " 12.580000\n", + " 18.500000\n", + " 15.040000\n", " \n", " \n", - " 1961-01-08\n", - " 10.96\n", - " 9.75\n", - " 7.62\n", - " 5.91\n", - " 9.62\n", - " 7.29\n", - " 14.29\n", - " 7.62\n", - " 9.25\n", - " 10.46\n", - " 16.62\n", - " 16.46\n", - " 1961-01-08\n", - " 1\n", - " 1961\n", - " 8\n", + " 1961-01-02/1961-01-08\n", + " 13.541429\n", + " 11.486667\n", + " 10.487143\n", + " 6.417143\n", + " 9.474286\n", + " 6.435714\n", + " 11.061429\n", + " 6.616667\n", + " 8.434286\n", + " 8.497143\n", + " 12.481429\n", + " 13.238571\n", " \n", " \n", - " 1961-01-15\n", - " 12.04\n", - " 9.67\n", - " 11.75\n", - " 2.37\n", - " 7.38\n", - " 3.13\n", - " 2.50\n", - " 6.83\n", - " 4.75\n", - " 5.63\n", - " 7.54\n", - " 6.75\n", - " 1961-01-15\n", - " 1\n", - " 1961\n", - " 15\n", + " 1961-01-09/1961-01-15\n", + " 12.468571\n", + " 8.967143\n", + " 11.958571\n", + " 4.630000\n", + " 7.351429\n", + " 5.072857\n", + " 7.535714\n", + " 6.820000\n", + " 5.712857\n", + " 7.571429\n", + " 11.125714\n", + " 11.024286\n", " \n", " \n", - " 1961-01-22\n", - " 9.59\n", - " 5.88\n", - " 9.92\n", - " 2.17\n", - " 6.87\n", - " 5.50\n", - " 9.38\n", - " 7.04\n", - " 6.34\n", - " 7.50\n", - " 10.88\n", - " 9.92\n", - " 1961-01-22\n", - " 1\n", - " 1961\n", - " 22\n", + " 1961-01-16/1961-01-22\n", + " 13.204286\n", + " 9.862857\n", + " 12.982857\n", + " 6.328571\n", + " 8.966667\n", + " 7.417143\n", + " 9.257143\n", + " 7.875714\n", + " 7.145714\n", + " 8.124286\n", + " 9.821429\n", + " 11.434286\n", " \n", " \n", - " 1961-01-29\n", - " NaN\n", - " 23.91\n", - " 22.29\n", - " 17.54\n", - " 24.08\n", - " 19.70\n", - " 22.00\n", - " 20.25\n", - " 21.46\n", - " 19.95\n", - " 27.71\n", - " 23.38\n", - " 1961-01-29\n", - " 1\n", - " 1961\n", - " 29\n", + " 1961-01-23/1961-01-29\n", + " 19.880000\n", + " 16.141429\n", + " 18.225714\n", + " 12.720000\n", + " 17.432857\n", + " 14.828571\n", + " 15.528571\n", + " 15.160000\n", + " 14.480000\n", + " 15.640000\n", + " 20.930000\n", + " 22.530000\n", " \n", - " \n", - "\n", - "" - ], - "text/plain": [ - " RPT VAL ROS KIL SHA BIR DUB CLA MUL \\\n", - "Yr_Mo_Dy \n", - "1961-01-01 15.04 14.96 13.17 9.29 NaN 9.87 13.67 10.25 10.83 \n", - "1961-01-08 10.96 9.75 7.62 5.91 9.62 7.29 14.29 7.62 9.25 \n", - "1961-01-15 12.04 9.67 11.75 2.37 7.38 3.13 2.50 6.83 4.75 \n", - "1961-01-22 9.59 5.88 9.92 2.17 6.87 5.50 9.38 7.04 6.34 \n", - "1961-01-29 NaN 23.91 22.29 17.54 24.08 19.70 22.00 20.25 21.46 \n", - "\n", - " CLO BEL MAL date month year day \n", - "Yr_Mo_Dy \n", - "1961-01-01 12.58 18.50 15.04 1961-01-01 1 1961 1 \n", - "1961-01-08 10.46 16.62 16.46 1961-01-08 1 1961 8 \n", - "1961-01-15 5.63 7.54 6.75 1961-01-15 1 1961 15 \n", - "1961-01-22 7.50 10.88 9.92 1961-01-22 1 1961 22 \n", - "1961-01-29 19.95 27.71 23.38 1961-01-29 1 1961 29 " - ] - }, - "execution_count": 430, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 15. Calculate the mean windspeed for each month in the dataset. \n", - "#### Treat January 1961 and January 1962 as *different* months.\n", - "#### (hint: first find a way to create an identifier unique for each month.)" - ] - }, - { - "cell_type": "code", - "execution_count": 432, - "metadata": { - "collapsed": false - }, - "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
YrMoDyRPTVALROSKILSHABIRDUBCLAMULCLOBELMAL
1961-01-30/1961-02-0516.82714315.46000012.6185718.24714313.3614299.10714312.2042868.5485719.8214299.46000014.01285711.935714
months_num1961-02-06/1961-02-1219.68428616.41714317.30428610.77428614.71857112.52285714.93428614.85000014.06428614.44000021.83285719.155714
161.01.016.014.84133311.98833313.4316137.73677411.0727598.58806511.1848399.2453339.08580610.10741913.88096814.7032261961-02-13/1961-02-1915.13000015.09142913.79714310.08333313.41000011.8685719.54285712.12857112.37571413.54285721.16714316.584286
261.02.014.516.26928614.97535714.4414819.23074113.85214310.93750011.89071411.84607111.82142912.71428618.58321415.4117861961-02-20/1961-02-2615.22142913.62571414.3342868.52428613.65571410.11428611.15000010.87571410.39285712.73000016.30428614.322857
361.03.016.010.89000011.29645210.7529037.28400010.5093558.8667749.6441949.82967710.29413811.25193516.41096815.7200001961-02-27/1961-03-0512.10142912.95142911.0633337.83428612.1014299.23857110.23285711.13000010.38333312.37000017.84285713.951667
461.04.015.510.7226679.4276679.9980005.8306678.4350006.4950006.9253337.0946677.3423337.23700011.14733310.2783331961-03-06/1961-03-129.37666711.57857110.8457147.13714310.9400009.4885716.8814299.6371439.88571410.45857116.70142914.420000
561.05.016.09.8609688.85000010.8180655.9053339.4903236.5748397.6040008.1770978.0393558.49935511.90032312.0116131961-03-13/1961-03-1911.91142913.50142911.6071437.08428610.7514298.65285710.04142910.22000010.10142911.62714319.35000016.227143
1961-03-20/1961-03-269.5671438.3871439.6957146.6485718.9642867.98285710.7742868.97714310.90428611.48142914.03714318.134286
1961-03-27/1961-04-0210.7571438.8528579.5014297.3000009.9757149.16571411.1257149.06142910.4783339.63142913.47142913.900000
1961-04-03/1961-04-0911.96428610.65428613.6071435.9585719.4942867.6371437.1071438.0414298.1614297.23857111.71285711.371429
1961-04-10/1961-04-168.9657148.0000008.7871434.9714296.4057144.9471435.0057144.9942865.7185716.1785719.4828578.690000
1961-04-17/1961-04-2312.62142910.43857110.2557147.76857110.3571437.7985719.0000009.1114298.7671439.55142913.62000012.470000
1961-04-24/1961-04-3010.1171439.7985718.2814294.8014297.8928575.1971436.1500006.3771436.2428576.1242869.7200008.637143
1961-05-01/1961-05-0715.36714313.97000013.8342869.95285714.91714310.86428611.43571412.24428611.67714311.58571417.54857114.571429
1961-05-08/1961-05-147.7728578.7128578.1728575.2957149.1500006.3914298.0133337.0528577.5285717.82285710.42142910.382857
1961-05-15/1961-05-218.2257145.63166712.0428574.2585717.5971435.0228575.6957146.9700006.8471437.1142869.62428610.612857
1961-05-22/1961-05-288.1557147.3885718.5128573.7483336.9414294.1128575.1428576.2728576.1085717.53571410.51857111.697143
1961-05-29/1961-06-0410.3214297.40714310.0657146.3100009.7542866.4514298.3442868.6357148.7142869.03571412.29857113.597143
1961-06-05/1961-06-1110.9171438.9928578.0957145.21428610.0300005.4600007.0842866.8842868.0342868.39714310.14857112.250000
1961-06-12/1961-06-1810.5714299.56571410.8757146.52000010.2600006.9471439.2785719.1028578.9928579.59428615.35142915.025714
1961-06-19/1961-06-257.3457146.1085718.0842865.47857111.4771437.49285711.8685719.44714310.45857111.25714314.37000017.410000
1961-06-26/1961-07-0210.2366679.4828578.6485716.77285710.9757146.5071437.6428579.2371437.90428610.26857114.53571412.133333
1961-07-03/1961-07-0911.7157147.2200009.3200007.54428612.4942867.98285711.8883339.30857110.73285710.54714312.22000015.987143
1961-07-10/1961-07-1616.68000013.51857111.1714299.27714314.5242868.41285710.17142910.5071439.53000010.15714313.52000012.524286
1961-07-17/1961-07-234.2028574.2557146.7385713.3000006.1128572.7157143.9642865.6428575.2971436.0414297.5242868.415714
.......................................
1978-06-05/1978-06-1112.0228579.1542869.4885715.97142910.6371438.0300008.6785718.2271439.1728579.64285711.63285717.778571
1978-06-12/1978-06-189.4100008.77000014.1357146.4571438.5642866.8985717.2971437.4642867.0542866.22571411.39857112.957143
1978-06-19/1978-06-2512.70714310.2442868.9128575.87857110.3728576.8528577.6485717.8757147.8657147.08428613.03000016.678571
1978-06-26/1978-07-0212.2085719.64000010.4828577.01142912.7728579.00571411.0557148.9171439.9942867.49857112.26857115.287143
1978-07-03/1978-07-0918.05285712.63000011.9842869.22000013.41428610.76285711.36857111.21857111.27285711.08285714.75428618.215714
1978-07-10/1978-07-165.8828573.2442865.3585712.2500004.6185712.6314292.4942863.5400003.3971433.2142867.1985717.578571
1978-07-17/1978-07-2313.65428610.0071439.9157146.57714310.7571438.2828578.1471439.3014298.9528578.40285713.84714314.785714
1978-07-24/1978-07-3012.17285711.85428611.0942866.6314299.9185718.7071437.4585719.1171439.3042868.14857115.19285714.584286
1978-07-31/1978-08-0612.4757149.48857110.5842865.4571438.7242865.8557147.0657145.4100006.6314294.9628579.08428611.405714
1978-08-07/1978-08-1310.1142869.6000007.6357144.7900008.1014296.7028575.4528575.9642867.5185715.66142910.69142911.927143
1978-08-14/1978-08-2011.10000011.23714310.5057145.6971439.9100008.0342867.2671438.5171439.8157147.94142915.00000014.405714
1978-08-21/1978-08-276.2085715.0600008.5657143.1214294.6385714.0771433.2914293.5000005.8771434.4471438.13142910.661429
1978-08-28/1978-09-038.2328574.8885717.7671433.5885713.8928575.0900006.1842863.0000006.2028574.7457148.10571413.150000
1978-09-04/1978-09-1011.48714312.74285711.1242865.70285710.72142910.9271439.1571439.45857110.5885718.27428614.56000016.752857
1978-09-11/1978-09-1712.06714310.64857111.6100006.86428612.25285711.86857113.01714312.44714311.90857110.95714318.42285723.441429
1978-09-18/1978-09-245.8457148.3171439.3057142.5542865.6257145.1714297.0471436.7500006.8700006.29142913.44714315.324286
1978-09-25/1978-10-0116.25285714.13142912.0985718.83285715.81000010.33857115.12428612.37857112.27571411.97000019.16000024.158571
1978-10-02/1978-10-0812.86571413.30285711.6714296.53142911.7314298.8814299.7071439.70857111.39142910.16142916.49857120.618571
1978-10-09/1978-10-159.6114296.3271439.2500004.1671436.8214296.2371435.5771436.3485717.2328577.28571412.19714314.177143
1978-10-16/1978-10-229.8042867.8171437.6428575.3142869.1242866.8628579.3914297.4285717.7657148.04857112.70857117.868571
1978-10-23/1978-10-297.5042867.7028578.1028573.2042867.4642865.9057148.7271436.6528577.6057148.12000014.48714316.915714
1978-10-30/1978-11-0513.06000013.46571412.1371436.6828579.8914298.3142869.7757149.63857110.18571410.42285718.45142918.721429
1978-11-06/1978-11-1214.85714315.23714312.0071437.68428612.4600009.35285710.22428610.55428611.16857112.23285719.30714322.522857
1978-11-13/1978-11-1920.59000018.99857117.27285710.41714314.22000011.20857116.08142912.91571413.29714313.24285720.35714323.905714
1978-11-20/1978-11-2616.49857113.97142913.5442866.36142910.4385717.40428612.7971437.5714299.9985718.91571415.20714319.491429
1978-11-27/1978-12-0314.93428611.23285713.9414295.56571410.2157148.6185719.6428577.6857149.0114299.54714311.83571418.728571
1978-12-04/1978-12-1020.74000019.19000017.0342869.77714315.28714312.77428614.43714312.48857113.87000014.08285718.51714323.061429
1978-12-11/1978-12-1716.75857114.69285714.9871436.91714311.3971437.27285710.2085717.9671439.1685718.56571411.10285715.562857
1978-12-18/1978-12-2411.1557148.00857113.1728574.0042867.8257146.2900007.7985718.6671437.1514298.07285711.84571418.977143
1978-12-25/1978-12-3114.95142911.80142916.0357146.5071439.6600008.62000013.70857110.47714310.86857111.47142912.94714326.844286
\n", + "

940 rows × 12 columns

\n", "
" ], "text/plain": [ - " Yr Mo Dy RPT VAL ROS KIL \\\n", - "months_num \n", - "1 61.0 1.0 16.0 14.841333 11.988333 13.431613 7.736774 \n", - "2 61.0 2.0 14.5 16.269286 14.975357 14.441481 9.230741 \n", - "3 61.0 3.0 16.0 10.890000 11.296452 10.752903 7.284000 \n", - "4 61.0 4.0 15.5 10.722667 9.427667 9.998000 5.830667 \n", - "5 61.0 5.0 16.0 9.860968 8.850000 10.818065 5.905333 \n", + " RPT VAL ROS KIL SHA \\\n", + "Yr_Mo_Dy \n", + "1960-12-26/1961-01-01 15.040000 14.960000 13.170000 9.290000 NaN \n", + "1961-01-02/1961-01-08 13.541429 11.486667 10.487143 6.417143 9.474286 \n", + "1961-01-09/1961-01-15 12.468571 8.967143 11.958571 4.630000 7.351429 \n", + "1961-01-16/1961-01-22 13.204286 9.862857 12.982857 6.328571 8.966667 \n", + "1961-01-23/1961-01-29 19.880000 16.141429 18.225714 12.720000 17.432857 \n", + "1961-01-30/1961-02-05 16.827143 15.460000 12.618571 8.247143 13.361429 \n", + "1961-02-06/1961-02-12 19.684286 16.417143 17.304286 10.774286 14.718571 \n", + "1961-02-13/1961-02-19 15.130000 15.091429 13.797143 10.083333 13.410000 \n", + "1961-02-20/1961-02-26 15.221429 13.625714 14.334286 8.524286 13.655714 \n", + "1961-02-27/1961-03-05 12.101429 12.951429 11.063333 7.834286 12.101429 \n", + "1961-03-06/1961-03-12 9.376667 11.578571 10.845714 7.137143 10.940000 \n", + "1961-03-13/1961-03-19 11.911429 13.501429 11.607143 7.084286 10.751429 \n", + "1961-03-20/1961-03-26 9.567143 8.387143 9.695714 6.648571 8.964286 \n", + "1961-03-27/1961-04-02 10.757143 8.852857 9.501429 7.300000 9.975714 \n", + "1961-04-03/1961-04-09 11.964286 10.654286 13.607143 5.958571 9.494286 \n", + "1961-04-10/1961-04-16 8.965714 8.000000 8.787143 4.971429 6.405714 \n", + "1961-04-17/1961-04-23 12.621429 10.438571 10.255714 7.768571 10.357143 \n", + "1961-04-24/1961-04-30 10.117143 9.798571 8.281429 4.801429 7.892857 \n", + "1961-05-01/1961-05-07 15.367143 13.970000 13.834286 9.952857 14.917143 \n", + "1961-05-08/1961-05-14 7.772857 8.712857 8.172857 5.295714 9.150000 \n", + "1961-05-15/1961-05-21 8.225714 5.631667 12.042857 4.258571 7.597143 \n", + "1961-05-22/1961-05-28 8.155714 7.388571 8.512857 3.748333 6.941429 \n", + "1961-05-29/1961-06-04 10.321429 7.407143 10.065714 6.310000 9.754286 \n", + "1961-06-05/1961-06-11 10.917143 8.992857 8.095714 5.214286 10.030000 \n", + "1961-06-12/1961-06-18 10.571429 9.565714 10.875714 6.520000 10.260000 \n", + "1961-06-19/1961-06-25 7.345714 6.108571 8.084286 5.478571 11.477143 \n", + "1961-06-26/1961-07-02 10.236667 9.482857 8.648571 6.772857 10.975714 \n", + "1961-07-03/1961-07-09 11.715714 7.220000 9.320000 7.544286 12.494286 \n", + "1961-07-10/1961-07-16 16.680000 13.518571 11.171429 9.277143 14.524286 \n", + "1961-07-17/1961-07-23 4.202857 4.255714 6.738571 3.300000 6.112857 \n", + "... ... ... ... ... ... \n", + "1978-06-05/1978-06-11 12.022857 9.154286 9.488571 5.971429 10.637143 \n", + "1978-06-12/1978-06-18 9.410000 8.770000 14.135714 6.457143 8.564286 \n", + "1978-06-19/1978-06-25 12.707143 10.244286 8.912857 5.878571 10.372857 \n", + "1978-06-26/1978-07-02 12.208571 9.640000 10.482857 7.011429 12.772857 \n", + "1978-07-03/1978-07-09 18.052857 12.630000 11.984286 9.220000 13.414286 \n", + "1978-07-10/1978-07-16 5.882857 3.244286 5.358571 2.250000 4.618571 \n", + "1978-07-17/1978-07-23 13.654286 10.007143 9.915714 6.577143 10.757143 \n", + "1978-07-24/1978-07-30 12.172857 11.854286 11.094286 6.631429 9.918571 \n", + "1978-07-31/1978-08-06 12.475714 9.488571 10.584286 5.457143 8.724286 \n", + "1978-08-07/1978-08-13 10.114286 9.600000 7.635714 4.790000 8.101429 \n", + "1978-08-14/1978-08-20 11.100000 11.237143 10.505714 5.697143 9.910000 \n", + "1978-08-21/1978-08-27 6.208571 5.060000 8.565714 3.121429 4.638571 \n", + "1978-08-28/1978-09-03 8.232857 4.888571 7.767143 3.588571 3.892857 \n", + "1978-09-04/1978-09-10 11.487143 12.742857 11.124286 5.702857 10.721429 \n", + "1978-09-11/1978-09-17 12.067143 10.648571 11.610000 6.864286 12.252857 \n", + "1978-09-18/1978-09-24 5.845714 8.317143 9.305714 2.554286 5.625714 \n", + "1978-09-25/1978-10-01 16.252857 14.131429 12.098571 8.832857 15.810000 \n", + "1978-10-02/1978-10-08 12.865714 13.302857 11.671429 6.531429 11.731429 \n", + "1978-10-09/1978-10-15 9.611429 6.327143 9.250000 4.167143 6.821429 \n", + "1978-10-16/1978-10-22 9.804286 7.817143 7.642857 5.314286 9.124286 \n", + "1978-10-23/1978-10-29 7.504286 7.702857 8.102857 3.204286 7.464286 \n", + "1978-10-30/1978-11-05 13.060000 13.465714 12.137143 6.682857 9.891429 \n", + "1978-11-06/1978-11-12 14.857143 15.237143 12.007143 7.684286 12.460000 \n", + "1978-11-13/1978-11-19 20.590000 18.998571 17.272857 10.417143 14.220000 \n", + "1978-11-20/1978-11-26 16.498571 13.971429 13.544286 6.361429 10.438571 \n", + "1978-11-27/1978-12-03 14.934286 11.232857 13.941429 5.565714 10.215714 \n", + "1978-12-04/1978-12-10 20.740000 19.190000 17.034286 9.777143 15.287143 \n", + "1978-12-11/1978-12-17 16.758571 14.692857 14.987143 6.917143 11.397143 \n", + "1978-12-18/1978-12-24 11.155714 8.008571 13.172857 4.004286 7.825714 \n", + "1978-12-25/1978-12-31 14.951429 11.801429 16.035714 6.507143 9.660000 \n", "\n", - " SHA BIR DUB CLA MUL CLO \\\n", - "months_num \n", - "1 11.072759 8.588065 11.184839 9.245333 9.085806 10.107419 \n", - "2 13.852143 10.937500 11.890714 11.846071 11.821429 12.714286 \n", - "3 10.509355 8.866774 9.644194 9.829677 10.294138 11.251935 \n", - "4 8.435000 6.495000 6.925333 7.094667 7.342333 7.237000 \n", - "5 9.490323 6.574839 7.604000 8.177097 8.039355 8.499355 \n", + " BIR DUB CLA MUL CLO \\\n", + "Yr_Mo_Dy \n", + "1960-12-26/1961-01-01 9.870000 13.670000 10.250000 10.830000 12.580000 \n", + "1961-01-02/1961-01-08 6.435714 11.061429 6.616667 8.434286 8.497143 \n", + "1961-01-09/1961-01-15 5.072857 7.535714 6.820000 5.712857 7.571429 \n", + "1961-01-16/1961-01-22 7.417143 9.257143 7.875714 7.145714 8.124286 \n", + "1961-01-23/1961-01-29 14.828571 15.528571 15.160000 14.480000 15.640000 \n", + "1961-01-30/1961-02-05 9.107143 12.204286 8.548571 9.821429 9.460000 \n", + "1961-02-06/1961-02-12 12.522857 14.934286 14.850000 14.064286 14.440000 \n", + "1961-02-13/1961-02-19 11.868571 9.542857 12.128571 12.375714 13.542857 \n", + "1961-02-20/1961-02-26 10.114286 11.150000 10.875714 10.392857 12.730000 \n", + "1961-02-27/1961-03-05 9.238571 10.232857 11.130000 10.383333 12.370000 \n", + "1961-03-06/1961-03-12 9.488571 6.881429 9.637143 9.885714 10.458571 \n", + "1961-03-13/1961-03-19 8.652857 10.041429 10.220000 10.101429 11.627143 \n", + "1961-03-20/1961-03-26 7.982857 10.774286 8.977143 10.904286 11.481429 \n", + "1961-03-27/1961-04-02 9.165714 11.125714 9.061429 10.478333 9.631429 \n", + "1961-04-03/1961-04-09 7.637143 7.107143 8.041429 8.161429 7.238571 \n", + "1961-04-10/1961-04-16 4.947143 5.005714 4.994286 5.718571 6.178571 \n", + "1961-04-17/1961-04-23 7.798571 9.000000 9.111429 8.767143 9.551429 \n", + "1961-04-24/1961-04-30 5.197143 6.150000 6.377143 6.242857 6.124286 \n", + "1961-05-01/1961-05-07 10.864286 11.435714 12.244286 11.677143 11.585714 \n", + "1961-05-08/1961-05-14 6.391429 8.013333 7.052857 7.528571 7.822857 \n", + "1961-05-15/1961-05-21 5.022857 5.695714 6.970000 6.847143 7.114286 \n", + "1961-05-22/1961-05-28 4.112857 5.142857 6.272857 6.108571 7.535714 \n", + "1961-05-29/1961-06-04 6.451429 8.344286 8.635714 8.714286 9.035714 \n", + "1961-06-05/1961-06-11 5.460000 7.084286 6.884286 8.034286 8.397143 \n", + "1961-06-12/1961-06-18 6.947143 9.278571 9.102857 8.992857 9.594286 \n", + "1961-06-19/1961-06-25 7.492857 11.868571 9.447143 10.458571 11.257143 \n", + "1961-06-26/1961-07-02 6.507143 7.642857 9.237143 7.904286 10.268571 \n", + "1961-07-03/1961-07-09 7.982857 11.888333 9.308571 10.732857 10.547143 \n", + "1961-07-10/1961-07-16 8.412857 10.171429 10.507143 9.530000 10.157143 \n", + "1961-07-17/1961-07-23 2.715714 3.964286 5.642857 5.297143 6.041429 \n", + "... ... ... ... ... ... \n", + "1978-06-05/1978-06-11 8.030000 8.678571 8.227143 9.172857 9.642857 \n", + "1978-06-12/1978-06-18 6.898571 7.297143 7.464286 7.054286 6.225714 \n", + "1978-06-19/1978-06-25 6.852857 7.648571 7.875714 7.865714 7.084286 \n", + "1978-06-26/1978-07-02 9.005714 11.055714 8.917143 9.994286 7.498571 \n", + "1978-07-03/1978-07-09 10.762857 11.368571 11.218571 11.272857 11.082857 \n", + "1978-07-10/1978-07-16 2.631429 2.494286 3.540000 3.397143 3.214286 \n", + "1978-07-17/1978-07-23 8.282857 8.147143 9.301429 8.952857 8.402857 \n", + "1978-07-24/1978-07-30 8.707143 7.458571 9.117143 9.304286 8.148571 \n", + "1978-07-31/1978-08-06 5.855714 7.065714 5.410000 6.631429 4.962857 \n", + "1978-08-07/1978-08-13 6.702857 5.452857 5.964286 7.518571 5.661429 \n", + "1978-08-14/1978-08-20 8.034286 7.267143 8.517143 9.815714 7.941429 \n", + "1978-08-21/1978-08-27 4.077143 3.291429 3.500000 5.877143 4.447143 \n", + "1978-08-28/1978-09-03 5.090000 6.184286 3.000000 6.202857 4.745714 \n", + "1978-09-04/1978-09-10 10.927143 9.157143 9.458571 10.588571 8.274286 \n", + "1978-09-11/1978-09-17 11.868571 13.017143 12.447143 11.908571 10.957143 \n", + "1978-09-18/1978-09-24 5.171429 7.047143 6.750000 6.870000 6.291429 \n", + "1978-09-25/1978-10-01 10.338571 15.124286 12.378571 12.275714 11.970000 \n", + "1978-10-02/1978-10-08 8.881429 9.707143 9.708571 11.391429 10.161429 \n", + "1978-10-09/1978-10-15 6.237143 5.577143 6.348571 7.232857 7.285714 \n", + "1978-10-16/1978-10-22 6.862857 9.391429 7.428571 7.765714 8.048571 \n", + "1978-10-23/1978-10-29 5.905714 8.727143 6.652857 7.605714 8.120000 \n", + "1978-10-30/1978-11-05 8.314286 9.775714 9.638571 10.185714 10.422857 \n", + "1978-11-06/1978-11-12 9.352857 10.224286 10.554286 11.168571 12.232857 \n", + "1978-11-13/1978-11-19 11.208571 16.081429 12.915714 13.297143 13.242857 \n", + "1978-11-20/1978-11-26 7.404286 12.797143 7.571429 9.998571 8.915714 \n", + "1978-11-27/1978-12-03 8.618571 9.642857 7.685714 9.011429 9.547143 \n", + "1978-12-04/1978-12-10 12.774286 14.437143 12.488571 13.870000 14.082857 \n", + "1978-12-11/1978-12-17 7.272857 10.208571 7.967143 9.168571 8.565714 \n", + "1978-12-18/1978-12-24 6.290000 7.798571 8.667143 7.151429 8.072857 \n", + "1978-12-25/1978-12-31 8.620000 13.708571 10.477143 10.868571 11.471429 \n", "\n", - " BEL MAL \n", - "months_num \n", - "1 13.880968 14.703226 \n", - "2 18.583214 15.411786 \n", - "3 16.410968 15.720000 \n", - "4 11.147333 10.278333 \n", - "5 11.900323 12.011613 " + " BEL MAL \n", + "Yr_Mo_Dy \n", + "1960-12-26/1961-01-01 18.500000 15.040000 \n", + "1961-01-02/1961-01-08 12.481429 13.238571 \n", + "1961-01-09/1961-01-15 11.125714 11.024286 \n", + "1961-01-16/1961-01-22 9.821429 11.434286 \n", + "1961-01-23/1961-01-29 20.930000 22.530000 \n", + "1961-01-30/1961-02-05 14.012857 11.935714 \n", + "1961-02-06/1961-02-12 21.832857 19.155714 \n", + "1961-02-13/1961-02-19 21.167143 16.584286 \n", + "1961-02-20/1961-02-26 16.304286 14.322857 \n", + "1961-02-27/1961-03-05 17.842857 13.951667 \n", + "1961-03-06/1961-03-12 16.701429 14.420000 \n", + "1961-03-13/1961-03-19 19.350000 16.227143 \n", + "1961-03-20/1961-03-26 14.037143 18.134286 \n", + "1961-03-27/1961-04-02 13.471429 13.900000 \n", + "1961-04-03/1961-04-09 11.712857 11.371429 \n", + "1961-04-10/1961-04-16 9.482857 8.690000 \n", + "1961-04-17/1961-04-23 13.620000 12.470000 \n", + "1961-04-24/1961-04-30 9.720000 8.637143 \n", + "1961-05-01/1961-05-07 17.548571 14.571429 \n", + "1961-05-08/1961-05-14 10.421429 10.382857 \n", + "1961-05-15/1961-05-21 9.624286 10.612857 \n", + "1961-05-22/1961-05-28 10.518571 11.697143 \n", + "1961-05-29/1961-06-04 12.298571 13.597143 \n", + "1961-06-05/1961-06-11 10.148571 12.250000 \n", + "1961-06-12/1961-06-18 15.351429 15.025714 \n", + "1961-06-19/1961-06-25 14.370000 17.410000 \n", + "1961-06-26/1961-07-02 14.535714 12.133333 \n", + "1961-07-03/1961-07-09 12.220000 15.987143 \n", + "1961-07-10/1961-07-16 13.520000 12.524286 \n", + "1961-07-17/1961-07-23 7.524286 8.415714 \n", + "... ... ... \n", + "1978-06-05/1978-06-11 11.632857 17.778571 \n", + "1978-06-12/1978-06-18 11.398571 12.957143 \n", + "1978-06-19/1978-06-25 13.030000 16.678571 \n", + "1978-06-26/1978-07-02 12.268571 15.287143 \n", + "1978-07-03/1978-07-09 14.754286 18.215714 \n", + "1978-07-10/1978-07-16 7.198571 7.578571 \n", + "1978-07-17/1978-07-23 13.847143 14.785714 \n", + "1978-07-24/1978-07-30 15.192857 14.584286 \n", + "1978-07-31/1978-08-06 9.084286 11.405714 \n", + "1978-08-07/1978-08-13 10.691429 11.927143 \n", + "1978-08-14/1978-08-20 15.000000 14.405714 \n", + "1978-08-21/1978-08-27 8.131429 10.661429 \n", + "1978-08-28/1978-09-03 8.105714 13.150000 \n", + "1978-09-04/1978-09-10 14.560000 16.752857 \n", + "1978-09-11/1978-09-17 18.422857 23.441429 \n", + "1978-09-18/1978-09-24 13.447143 15.324286 \n", + "1978-09-25/1978-10-01 19.160000 24.158571 \n", + "1978-10-02/1978-10-08 16.498571 20.618571 \n", + "1978-10-09/1978-10-15 12.197143 14.177143 \n", + "1978-10-16/1978-10-22 12.708571 17.868571 \n", + "1978-10-23/1978-10-29 14.487143 16.915714 \n", + "1978-10-30/1978-11-05 18.451429 18.721429 \n", + "1978-11-06/1978-11-12 19.307143 22.522857 \n", + "1978-11-13/1978-11-19 20.357143 23.905714 \n", + "1978-11-20/1978-11-26 15.207143 19.491429 \n", + "1978-11-27/1978-12-03 11.835714 18.728571 \n", + "1978-12-04/1978-12-10 18.517143 23.061429 \n", + "1978-12-11/1978-12-17 11.102857 15.562857 \n", + "1978-12-18/1978-12-24 11.845714 18.977143 \n", + "1978-12-25/1978-12-31 12.947143 26.844286 \n", + "\n", + "[940 rows x 12 columns]" ] }, - "execution_count": 432, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -3107,15 +3587,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 16. Calculate the min, max and mean windspeeds and standard deviations of the windspeeds across all locations for each week (assume that the first week starts on January 2 1961) for the first 52 weeks." + "### Step 15. Calculate the min, max and mean windspeeds and standard deviations of the windspeeds across all locations for each week (assume that the first week starts on January 2 1961) for the first 52 weeks." ] }, { "cell_type": "code", - "execution_count": 433, - "metadata": { - "collapsed": false - }, + "execution_count": 15, + "metadata": {}, "outputs": [ { "data": { @@ -3474,7 +3952,7 @@ "[10 rows x 48 columns]" ] }, - "execution_count": 433, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -3483,24 +3961,25 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/07_Visualization/Chipotle/Exercise_with_Solutions.ipynb b/07_Visualization/Chipotle/Exercise_with_Solutions.ipynb index 39a64b0cb..a020818f1 100644 --- a/07_Visualization/Chipotle/Exercise_with_Solutions.ipynb +++ b/07_Visualization/Chipotle/Exercise_with_Solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Visualizing Chipotle's Data" + "# Visualizing Chipotle's Data\n", + "\n", + "Check out [Chipotle's Visualization Exercises Video Tutorial](https://youtu.be/BLD2mAB3kaw) to watch a data scientist go through the exercises" ] }, { @@ -19,15 +21,13 @@ }, { "cell_type": "code", - "execution_count": 132, - "metadata": { - "collapsed": false - }, + "execution_count": 1, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", - "import collections\n", - "import matplotlib.pyplot as plt \n", + "import matplotlib.pyplot as plt\n", + "from collections import Counter\n", "\n", "# set this so the \n", "%matplotlib inline" @@ -49,10 +49,8 @@ }, { "cell_type": "code", - "execution_count": 133, - "metadata": { - "collapsed": false - }, + "execution_count": 2, + "metadata": {}, "outputs": [], "source": [ "url = 'https://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv'\n", @@ -70,15 +68,25 @@ { "cell_type": "code", "execution_count": 134, - "metadata": { - "collapsed": false, - "scrolled": false - }, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -92,7 +100,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -100,7 +108,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -108,7 +116,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -116,7 +124,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -124,7 +132,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -132,7 +140,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -140,7 +148,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -148,7 +156,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -156,7 +164,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -164,7 +172,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -201,7 +209,7 @@ "9 [Fresh Tomato Salsa, [Rice, Black Beans, Pinto... $9.25 " ] }, - "execution_count": 134, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -219,19 +227,19 @@ }, { "cell_type": "code", - "execution_count": 135, - "metadata": { - "collapsed": false - }, + "execution_count": 4, + "metadata": {}, "outputs": [ { "data": { - "image/png": "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\nrDbS1wAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -253,7 +261,7 @@ "\n", "# Set the title and labels\n", "plt.xlabel('Items')\n", - "plt.ylabel('Price')\n", + "plt.ylabel('Number of Times Ordered')\n", "plt.title('Most ordered Chipotle\\'s Items')\n", "\n", "# show the plot\n", @@ -270,29 +278,29 @@ }, { "cell_type": "code", - "execution_count": 136, - "metadata": { - "collapsed": false - }, + "execution_count": 5, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(0, 40.0)" + "(0, 36.7178857951459)" ] }, - "execution_count": 136, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\nAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -324,32 +332,43 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 4 } diff --git a/07_Visualization/Chipotle/Exercises.ipynb b/07_Visualization/Chipotle/Exercises.ipynb index 43f4d7288..544991f0a 100644 --- a/07_Visualization/Chipotle/Exercises.ipynb +++ b/07_Visualization/Chipotle/Exercises.ipynb @@ -20,14 +20,12 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", - "import collections\n", - "import matplotlib.pyplot as plt \n", + "import matplotlib.pyplot as plt\n", + "from collections import Counter\n", "\n", "# set this so the graphs open internally\n", "%matplotlib inline" @@ -50,9 +48,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -67,7 +63,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "scrolled": false }, "outputs": [], @@ -83,9 +78,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -100,9 +93,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -116,32 +107,30 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/07_Visualization/Chipotle/Solutions.ipynb b/07_Visualization/Chipotle/Solutions.ipynb index ba39d5c90..23e7498b3 100644 --- a/07_Visualization/Chipotle/Solutions.ipynb +++ b/07_Visualization/Chipotle/Solutions.ipynb @@ -19,15 +19,13 @@ }, { "cell_type": "code", - "execution_count": 132, - "metadata": { - "collapsed": false - }, + "execution_count": 1, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", - "import collections\n", - "import matplotlib.pyplot as plt \n", + "import matplotlib.pyplot as plt\n", + "from collections import Counter\n", "\n", "# set this so the \n", "%matplotlib inline" @@ -49,12 +47,14 @@ }, { "cell_type": "code", - "execution_count": 133, - "metadata": { - "collapsed": false - }, + "execution_count": 2, + "metadata": {}, "outputs": [], - "source": [] + "source": [ + "url = 'https://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv'\n", + " \n", + "chipo = pd.read_csv(url, sep = '\\t')" + ] }, { "cell_type": "markdown", @@ -65,9 +65,8 @@ }, { "cell_type": "code", - "execution_count": 134, + "execution_count": 3, "metadata": { - "collapsed": false, "scrolled": false }, "outputs": [ @@ -75,6 +74,19 @@ "data": { "text/html": [ "
\n", + "\n", "
0011Chips and Fresh Tomato Salsa$2.39
1111Izze$3.39
2211Nantucket Nectar$3.39
3311Chips and Tomatillo-Green Chili Salsa$2.39
4422Chicken Bowl$16.98
5531Chicken Bowl$10.98
6631Side of Chips$1.69
7741Steak Burrito$11.75
8841Steak Soft Tacos$9.25
9951Steak Burrito
\n", " \n", " \n", @@ -88,7 +100,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -96,7 +108,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -104,7 +116,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -112,7 +124,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -120,7 +132,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -128,7 +140,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -136,7 +148,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -144,7 +156,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -152,7 +164,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -160,7 +172,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -197,12 +209,14 @@ "9 [Fresh Tomato Salsa, [Rice, Black Beans, Pinto... $9.25 " ] }, - "execution_count": 134, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], - "source": [] + "source": [ + "chipo.head(10)" + ] }, { "cell_type": "markdown", @@ -213,23 +227,46 @@ }, { "cell_type": "code", - "execution_count": 135, - "metadata": { - "collapsed": false - }, + "execution_count": 4, + "metadata": {}, "outputs": [ { "data": { - "image/png": "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\nrDbS1wAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], - "source": [] + "source": [ + "# get the Series of the names\n", + "x = chipo.item_name\n", + "\n", + "# use the Counter class from collections to create a dictionary with keys(text) and frequency\n", + "letter_counts = Counter(x)\n", + "\n", + "# convert the dictionary to a DataFrame\n", + "df = pd.DataFrame.from_dict(letter_counts, orient='index')\n", + "\n", + "# sort the values from the top to the least value and slice the first 5 items\n", + "df = df[0].sort_values(ascending = True)[45:50]\n", + "\n", + "# create the plot\n", + "df.plot(kind='bar')\n", + "\n", + "# Set the title and labels\n", + "plt.xlabel('Items')\n", + "plt.ylabel('Number of Times Ordered')\n", + "plt.title('Most ordered Chipotle\\'s Items')\n", + "\n", + "# show the plot\n", + "plt.show()" + ] }, { "cell_type": "markdown", @@ -241,70 +278,84 @@ }, { "cell_type": "code", - "execution_count": 136, - "metadata": { - "collapsed": false - }, + "execution_count": 5, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(0, 40.0)" + "(0, 36.7178857951459)" ] }, - "execution_count": 136, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\nAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], - "source": [] + "source": [ + "# create a list of prices\n", + "chipo.item_price = [float(value[1:-1]) for value in chipo.item_price] # strip the dollar sign and trailing space\n", + "\n", + "# then groupby the orders and sum\n", + "orders = chipo.groupby('order_id').sum()\n", + "\n", + "# creates the scatterplot\n", + "# plt.scatter(orders.quantity, orders.item_price, s = 50, c = 'green')\n", + "plt.scatter(x = orders.item_price, y = orders.quantity, s = 50, c = 'green')\n", + "\n", + "# Set the title and labels\n", + "plt.xlabel('Order Price')\n", + "plt.ylabel('Items ordered')\n", + "plt.title('Number of items ordered per order price')\n", + "plt.ylim(0)" + ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 7. BONUS: Create a question and a graph to answer your own question." + "### BONUS: Create a question and a graph to answer your own question." ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.6.8" } }, "nbformat": 4, - "nbformat_minor": 0 -} + "nbformat_minor": 1 +} \ No newline at end of file diff --git a/07_Visualization/Online_Retail/Exercises.ipynb b/07_Visualization/Online_Retail/Exercises.ipynb index cba1cdf7d..e3289db38 100644 --- a/07_Visualization/Online_Retail/Exercises.ipynb +++ b/07_Visualization/Online_Retail/Exercises.ipynb @@ -21,9 +21,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -31,22 +29,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/Visualization/Online_Retail/Online_Retail.csv). " + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/07_Visualization/Online_Retail/Online_Retail.csv). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 3. Assign it to a variable called online_rt" + "### Step 3. Assign it to a variable called online_rt\n", + "Note: if you receive a utf-8 decode error, set `encoding = 'latin1'` in `pd.read_csv()`." ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -60,9 +57,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -70,15 +65,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 5. Exclude negative Quatity entries" + "### Step 5. Exclude negative Quantity entries" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -86,15 +79,238 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Create a scatterplot with the Quantity per UnitPrice by CustomerID for the top 3 Countries" + "### Step 6. Create a scatterplot with the Quantity per UnitPrice by CustomerID for the top 3 Countries (except UK)" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 7. Investigate why the previous results look so uninformative.\n", + "\n", + "This section might seem a bit tedious to go through. But I've thought of it as some kind of a simulation of problems one might encounter when dealing with data and other people. Besides there is a prize at the end (i.e. Section 8).\n", + "\n", + "(But feel free to jump right ahead into Section 8 if you want; it doesn't require that you finish this section.)\n", + "\n", + "#### Step 7.1 Look at the first line of code in Step 6. And try to figure out if it leads to any kind of problem.\n", + "##### Step 7.1.1 Display the first few rows of that DataFrame." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.1.2 Think about what that piece of code does and display the dtype of `UnitPrice`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.1.3 Pull data from `online_rt`for `CustomerID`s 12346.0 and 12347.0." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 7.2 Reinterpreting the initial problem.\n", + "\n", + "To reiterate the question that we were dealing with: \n", + "\"Create a scatterplot with the Quantity per UnitPrice by CustomerID for the top 3 Countries\"\n", + "\n", + "The question is open to a set of different interpretations.\n", + "We need to disambiguate.\n", + "\n", + "We could do a single plot by looking at all the data from the top 3 countries.\n", + "Or we could do one plot per country. To keep things consistent with the rest of the exercise,\n", + "let's stick to the latter oprion. So that's settled.\n", + "\n", + "But \"top 3 countries\" with respect to what? Two answers suggest themselves:\n", + "Total sales volume (i.e. total quantity sold) or total sales (i.e. revenue).\n", + "This exercise goes for sales volume, so let's stick to that.\n", + "\n", + "##### Step 7.2.1 Find out the top 3 countries in terms of sales volume." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.2.2 \n", + "\n", + "Now that we have the top 3 countries, we can focus on the rest of the problem: \n", + "\"Quantity per UnitPrice by CustomerID\". \n", + "We need to unpack that.\n", + "\n", + "\"by CustomerID\" part is easy. That means we're going to be plotting one dot per CustomerID's on our plot. In other words, we're going to be grouping by CustomerID.\n", + "\n", + "\"Quantity per UnitPrice\" is trickier. Here's what we know: \n", + "*One axis will represent a Quantity assigned to a given customer. This is easy; we can just plot the total Quantity for each customer. \n", + "*The other axis will represent a UnitPrice assigned to a given customer. Remember a single customer can have any number of orders with different prices, so summing up prices isn't quite helpful. Besides it's not quite clear what we mean when we say \"unit price per customer\"; it sounds like price of the customer! A reasonable alternative is that we assign each customer the average amount each has paid per item. So let's settle that question in that manner.\n", + "\n", + "#### Step 7.3 Modify, select and plot data\n", + "##### Step 7.3.1 Add a column to online_rt called `Revenue` calculate the revenue (Quantity * UnitPrice) from each sale.\n", + "We will use this later to figure out an average price per customer." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.3.2 Group by `CustomerID` and `Country` and find out the average price (`AvgPrice`) each customer spends per unit." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.3.3 Plot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 7.4 What to do now?\n", + "We aren't much better-off than what we started with. The data are still extremely scattered around and don't seem quite informative.\n", + "\n", + "But we shouldn't despair!\n", + "There are two things to realize:\n", + "1) The data seem to be skewed towaards the axes (e.g. we don't have any values where Quantity = 50000 and AvgPrice = 5). So that might suggest a trend.\n", + "2) We have more data! We've only been looking at the data from 3 different countries and they are plotted on different graphs.\n", + "\n", + "So: we should plot the data regardless of `Country` and hopefully see a less scattered graph.\n", + "\n", + "##### Step 7.4.1 Plot the data for each `CustomerID` on a single graph" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.4.2 Zoom in so we can see that curve more clearly" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 8. Plot a line chart showing revenue (y) per UnitPrice (x).\n", + "\n", + "Did Step 7 give us any insights about the data? Sure! As average price increases, the quantity ordered decreses. But that's hardly surprising. It would be surprising if that wasn't the case!\n", + "\n", + "Nevertheless the rate of drop in quantity is so drastic, it makes me wonder how our revenue changes with respect to item price. It would not be that surprising if it didn't change that much. But it would be interesting to know whether most of our revenue comes from expensive or inexpensive items, and how that relation looks like.\n", + "\n", + "That is what we are going to do now.\n", + "\n", + "#### 8.1 Group `UnitPrice` by intervals of 1 for prices [0,50), and sum `Quantity` and `Revenue`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 8.3 Plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 8.4 Make it look nicer.\n", + "x-axis needs values. \n", + "y-axis isn't that easy to read; show in terms of millions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, "outputs": [], "source": [] }, @@ -108,32 +324,30 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.0" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/07_Visualization/Online_Retail/Exercises_with_solutions_code.ipynb b/07_Visualization/Online_Retail/Exercises_with_solutions_code.ipynb index b2f0d538c..01c15b4f6 100644 --- a/07_Visualization/Online_Retail/Exercises_with_solutions_code.ipynb +++ b/07_Visualization/Online_Retail/Exercises_with_solutions_code.ipynb @@ -20,9 +20,12 @@ }, { "cell_type": "code", - "execution_count": 197, + "execution_count": 1, "metadata": { - "collapsed": false + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [ @@ -34,7 +37,7 @@ "# set the graphs to show in the jupyter notebook\n", "%matplotlib inline\n", "\n", - "# set seabor graphs to a better style\n", + "# set seaborn graphs to a better style\n", "sns.set(style=\"ticks\")" ] }, @@ -42,27 +45,44 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/Visualization/Online_Retail/Online_Retail.csv). " + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/07_Visualization/Online_Retail/Online_Retail.csv). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 3. Assign it to a variable called online_rt" + "### Step 3. Assign it to a variable called online_rt\n", + "Note: if you receive a utf-8 decode error, set `encoding = 'latin1'` in `pd.read_csv()`." ] }, { "cell_type": "code", - "execution_count": 198, + "execution_count": 2, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
0011Chips and Fresh Tomato Salsa$2.39
1111Izze$3.39
2211Nantucket Nectar$3.39
3311Chips and Tomatillo-Green Chili Salsa$2.39
4422Chicken Bowl$16.98
5531Chicken Bowl$10.98
6631Side of Chips$1.69
7741Steak Burrito$11.75
8841Steak Soft Tacos$9.25
9951Steak Burrito
\n", " \n", " \n", @@ -153,14 +173,15 @@ "4 12/1/10 8:26 3.39 17850.0 United Kingdom " ] }, - "execution_count": 198, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "url = 'https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/Visualization/Online_Retail/Online_Retail.csv'\n", - "online_rt = pd.read_csv(url)\n", + "path = 'https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/07_Visualization/Online_Retail/Online_Retail.csv'\n", + "\n", + "online_rt = pd.read_csv(path, encoding = 'latin1')\n", "\n", "online_rt.head()" ] @@ -174,19 +195,24 @@ }, { "cell_type": "code", - "execution_count": 199, + "execution_count": 3, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -203,7 +229,7 @@ "# Set the title and labels\n", "plt.xlabel('Countries')\n", "plt.ylabel('Quantity')\n", - "plt.title('10 Countries with more orders')\n", + "plt.title('10 Countries with most orders')\n", "\n", "# show the plot\n", "plt.show()" @@ -213,20 +239,36 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 5. Exclude negative Quatity entries" + "### Step 5. Exclude negative Quantity entries" ] }, { "cell_type": "code", - "execution_count": 200, + "execution_count": 4, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -317,7 +359,7 @@ "4 12/1/10 8:26 3.39 17850.0 United Kingdom " ] }, - "execution_count": 200, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -331,24 +373,39 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Create a scatterplot with the Quantity per UnitPrice by CustomerID for the top 3 Countries" + "### Step 6. Create a scatterplot with the Quantity per UnitPrice by CustomerID for the top 3 Countries (except UK)" ] }, { "cell_type": "code", - "execution_count": 201, + "execution_count": 5, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [ { "data": { - "image/png": "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\nIzY2FmMMkydPxmazERMTw7Rp04iNjcVms5GcnAzA3LlzmTJlCi6Xi6ioKNq2bevNYYiIiIjINViM\nMaa6g6gu2dnZ9OjRg7S0NPcNPSJyfcodEc8od6Q20kPLRURERMRjKiZFRERExGMqJkVERETEYyom\nRURERMRjKiZFRERExGMqJkVERETEYyomRURERMRjKiZFRERExGMqJkVERETEYyomRURERMRjKiZF\nRERExGMqJkVERETEY1Zv7ry4uJgZM2Zw/PhxioqKGDt2LPfccw/Tp0/Hx8eHsLAwZs+eDcDatWtZ\ns2YNfn5+jB07lq5du1JQUMDUqVPJycnBbreTlJRESEgIe/fuZeHChVitVjp27Eh8fLw3hyEiIiIi\n1+DVmcmPPvqIkJAQ3nnnHZYvX878+fNZtGgRkydPZuXKlbhcLjZt2sTZs2dZsWIFa9asYfny5SQn\nJ1NUVMTq1atp3rw577zzDv369WPJkiUAzJkzh5dffplVq1axf/9+MjMzvTkMEREREbkGrxaTjzzy\nCBMnTgSgpKQEX19fvvrqKyIjIwGIjo5m+/bt7N+/n4iICKxWK3a7naZNm5KZmUlGRgbR0dHubXfu\n3InD4aCoqIjQ0FAAOnXqxPbt2705DBERERG5Bq8Wk7fccgv169fH4XAwceJEJk2ahDHGvT4gIACH\nw4HT6SQwMNDdXvoZp9OJ3W53b5ubm1um7cp2EREREal6Xr1mEuDkyZPEx8czfPhw+vTpw4svvuhe\n53Q6CQoKwm6343A4rtrudDrdbYGBge4C9IfbXk9KSgqpqamVODKRukG5I+IZ5Y7UFV6dmTx79iwj\nR45k6tSpDBgwAICWLVuyZ88eALZs2UJERARt2rQhIyODwsJCcnNzOXr0KGFhYYSHh5Oeng5Aeno6\nkZGR2O12bDYbWVlZGGPYunUrERER140lISGBI0eOlPlKS0vz3uBFagnljohnlDtSV3h1ZnLZsmVc\nvHiRJUuWsHjxYiwWCzNnzmTBggUUFRXRrFkzevfujcViIS4ujtjYWIwxTJ48GZvNRkxMDNOmTSM2\nNhabzUZycjIAc+fOZcqUKbhcLqKiomjbtq03hyEiIiIi12AxV17EWMdkZ2fTo0cP0tLS3Df0iMj1\nKXdEPKPckdpIDy0XEREREY+pmBQRERERj6mYFBERERGPqZgUEREREY+pmBQRERERj6mYFBERERGP\n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\nvj1ffPEFvXv3Zu/evTRv3vy6n0lISCAhIaFMW3Z2Nj169PBWmOWa/kSHaulX5EbdbLkjUlNUZ+5Y\nLBZaNG3o9X5EoIae5n744Yex2WwMGzaMpKQkEhMTqzukG/LShM46xS1yHROGti13WUREbg41cmbS\nYrEwd+7c6g6jQj5O7lfdIYjUSA8/eBcPP3hXdYchIiLXUSNnJkVERETk5qBiUkREREQ8pmJSRERE\nRDymYlJEREREPKZiUkREREQ8pmJSRERERDymYlJEREREPKZiUkREREQ8pmJSRERERDymYlJERERE\nPKZiUkREREQ8pmJSRERERDymYlJEREREPGatjk6jo6Np2rQpAOHh4UyaNIm9e/eycOFCrFYrHTt2\nJD4+HoDU1FTS09OxWq0kJibStm1bzp8/z5QpUygoKOD2229n0aJF1KtXrzqGIiIiIlKnVXkx+d13\n39GqVSuWLl1apn3OnDmkpqYSGhrK6NGjyczMxOVy8a9//Yt3332XkydPkpCQwHvvvcfixYvp27cv\n/fv357XXXmP16tU8+eSTVT0UERERkTqvyk9zHzx4kFOnTjFixAjGjBnDsWPHcDgcFBUVERoaCkCn\nTp3Ytm0bGRkZREVFAXDHHXfgcrk4d+4c//73v+ncuTNweZZz586dVT0MEREREcHLM5Pvvfceb731\nVpm22bNnM2bMGH7961+TkZHBlClTWLx4MXa73b1NQEAAWVlZ+Pv7ExwcXKbd4XDgdDoJDAx0t+Xm\n5noUX0lJCQD/+7//69HnRX6Kn//851it1XKlyU+m3JHqpNwR8Yy3cser2Th48GAGDx5cpi0/Px9f\nX18AIiIiOHPmjLtILOV0OmnQoAF+fn44nU53u8PhICgoyL19w4YNyxSW5UlJSSE1NfWq6x5//HFP\nhifyk6Slpbln429myh252Sh3RDzjrdyp8j/tUlNTCQ4O5ve//z2ZmZnccccd2O12bDYbWVlZhIaG\nsnXrVuLj4/H19eWll17iqaee4uTJkxhjCA4Opn379mzZsoX+/fuzZcsWIiMjr9tvQkICCQkJZdry\n8/Np164dGzdudBe43tKjRw/S0tK82kdV9lOVfdW2fkr7+vnPf14lff1Uyp2a21dt66e0L+VOxdTW\nn39tGlNtyZ0qLyZHjx7N1KlT3XdoL1q0CLh8A86UKVNwuVxERUXRtm1b4PLs5dChQzHG8NxzzwEw\nbtw4pk2bxtq1awkJCSE5OdmjWPz9/QFo0qRJJYzs+qrqL+mq/Iu9to2pKo9dTT1NB8qdmtRXbesH\nlDs3ojb+/GvbmGpD7lR5RgYFBbFs2bIftbdr1441a9b8qD0+Pt79mKBSjRo1Yvny5V6LUUREREQq\nRg8tFxERERGPqZgUEREREY/5zpkzZ051B1HdHnroIfVzk/dV2/qp6r68pbb9XGrjz7+29VPVfXlL\nbfu51Maff23rx5t9WYwxxit7FhEREZFaT6e5RURERMRjKiZFRERExGMqJkVERETEYyomRURERMRj\nKiZFRERExGM1951U5YiOjqZp06YAhIeHM2nSJPbu3cvChQuxWq107NjR/Vad1NRU96sdExMTadu2\nLefPn2fKlCkUFBRw++23s2jRIurVq8fnn3/OkiVLsFqtDBo0iCFDhlw3FmMMc+bM4ciRI9hsNp5/\n/nkaN25c4bEMHDgQu90OXH7l0tixY5k+fTo+Pj6EhYUxe/ZsANauXcuaNWvw8/Nj7NixdO3alYKC\nAqZOnUpOTg52u52kpCRCQkLKHIu7776bb7/9lhUrVvDdd99V6r6vPM6zZs1iw4YN3HvvvQwbNozk\n5GT3zygmJoZHHnnkJ/dTXFzMwIEDyc7OxhhDQkICPXv2rPQxjR07lhkzZrBnzx4uXLjAz3/+c8aO\nHeuVMV3rd9RblDvKHeWOZ5Q7yp06nTumlvn222/N2LFjf9Ter18/k5WVZYwxZtSoUebw4cPm0KFD\n5oknnjDGGHPixAkzaNAgY4wx8+fPN+vWrTPGGLNs2TLz5ptvmqKiIvPwww+b3NxcU1hYaAYNGmRy\ncnKuG8/GjRvN9OnTjTHG7N2714wbN67CYykoKDADBgwo0zZ27FizZ88eY4wxzz33nPnss8/MmTNn\nzKOPPmqKiopMbm6uefTRR01hYaF54403TEpKijHGmE8++cQsWLCgzLH461//asLDw03fvn0rfd9X\nHucFCxaY+++/3wwdOtScOHHCdOvWzbzxxhtlxlUZ/aSkpJguXboYY4w5cuSIadWqlVfGlJqaav74\nxz+aJ554wly4cMF07tzZa2O61u+oNyh3lDvGKHc8odxR7hhTt3On1p3mPnjwIKdOnWLEiBGMGTOG\nY8eO4XA4KCoqcr9MvVOnTmzbto2MjAyioqIAuOOOO3C5XJw7d45///vfdO7cGbj81+aOHTv473//\nS5MmTbDb7fj5+REREcGePXuuG09GRoZ7X+3atePgwYMVHktmZiZ5eXmMHDmSJ598kn379vHVV18R\nGRnpjm379u3s37+fiIgIrFYrdrudpk2bkpmZSUZGBtHR0e5td+7cWeZYNGnShCeeeILc3FwADh06\nVGn7vvI45+XlERsb6z7OeXl5fPbZZwwfPpxZs2bhdDorpZ/69eu7/2q/7bbb3L8PlT0mX19fWrZs\nSVRUFC6Xi3r16nltTFf7HT1//nyFf4duhHJHuQPKHU8od5Q7ULdzp0YXk++99x59+/Yt83X77bcz\nZswY3n77bUaPHs2UKVNwOp3uKXuAgIAAcnNzcTqdBAYGlml3OBxl2svbtjQZyuNwOMp8zmq14nK5\nKjQ+f39/Ro4cyeuvv86cOXOYMmUK5opnzF8tXoD69eu720vHfeU4StsefvhhAgICKCkpAajUfV/Z\n3rhx4zL7CA4OZuTIkaxcuZLGjRuTmpr6o+PkST+FhYU0atQIh8PBxIkTady4cZljXVljys/Pp6io\nCJvNxsSJE3n66ae9NqZrxfpTKXeUO1e2K3cqTrmj3LmyXblzWY0uJgcPHszHH39c5qt169Z0794d\ngIiICM6cOeP+YZZyOp00aNAAu92O0+l0tzscDoKCgspsX3pQ7Xb7j/YRFBR03Rh/2IfL5cLHp2KH\nvWnTpvz2t791fx8cHExOTs6PYrhWbFf2XTqOHx6LS5cuYbVevnT2yrgqY99XHue8vDx3u81mo337\n9gD07NmTzMxMAgMDK6WfkydP8sQTTzBgwAD8/f3x9fX1yphKSkr4P//n/zBgwAD69Onj1TFd+fvz\nwyT3lHJHufPDfpQ7FaPcUe78sB/lTg0vJq8mNTWVt956C7g8XX/HHXdgt9ux2WxkZWVhjGHr1q1E\nREQQHh7O1q1bMcZw4sQJjDEEBwfTvn17tmzZAsCWLVuIjIx0XzB88eJFCgsL2bNnD/fff/9142nf\nvj3p6ekA7N27l+bNm1d4LO+//z5JSUkAnDp1CofDQVRUFLt373bHFhERQZs2bcjIyKCwsJDc3FyO\nHj1KWFgY4eHh7r7T09OJjIz80bHYs2cPAQEBANx3333uUyiVse8rj/OePXvcx/nbb78lKysLgB07\ndtCqVatK6eeuu+7irbfeYsqUKTz00EMYY2jVqlWlj6lZs2Z88MEHNGrUiP79+3t1TNf6HfUG5Y5y\nR7njGeWOcqeu506tezf3xYsXmTp1Knl5eVitVp577jnuuusu9u3bx8KFC3G5XERFRfH0008Dl/8R\n2LJlC8YYEhMTad++PTk5OUybNo28vDxCQkJITk7G39+fzZs3k5qaijGGwYMHExMTc914zBV31QEs\nWrSIu+66q0JjKSoqIjExkRMnTuDj48PUqVMJDg5m1qxZFBUV0axZMxYsWIDFYuHdd99lzZo1GGMY\nN24cPXv2JD8/n2nTpnHmzBlsNhvJyck0atSI/fv38/zzz+NyuWjbti2HDh3ib3/7G8eOHePZZ5+t\ntH1feZwXLlzIu+++yz333MOwYcN477338PPz47bbbmPevHkEBAT85H6ef/553n//fSwWC8YYmjRp\nQlJSEgsWLKjUMTmdTv7xj39Qr14993UkzzzzDOvXr6/0MV3rd9QblDvKHeWOZ5Q7yp26nju1rpgU\nERERkapT605zi4iIiEjVUTEpIiIiIh5TMSkiIiIiHlMxKSIiIiIeUzEpIiIiIh5TMSkiIiIiHlMx\nWcdcunSJpKQkevfuTf/+/YmLi2PXrl2V2kd2djYzZ84ELr+j9NlnnwVg7dq1bNiwoVL7Eqkqyh0R\nzyh3aj9rdQcgVWv8+PHcfffdfPLJJ/j6+nL48GHGjBnDK6+8QkRERKX0cfz4cfdT+Vu3bk3r1q0B\n+PLLL3nooYcqpQ+RqqbcEfGMcqf208xkHZKRkcGxY8dITEx0vzu0ZcuWjBs3jsWLFxMXF+d+BdTx\n48fd75r9z3/+w4gRIxgyZAjdu3dn5cqVwOUn5D/77LPExcXRs2dPli1bBsDzzz/PwYMHmT9/Prt3\n7yYuLo4dO3bw+eef8+c//5m0tDQ6dOjgfvfn8ePHefTRR6v6cIhUmHJHxDPKnbpBxWQdcuDAAVq2\nbFnmJfQADzzwAPv27cNisZRpL11+7733+MMf/sC7777LW2+9xcsvv+ze5j//+Q9vvvkma9euZdmy\nZTgcDmbNmkXr1q3dpxksFgu/+tWv6N69OxMmTKBHjx5069aNTz/9FIAPP/yQ/v37e3PoIj+JckfE\nM8qdukHFpJCfn4/L5brm+unTp1NQUMBrr73Gq6++yqVLl9zrHnroIXx9fWnYsCHBwcHk5uZWqM+B\nAweyfv16AP7+97/Tr1+/nzYIkWqg3BHxjHKndlExWYe0bt2aw4cPU1JSAsC5c+cA2LdvH61bt3a/\nqB6guLjY/bmJEyeyadMm7rnnHiZNmlRmnzabrcxyRV/1/sADD3Dq1Ck+++wzGjduzG233ebxuES8\nTbkj4hnlTt2gYrIOiYyM5K677iIpKYni4mLWrVvHsGHDWLp0KePHjyckJISvv/4agM8++8z9ue3b\ntzNhwgS6d+/O7t27gfKT19fX1/0Pxw/bi4qK3Mv9+/dnwYIFDBw4sLKGKOIVyh0Rzyh36gYVk3XM\nkiVLAOjTpw8ffvghvr6+3Hnnnfzzn//kqaeeYtWqVQwcOJDCwkL3ZxISEoiJiWHgwIFs27aN0NBQ\nsrOzf7Tv0mtdmjVrxsWLF5k2bVqZ9R07duS1115j48aNAPzmN78hPz+fHj16eGu4IpVGuSPiGeVO\n7WcxFZ0fllotPT2dLl26VFl/xhhWrVrFsWPH3M8GE6mJlDsinlHu1B4qJqVajB8/npMnT/L6668T\nEhJS3eGI1BjKHRHPKHe8R8WkiIiIiHhM10yKiIiIiMdUTIqIiIiIx1RMioiIiIjHVEyKiIiIiMdU\nTIqIiIiIx1RMioiIiIjH/n9LlLW1ZT9UOgAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, + "execution_count": 5, "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -368,9 +425,9 @@ "# filter the dataframe to just select ones in the top_countries\n", "customers = customers[customers['Country'].isin(top_countries)]\n", "\n", - "################\n", - "# Grap Section #\n", - "################\n", + "#################\n", + "# Graph Section #\n", + "#################\n", "\n", "# creates the FaceGrid\n", "g = sns.FacetGrid(customers, col=\"Country\")\n", @@ -379,45 +436,1051 @@ "g.map(plt.scatter, \"Quantity\", \"UnitPrice\", alpha=1)\n", "\n", "# adds legend\n", - "g.add_legend();" + "g.add_legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### BONUS: Create your own question and answer it." + "### Step 7. Investigate why the previous results look so uninformative.\n", + "\n", + "This section might seem a bit tedious to go through. But I've thought of it as some kind of a simulation of problems one might encounter when dealing with data and other people. Besides there is a prize at the end (i.e. Section 8).\n", + "\n", + "(But feel free to jump right ahead into Section 8 if you want; it doesn't require that you finish this section.)\n", + "\n", + "#### Step 7.1 Look at the first line of code in Step 6. And try to figure out if it leads to any kind of problem.\n", + "##### Step 7.1.1 Display the first few rows of that DataFrame." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "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", + "
QuantityUnitPrice
CustomerIDCountry
12346.0United Kingdom742151.04
12347.0Iceland2458481.21
12348.0Finland2341178.71
12349.0Italy631605.10
12350.0Norway19765.30
\n", + "
" + ], + "text/plain": [ + " Quantity UnitPrice\n", + "CustomerID Country \n", + "12346.0 United Kingdom 74215 1.04\n", + "12347.0 Iceland 2458 481.21\n", + "12348.0 Finland 2341 178.71\n", + "12349.0 Italy 631 605.10\n", + "12350.0 Norway 197 65.30" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#This takes our initial dataframe groups it primarily by 'CustomerID' and secondarily by 'Country'.\n", + "#It sums all the (non-indexical) columns that have numerical values under each group.\n", + "customers = online_rt.groupby(['CustomerID','Country']).sum().head()\n", + "\n", + "#Here's what it looks like:\n", + "customers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.1.2 Think about what that piece of code does and display the dtype of `UnitPrice`" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "dtype('float64')" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "customers.UnitPrice.dtype\n", + "#So it's 'float64'\n", + "#But why did we sum 'UnitPrice', to begin with?\n", + "#If 'UnitPrice' wasn't something that we were interested in then it would be OK\n", + "#since we wouldn't care whether UnitPrice was being summed or not.\n", + "#But we want our graphs to reflect 'UnitPrice'!\n", + "#Note that summing up 'UnitPrice' can be highly misleading.\n", + "#It doesn't tell us much as to what the customer is doing.\n", + "#Suppose, a customer places one order of 1000 items that are worth $1 each.\n", + "#Another customer places a thousand orders of 1 item worth $1.\n", + "#There isn't much of a difference between what the former and the latter customers did.\n", + "#After all, they've spent the same amount of money.\n", + "#so we should be careful when we're summing columns. Sometimes we intend to sum just one column\n", + "#('Quantity' in this case) and another column like UnitPrice gets ito the mix." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.1.3 Pull data from `online_rt`for `CustomerID`s 12346.0 and 12347.0." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "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", + "
InvoiceNoStockCodeDescriptionQuantityInvoiceDateUnitPriceCustomerIDCountry
42896657351122423REGENCY CAKESTAND 3 TIER610/31/11 12:2512.7512347.0Iceland
28663756203222423REGENCY CAKESTAND 3 TIER38/2/11 8:4812.7512347.0Iceland
7226754223722423REGENCY CAKESTAND 3 TIER31/26/11 14:3012.7512347.0Iceland
14830054922222423REGENCY CAKESTAND 3 TIER34/7/11 10:4312.7512347.0Iceland
42896757351123173REGENCY TEAPOT ROSES210/31/11 12:259.9512347.0Iceland
\n", + "
" + ], + "text/plain": [ + " InvoiceNo StockCode Description Quantity \\\n", + "428966 573511 22423 REGENCY CAKESTAND 3 TIER 6 \n", + "286637 562032 22423 REGENCY CAKESTAND 3 TIER 3 \n", + "72267 542237 22423 REGENCY CAKESTAND 3 TIER 3 \n", + "148300 549222 22423 REGENCY CAKESTAND 3 TIER 3 \n", + "428967 573511 23173 REGENCY TEAPOT ROSES 2 \n", + "\n", + " InvoiceDate UnitPrice CustomerID Country \n", + "428966 10/31/11 12:25 12.75 12347.0 Iceland \n", + "286637 8/2/11 8:48 12.75 12347.0 Iceland \n", + "72267 1/26/11 14:30 12.75 12347.0 Iceland \n", + "148300 4/7/11 10:43 12.75 12347.0 Iceland \n", + "428967 10/31/11 12:25 9.95 12347.0 Iceland " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + "
InvoiceNoStockCodeDescriptionQuantityInvoiceDateUnitPriceCustomerIDCountry
6161954143123166MEDIUM CERAMIC TOP STORAGE JAR742151/18/11 10:011.0412346.0United Kingdom
\n", + "
" + ], + "text/plain": [ + " InvoiceNo StockCode Description Quantity \\\n", + "61619 541431 23166 MEDIUM CERAMIC TOP STORAGE JAR 74215 \n", + "\n", + " InvoiceDate UnitPrice CustomerID Country \n", + "61619 1/18/11 10:01 1.04 12346.0 United Kingdom " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(online_rt[online_rt.CustomerID == 12347.0].\n", + " sort_values(by='UnitPrice', ascending = False).head())\n", + "display(online_rt[online_rt.CustomerID == 12346.0].\n", + " sort_values(by='UnitPrice', ascending = False).head())\n", + "#The result is exactly what we'd suspected. Customer 12346.0 placed\n", + "#one giant order, whereas 12347.0 placed a lot of smaller orders.\n", + "#So we've identified one potential reason why our plots looked so weird at section 6.\n", + "#At this stage we need to go back to the initial problem we've specified at section 6.\n", + "#And make it more precise." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 7.2 Reinterpreting the initial problem.\n", + "\n", + "To reiterate the question that we were dealing with: \n", + "\"Create a scatterplot with the Quantity per UnitPrice by CustomerID for the top 3 Countries\"\n", + "\n", + "The question is open to a set of different interpretations.\n", + "We need to disambiguate.\n", + "\n", + "We could do a single plot by looking at all the data from the top 3 countries.\n", + "Or we could do one plot per country. To keep things consistent with the rest of the exercise,\n", + "let's stick to the latter oprion. So that's settled.\n", + "\n", + "But \"top 3 countries\" with respect to what? Two answers suggest themselves:\n", + "Total sales volume (i.e. total quantity sold) or total sales (i.e. revenue).\n", + "This exercise goes for sales volume, so let's stick to that.\n", + "\n", + "##### Step 7.2.1 Find out the top 3 countries in terms of sales volume." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Netherlands', 'EIRE', 'Germany'], dtype='object', name='Country')" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sales_volume = online_rt.groupby('Country').Quantity.sum().sort_values(ascending=False)\n", + "\n", + "top3 = sales_volume.index[1:4] #We are excluding UK\n", + "top3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.2.2 \n", + "\n", + "Now that we have the top 3 countries, we can focus on the rest of the problem: \n", + "\"Quantity per UnitPrice by CustomerID\". \n", + "We need to unpack that.\n", + "\n", + "\"by CustomerID\" part is easy. That means we're going to be plotting one dot per CustomerID's on our plot. In other words, we're going to be grouping by CustomerID.\n", + "\n", + "\"Quantity per UnitPrice\" is trickier. Here's what we know: \n", + "*One axis will represent a Quantity assigned to a given customer. This is easy; we can just plot the total Quantity for each customer. \n", + "*The other axis will represent a UnitPrice assigned to a given customer. Remember a single customer can have any number of orders with different prices, so summing up prices isn't quite helpful. Besides it's not quite clear what we mean when we say \"unit price per customer\"; it sounds like price of the customer! A reasonable alternative is that we assign each customer the average amount each has paid per item. So let's settle that question in that manner.\n", + "\n", + "#### Step 7.3 Modify, select and plot data\n", + "##### Step 7.3.1 Add a column to online_rt called `Revenue` calculate the revenue (Quantity * UnitPrice) from each sale.\n", + "We will use this later to figure out an average price per customer." + ] + }, + { + "cell_type": "code", + "execution_count": 10, "metadata": { - "collapsed": true + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "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", + "
InvoiceNoStockCodeDescriptionQuantityInvoiceDateUnitPriceCustomerIDCountryRevenue
053636585123AWHITE HANGING HEART T-LIGHT HOLDER612/1/10 8:262.5517850.0United Kingdom15.30
153636571053WHITE METAL LANTERN612/1/10 8:263.3917850.0United Kingdom20.34
253636584406BCREAM CUPID HEARTS COAT HANGER812/1/10 8:262.7517850.0United Kingdom22.00
353636584029GKNITTED UNION FLAG HOT WATER BOTTLE612/1/10 8:263.3917850.0United Kingdom20.34
453636584029ERED WOOLLY HOTTIE WHITE HEART.612/1/10 8:263.3917850.0United Kingdom20.34
\n", + "
" + ], + "text/plain": [ + " InvoiceNo StockCode Description Quantity \\\n", + "0 536365 85123A WHITE HANGING HEART T-LIGHT HOLDER 6 \n", + "1 536365 71053 WHITE METAL LANTERN 6 \n", + "2 536365 84406B CREAM CUPID HEARTS COAT HANGER 8 \n", + "3 536365 84029G KNITTED UNION FLAG HOT WATER BOTTLE 6 \n", + "4 536365 84029E RED WOOLLY HOTTIE WHITE HEART. 6 \n", + "\n", + " InvoiceDate UnitPrice CustomerID Country Revenue \n", + "0 12/1/10 8:26 2.55 17850.0 United Kingdom 15.30 \n", + "1 12/1/10 8:26 3.39 17850.0 United Kingdom 20.34 \n", + "2 12/1/10 8:26 2.75 17850.0 United Kingdom 22.00 \n", + "3 12/1/10 8:26 3.39 17850.0 United Kingdom 20.34 \n", + "4 12/1/10 8:26 3.39 17850.0 United Kingdom 20.34 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "online_rt['Revenue'] = online_rt.Quantity * online_rt.UnitPrice\n", + "online_rt.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.3.2 Group by `CustomerID` and `Country` and find out the average price (`AvgPrice`) each customer spends per unit." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "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", + "
QuantityRevenueAvgPriceCountry
CustomerIDCountry
12426.0Germany258582.732.258643Germany
12427.0Germany533825.801.549343Germany
12468.0Germany366729.541.993279Germany
12471.0Germany821219824.052.414034Germany
12472.0Germany41486572.111.584405Germany
\n", + "
" + ], + "text/plain": [ + " Quantity Revenue AvgPrice Country\n", + "CustomerID Country \n", + "12426.0 Germany 258 582.73 2.258643 Germany\n", + "12427.0 Germany 533 825.80 1.549343 Germany\n", + "12468.0 Germany 366 729.54 1.993279 Germany\n", + "12471.0 Germany 8212 19824.05 2.414034 Germany\n", + "12472.0 Germany 4148 6572.11 1.584405 Germany" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "grouped = online_rt[online_rt.Country.isin(top3)].groupby(['CustomerID','Country'])\n", + "\n", + "plottable = grouped['Quantity','Revenue'].agg('sum')\n", + "plottable['AvgPrice'] = plottable.Revenue / plottable.Quantity\n", + "\n", + "# get the value of the index and put in the column Country\n", + "plottable['Country'] = plottable.index.get_level_values(1)\n", + "plottable.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.3.3 Plot" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "####################\n", + "# Graph Section v 2#\n", + "####################\n", + "\n", + "# creates the FaceGrid\n", + "g = sns.FacetGrid(plottable, col=\"Country\")\n", + "\n", + "# map over a make a scatterplot\n", + "g.map(plt.scatter, \"Quantity\", \"AvgPrice\", alpha=1)\n", + "\n", + "# adds legend\n", + "g.add_legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 7.4 What to do now?\n", + "We aren't much better-off than what we started with. The data are still extremely scattered around and don't seem quite informative.\n", + "\n", + "But we shouldn't despair!\n", + "There are two things to realize:\n", + "1) The data seem to be skewed towaards the axes (e.g. we don't have any values where Quantity = 50000 and AvgPrice = 5). So that might suggest a trend.\n", + "2) We have more data! We've only been looking at the data from 3 different countries and they are plotted on different graphs.\n", + "\n", + "So: we should plot the data regardless of `Country` and hopefully see a less scattered graph.\n", + "\n", + "##### Step 7.4.1 Plot the data for each `CustomerID` on a single graph" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "grouped = online_rt.groupby(['CustomerID'])\n", + "plottable = grouped['Quantity','Revenue'].agg('sum')\n", + "plottable['AvgPrice'] = plottable.Revenue / plottable.Quantity\n", + "\n", + "# map over a make a scatterplot\n", + "plt.scatter(plottable.Quantity, plottable.AvgPrice)\n", + "plt.plot()\n", + "\n", + "\n", + "#Turns out the graph is still extremely skewed towards the axes like an exponential decay function." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.4.2 Zoom in so we can see that curve more clearly" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "grouped = online_rt.groupby(['CustomerID','Country'])\n", + "plottable = grouped.agg({'Quantity': 'sum',\n", + " 'Revenue': 'sum'})\n", + "plottable['AvgPrice'] = plottable.Revenue / plottable.Quantity\n", + "\n", + "# map over a make a scatterplot\n", + "plt.scatter(plottable.Quantity, plottable.AvgPrice)\n", + "\n", + "#Zooming in. (I'm starting the axes from a negative value so that\n", + "#the dots can be plotted in the graph completely.)\n", + "plt.xlim(-40,2000) \n", + "plt.ylim(-1,80)\n", + "\n", + "plt.plot()\n", + "\n", + "\n", + "#And there is still that pattern, this time in close-up!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 8. Plot a line chart showing revenue (y) per UnitPrice (x).\n", + "\n", + "Did Step 7 give us any insights about the data? Sure! As average price increases, the quantity ordered decreses. But that's hardly surprising. It would be surprising if that wasn't the case!\n", + "\n", + "Nevertheless the rate of drop in quantity is so drastic, it makes me wonder how our revenue changes with respect to item price. It would not be that surprising if it didn't change that much. But it would be interesting to know whether most of our revenue comes from expensive or inexpensive items, and how that relation looks like.\n", + "\n", + "That is what we are going to do now.\n", + "\n", + "#### 8.1 Group `UnitPrice` by intervals of 1 for prices [0,50), and sum `Quantity` and `Revenue`." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "UnitPrice\n", + "(0, 1] 1.107775e+06\n", + "(1, 2] 2.691765e+06\n", + "(2, 3] 2.024143e+06\n", + "(3, 4] 8.651018e+05\n", + "(4, 5] 1.219377e+06\n", + "Name: Revenue, dtype: float64" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#These are the values for the graph.\n", + "#They are used both in selecting data from\n", + "#the DataFrame and plotting the data so I've assigned\n", + "#them to variables to increase consistency and make things easier\n", + "#when playing with the variables.\n", + "price_start = 0 \n", + "price_end = 50\n", + "price_interval = 1\n", + "\n", + "#Creating the buckets to collect the data accordingly\n", + "buckets = np.arange(price_start,price_end,price_interval)\n", + "\n", + "#Select the data and sum\n", + "revenue_per_price = online_rt.groupby(pd.cut(online_rt.UnitPrice, buckets)).Revenue.sum()\n", + "revenue_per_price.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 8.3 Plot." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "revenue_per_price.plot()\n", + "plt.xlabel('Unit Price (in intervals of '+str(price_interval)+')')\n", + "plt.ylabel('Revenue')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 8.4 Make it look nicer.\n", + "x-axis needs values. \n", + "y-axis isn't that easy to read; show in terms of millions." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "revenue_per_price.plot()\n", + "\n", + "#Place labels\n", + "plt.xlabel('Unit Price (in buckets of '+str(price_interval)+')') \n", + "plt.ylabel('Revenue')\n", + "\n", + "#Even though the data is bucketed in intervals of 1,\n", + "#I'll plot ticks a little bit further apart from each other to avoid cluttering.\n", + "plt.xticks(np.arange(price_start,price_end,3),\n", + " np.arange(price_start,price_end,3))\n", + "plt.yticks([0, 500000, 1000000, 1500000, 2000000, 2500000],\n", + " ['0', '$0.5M', '$1M', '$1.5M', '$2M', '$2.5M'])\n", + "plt.show()\n", + "\n", + "#Looks like a major chunk of our revenue comes from items worth $0-$3!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### BONUS: Create your own question and answer it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "outputs": [], "source": [] } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 4 } diff --git a/07_Visualization/Online_Retail/Solutions.ipynb b/07_Visualization/Online_Retail/Solutions.ipynb index 2464f943a..1ec98b203 100644 --- a/07_Visualization/Online_Retail/Solutions.ipynb +++ b/07_Visualization/Online_Retail/Solutions.ipynb @@ -20,41 +20,31 @@ }, { "cell_type": "code", - "execution_count": 197, + "execution_count": 1, "metadata": { - "collapsed": false + "collapsed": true }, "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import seaborn as sns\n", - "\n", - "# set the graphs to show in the jupyter notebook\n", - "%matplotlib inline\n", - "\n", - "# set seabor graphs to a better style\n", - "sns.set(style=\"ticks\")" - ] + "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/Visualization/Online_Retail/Online_Retail.csv). " + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/07_Visualization/Online_Retail/Online_Retail.csv). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 3. Assign it to a variable called online_rt" + "### Step 3. Assign it to a variable called online_rt\n", + "Note: if you receive a utf-8 decode error, set `encoding = 'latin1'` in `pd.read_csv()`." ] }, { "cell_type": "code", - "execution_count": 198, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -63,6 +53,19 @@ "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -153,7 +156,7 @@ "4 12/1/10 8:26 3.39 17850.0 United Kingdom " ] }, - "execution_count": 198, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -169,19 +172,21 @@ }, { "cell_type": "code", - "execution_count": 199, + "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -191,12 +196,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 5. Exclude negative Quatity entries" + "### Step 5. Exclude negative Quantity entries" ] }, { "cell_type": "code", - "execution_count": 200, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -205,6 +210,19 @@ "data": { "text/html": [ "
\n", + "\n", "
\n", " \n", " \n", @@ -295,7 +313,178 @@ "4 12/1/10 8:26 3.39 17850.0 United Kingdom " ] }, - "execution_count": 200, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 6. Create a scatterplot with the Quantity per UnitPrice by CustomerID for the top 3 Countries (except UK)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 7. Investigate why the previous results look so uninformative.\n", + "\n", + "This section might seem a bit tedious to go through. But I've thought of it as some kind of a simulation of problems one might encounter when dealing with data and other people. Besides there is a prize at the end (i.e. Section 8).\n", + "\n", + "(But feel free to jump right ahead into Section 8 if you want; it doesn't require that you finish this section.)\n", + "\n", + "#### Step 7.1 Look at the first line of code in Step 6. And try to figure out if it leads to any kind of problem.\n", + "##### Step 7.1.1 Display the first few rows of that DataFrame." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "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", + "
QuantityUnitPrice
CustomerIDCountry
12346.0United Kingdom742151.04
12347.0Iceland2458481.21
12348.0Finland2341178.71
12349.0Italy631605.10
12350.0Norway19765.30
\n", + "
" + ], + "text/plain": [ + " Quantity UnitPrice\n", + "CustomerID Country \n", + "12346.0 United Kingdom 74215 1.04\n", + "12347.0 Iceland 2458 481.21\n", + "12348.0 Finland 2341 178.71\n", + "12349.0 Italy 631 605.10\n", + "12350.0 Norway 197 65.30" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.1.2 Think about what that piece of code does and display the dtype of `UnitPrice`" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "dtype('float64')" + ] + }, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -306,24 +495,703 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Create a scatterplot with the Quantity per UnitPrice by CustomerID for the top 3 Countries" + "##### Step 7.1.3 Pull data from `online_rt`for `CustomerID`s 12346.0 and 12347.0." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "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", + "
InvoiceNoStockCodeDescriptionQuantityInvoiceDateUnitPriceCustomerIDCountry
42896657351122423REGENCY CAKESTAND 3 TIER610/31/11 12:2512.7512347.0Iceland
28663756203222423REGENCY CAKESTAND 3 TIER38/2/11 8:4812.7512347.0Iceland
7226754223722423REGENCY CAKESTAND 3 TIER31/26/11 14:3012.7512347.0Iceland
14830054922222423REGENCY CAKESTAND 3 TIER34/7/11 10:4312.7512347.0Iceland
42896757351123173REGENCY TEAPOT ROSES210/31/11 12:259.9512347.0Iceland
\n", + "
" + ], + "text/plain": [ + " InvoiceNo StockCode Description Quantity \\\n", + "428966 573511 22423 REGENCY CAKESTAND 3 TIER 6 \n", + "286637 562032 22423 REGENCY CAKESTAND 3 TIER 3 \n", + "72267 542237 22423 REGENCY CAKESTAND 3 TIER 3 \n", + "148300 549222 22423 REGENCY CAKESTAND 3 TIER 3 \n", + "428967 573511 23173 REGENCY TEAPOT ROSES 2 \n", + "\n", + " InvoiceDate UnitPrice CustomerID Country \n", + "428966 10/31/11 12:25 12.75 12347.0 Iceland \n", + "286637 8/2/11 8:48 12.75 12347.0 Iceland \n", + "72267 1/26/11 14:30 12.75 12347.0 Iceland \n", + "148300 4/7/11 10:43 12.75 12347.0 Iceland \n", + "428967 10/31/11 12:25 9.95 12347.0 Iceland " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + "
InvoiceNoStockCodeDescriptionQuantityInvoiceDateUnitPriceCustomerIDCountry
6161954143123166MEDIUM CERAMIC TOP STORAGE JAR742151/18/11 10:011.0412346.0United Kingdom
\n", + "
" + ], + "text/plain": [ + " InvoiceNo StockCode Description Quantity \\\n", + "61619 541431 23166 MEDIUM CERAMIC TOP STORAGE JAR 74215 \n", + "\n", + " InvoiceDate UnitPrice CustomerID Country \n", + "61619 1/18/11 10:01 1.04 12346.0 United Kingdom " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 7.2 Reinterpreting the initial problem.\n", + "\n", + "To reiterate the question that we were dealing with: \n", + "\"Create a scatterplot with the Quantity per UnitPrice by CustomerID for the top 3 Countries\"\n", + "\n", + "The question is open to a set of different interpretations.\n", + "We need to disambiguate.\n", + "\n", + "We could do a single plot by looking at all the data from the top 3 countries.\n", + "Or we could do one plot per country. To keep things consistent with the rest of the exercise,\n", + "let's stick to the latter oprion. So that's settled.\n", + "\n", + "But \"top 3 countries\" with respect to what? Two answers suggest themselves:\n", + "Total sales volume (i.e. total quantity sold) or total sales (i.e. revenue).\n", + "This exercise goes for sales volume, so let's stick to that.\n", + "\n", + "##### Step 7.2.1 Find out the top 3 countries in terms of sales volume." ] }, { "cell_type": "code", - "execution_count": 201, + "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "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\nIzY2FmMMkydPxmazERMTw7Rp04iNjcVms5GcnAzA3LlzmTJlCi6Xi6ioKNq2bevNYYiIiIjINViM\nMaa6g6gu2dnZ9OjRg7S0NPcNPSJyfcodEc8od6Q20kPLRURERMRjKiZFRERExGMqJkVERETEYyom\nRURERMRjKiZFRERExGMqJkVERETEYyomRURERMRjKiZFRERExGMqJkVERETEYyomRURERMRjKiZF\nRERExGMqJkVERETEY1Zv7ry4uJgZM2Zw/PhxioqKGDt2LPfccw/Tp0/Hx8eHsLAwZs+eDcDatWtZ\ns2YNfn5+jB07lq5du1JQUMDUqVPJycnBbreTlJRESEgIe/fuZeHChVitVjp27Eh8fLw3hyEiIiIi\n1+DVmcmPPvqIkJAQ3nnnHZYvX878+fNZtGgRkydPZuXKlbhcLjZt2sTZs2dZsWIFa9asYfny5SQn\nJ1NUVMTq1atp3rw577zzDv369WPJkiUAzJkzh5dffplVq1axf/9+MjMzvTkMEREREbkGrxaTjzzy\nCBMnTgSgpKQEX19fvvrqKyIjIwGIjo5m+/bt7N+/n4iICKxWK3a7naZNm5KZmUlGRgbR0dHubXfu\n3InD4aCoqIjQ0FAAOnXqxPbt2705DBERERG5Bq8Wk7fccgv169fH4XAwceJEJk2ahDHGvT4gIACH\nw4HT6SQwMNDdXvoZp9OJ3W53b5ubm1um7cp2EREREal6Xr1mEuDkyZPEx8czfPhw+vTpw4svvuhe\n53Q6CQoKwm6343A4rtrudDrdbYGBge4C9IfbXk9KSgqpqamVODKRukG5I+IZ5Y7UFV6dmTx79iwj\nR45k6tSpDBgwAICWLVuyZ88eALZs2UJERARt2rQhIyODwsJCcnNzOXr0KGFhYYSHh5Oeng5Aeno6\nkZGR2O12bDYbWVlZGGPYunUrERER140lISGBI0eOlPlKS0vz3uBFagnljohnlDtSV3h1ZnLZsmVc\nvHiRJUuWsHjxYiwWCzNnzmTBggUUFRXRrFkzevfujcViIS4ujtjYWIwxTJ48GZvNRkxMDNOmTSM2\nNhabzUZycjIAc+fOZcqUKbhcLqKiomjbtq03hyEiIiIi12AxV17EWMdkZ2fTo0cP0tLS3Df0iMj1\nKXdEPKPckdpIDy0XEREREY+pmBQRERERj6mYFBERERGPqZgUEREREY+pmBQRERERj6mYFBERERGP\n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\nvj1ffPEFvXv3Zu/evTRv3vy6n0lISCAhIaFMW3Z2Nj169PBWmOWa/kSHaulX5EbdbLkjUlNUZ+5Y\nLBZaNG3o9X5EoIae5n744Yex2WwMGzaMpKQkEhMTqzukG/LShM46xS1yHROGti13WUREbg41cmbS\nYrEwd+7c6g6jQj5O7lfdIYjUSA8/eBcPP3hXdYchIiLXUSNnJkVERETk5qBiUkREREQ8pmJSRERE\nRDymYlJEREREPKZiUkREREQ8pmJSRERERDymYlJEREREPKZiUkREREQ8pmJSRERERDymYlJERERE\nPKZiUkREREQ8pmJSRERERDymYlJEREREPGatjk6jo6Np2rQpAOHh4UyaNIm9e/eycOFCrFYrHTt2\nJD4+HoDU1FTS09OxWq0kJibStm1bzp8/z5QpUygoKOD2229n0aJF1KtXrzqGIiIiIlKnVXkx+d13\n39GqVSuWLl1apn3OnDmkpqYSGhrK6NGjyczMxOVy8a9//Yt3332XkydPkpCQwHvvvcfixYvp27cv\n/fv357XXXmP16tU8+eSTVT0UERERkTqvyk9zHzx4kFOnTjFixAjGjBnDsWPHcDgcFBUVERoaCkCn\nTp3Ytm0bGRkZREVFAXDHHXfgcrk4d+4c//73v+ncuTNweZZz586dVT0MEREREcHLM5Pvvfceb731\nVpm22bNnM2bMGH7961+TkZHBlClTWLx4MXa73b1NQEAAWVlZ+Pv7ExwcXKbd4XDgdDoJDAx0t+Xm\n5noUX0lJCQD/+7//69HnRX6Kn//851it1XKlyU+m3JHqpNwR8Yy3cser2Th48GAGDx5cpi0/Px9f\nX18AIiIiOHPmjLtILOV0OmnQoAF+fn44nU53u8PhICgoyL19w4YNyxSW5UlJSSE1NfWq6x5//HFP\nhifyk6Slpbln429myh252Sh3RDzjrdyp8j/tUlNTCQ4O5ve//z2ZmZnccccd2O12bDYbWVlZhIaG\nsnXrVuLj4/H19eWll17iqaee4uTJkxhjCA4Opn379mzZsoX+/fuzZcsWIiMjr9tvQkICCQkJZdry\n8/Np164dGzdudBe43tKjRw/S0tK82kdV9lOVfdW2fkr7+vnPf14lff1Uyp2a21dt66e0L+VOxdTW\nn39tGlNtyZ0qLyZHjx7N1KlT3XdoL1q0CLh8A86UKVNwuVxERUXRtm1b4PLs5dChQzHG8NxzzwEw\nbtw4pk2bxtq1awkJCSE5OdmjWPz9/QFo0qRJJYzs+qrqL+mq/Iu9to2pKo9dTT1NB8qdmtRXbesH\nlDs3ojb+/GvbmGpD7lR5RgYFBbFs2bIftbdr1441a9b8qD0+Pt79mKBSjRo1Yvny5V6LUUREREQq\nRg8tFxERERGPqZgUEREREY/5zpkzZ051B1HdHnroIfVzk/dV2/qp6r68pbb9XGrjz7+29VPVfXlL\nbfu51Maff23rx5t9WYwxxit7FhEREZFaT6e5RURERMRjKiZFRERExGMqJkVERETEYyomRURERMRj\nKiZFRERExGM1951U5YiOjqZp06YAhIeHM2nSJPbu3cvChQuxWq107NjR/Vad1NRU96sdExMTadu2\nLefPn2fKlCkUFBRw++23s2jRIurVq8fnn3/OkiVLsFqtDBo0iCFDhlw3FmMMc+bM4ciRI9hsNp5/\n/nkaN25c4bEMHDgQu90OXH7l0tixY5k+fTo+Pj6EhYUxe/ZsANauXcuaNWvw8/Nj7NixdO3alYKC\nAqZOnUpOTg52u52kpCRCQkLKHIu7776bb7/9lhUrVvDdd99V6r6vPM6zZs1iw4YN3HvvvQwbNozk\n5GT3zygmJoZHHnnkJ/dTXFzMwIEDyc7OxhhDQkICPXv2rPQxjR07lhkzZrBnzx4uXLjAz3/+c8aO\nHeuVMV3rd9RblDvKHeWOZ5Q7yp06nTumlvn222/N2LFjf9Ter18/k5WVZYwxZtSoUebw4cPm0KFD\n5oknnjDGGHPixAkzaNAgY4wx8+fPN+vWrTPGGLNs2TLz5ptvmqKiIvPwww+b3NxcU1hYaAYNGmRy\ncnKuG8/GjRvN9OnTjTHG7N2714wbN67CYykoKDADBgwo0zZ27FizZ88eY4wxzz33nPnss8/MmTNn\nzKOPPmqKiopMbm6uefTRR01hYaF54403TEpKijHGmE8++cQsWLCgzLH461//asLDw03fvn0rfd9X\nHucFCxaY+++/3wwdOtScOHHCdOvWzbzxxhtlxlUZ/aSkpJguXboYY4w5cuSIadWqlVfGlJqaav74\nxz+aJ554wly4cMF07tzZa2O61u+oNyh3lDvGKHc8odxR7hhTt3On1p3mPnjwIKdOnWLEiBGMGTOG\nY8eO4XA4KCoqcr9MvVOnTmzbto2MjAyioqIAuOOOO3C5XJw7d45///vfdO7cGbj81+aOHTv473//\nS5MmTbDb7fj5+REREcGePXuuG09GRoZ7X+3atePgwYMVHktmZiZ5eXmMHDmSJ598kn379vHVV18R\nGRnpjm379u3s37+fiIgIrFYrdrudpk2bkpmZSUZGBtHR0e5td+7cWeZYNGnShCeeeILc3FwADh06\nVGn7vvI45+XlERsb6z7OeXl5fPbZZwwfPpxZs2bhdDorpZ/69eu7/2q/7bbb3L8PlT0mX19fWrZs\nSVRUFC6Xi3r16nltTFf7HT1//nyFf4duhHJHuQPKHU8od5Q7ULdzp0YXk++99x59+/Yt83X77bcz\nZswY3n77bUaPHs2UKVNwOp3uKXuAgIAAcnNzcTqdBAYGlml3OBxl2svbtjQZyuNwOMp8zmq14nK5\nKjQ+f39/Ro4cyeuvv86cOXOYMmUK5opnzF8tXoD69eu720vHfeU4StsefvhhAgICKCkpAajUfV/Z\n3rhx4zL7CA4OZuTIkaxcuZLGjRuTmpr6o+PkST+FhYU0atQIh8PBxIkTady4cZljXVljys/Pp6io\nCJvNxsSJE3n66ae9NqZrxfpTKXeUO1e2K3cqTrmj3LmyXblzWY0uJgcPHszHH39c5qt169Z0794d\ngIiICM6cOeP+YZZyOp00aNAAu92O0+l0tzscDoKCgspsX3pQ7Xb7j/YRFBR03Rh/2IfL5cLHp2KH\nvWnTpvz2t791fx8cHExOTs6PYrhWbFf2XTqOHx6LS5cuYbVevnT2yrgqY99XHue8vDx3u81mo337\n9gD07NmTzMxMAgMDK6WfkydP8sQTTzBgwAD8/f3x9fX1yphKSkr4P//n/zBgwAD69Onj1TFd+fvz\nwyT3lHJHufPDfpQ7FaPcUe78sB/lTg0vJq8mNTWVt956C7g8XX/HHXdgt9ux2WxkZWVhjGHr1q1E\nREQQHh7O1q1bMcZw4sQJjDEEBwfTvn17tmzZAsCWLVuIjIx0XzB88eJFCgsL2bNnD/fff/9142nf\nvj3p6ekA7N27l+bNm1d4LO+//z5JSUkAnDp1CofDQVRUFLt373bHFhERQZs2bcjIyKCwsJDc3FyO\nHj1KWFgY4eHh7r7T09OJjIz80bHYs2cPAQEBANx3333uUyiVse8rj/OePXvcx/nbb78lKysLgB07\ndtCqVatK6eeuu+7irbfeYsqUKTz00EMYY2jVqlWlj6lZs2Z88MEHNGrUiP79+3t1TNf6HfUG5Y5y\nR7njGeWOcqeu506tezf3xYsXmTp1Knl5eVitVp577jnuuusu9u3bx8KFC3G5XERFRfH0008Dl/8R\n2LJlC8YYEhMTad++PTk5OUybNo28vDxCQkJITk7G39+fzZs3k5qaijGGwYMHExMTc914zBV31QEs\nWrSIu+66q0JjKSoqIjExkRMnTuDj48PUqVMJDg5m1qxZFBUV0axZMxYsWIDFYuHdd99lzZo1GGMY\nN24cPXv2JD8/n2nTpnHmzBlsNhvJyck0atSI/fv38/zzz+NyuWjbti2HDh3ib3/7G8eOHePZZ5+t\ntH1feZwXLlzIu+++yz333MOwYcN477338PPz47bbbmPevHkEBAT85H6ef/553n//fSwWC8YYmjRp\nQlJSEgsWLKjUMTmdTv7xj39Qr14993UkzzzzDOvXr6/0MV3rd9QblDvKHeWOZ5Q7yp26nju1rpgU\nERERkapT605zi4iIiEjVUTEpIiIiIh5TMSkiIiIiHlMxKSIiIiIeUzEpIiIiIh5TMSkiIiIiHlMx\nWcdcunSJpKQkevfuTf/+/YmLi2PXrl2V2kd2djYzZ84ELr+j9NlnnwVg7dq1bNiwoVL7Eqkqyh0R\nzyh3aj9rdQcgVWv8+PHcfffdfPLJJ/j6+nL48GHGjBnDK6+8QkRERKX0cfz4cfdT+Vu3bk3r1q0B\n+PLLL3nooYcqpQ+RqqbcEfGMcqf208xkHZKRkcGxY8dITEx0vzu0ZcuWjBs3jsWLFxMXF+d+BdTx\n48fd75r9z3/+w4gRIxgyZAjdu3dn5cqVwOUn5D/77LPExcXRs2dPli1bBsDzzz/PwYMHmT9/Prt3\n7yYuLo4dO3bw+eef8+c//5m0tDQ6dOjgfvfn8ePHefTRR6v6cIhUmHJHxDPKnbpBxWQdcuDAAVq2\nbFnmJfQADzzwAPv27cNisZRpL11+7733+MMf/sC7777LW2+9xcsvv+ze5j//+Q9vvvkma9euZdmy\nZTgcDmbNmkXr1q3dpxksFgu/+tWv6N69OxMmTKBHjx5069aNTz/9FIAPP/yQ/v37e3PoIj+JckfE\nM8qdukHFpJCfn4/L5brm+unTp1NQUMBrr73Gq6++yqVLl9zrHnroIXx9fWnYsCHBwcHk5uZWqM+B\nAweyfv16AP7+97/Tr1+/nzYIkWqg3BHxjHKndlExWYe0bt2aw4cPU1JSAsC5c+cA2LdvH61bt3a/\nqB6guLjY/bmJEyeyadMm7rnnHiZNmlRmnzabrcxyRV/1/sADD3Dq1Ck+++wzGjduzG233ebxuES8\nTbkj4hnlTt2gYrIOiYyM5K677iIpKYni4mLWrVvHsGHDWLp0KePHjyckJISvv/4agM8++8z9ue3b\ntzNhwgS6d+/O7t27gfKT19fX1/0Pxw/bi4qK3Mv9+/dnwYIFDBw4sLKGKOIVyh0Rzyh36gYVk3XM\nkiVLAOjTpw8ffvghvr6+3Hnnnfzzn//kqaeeYtWqVQwcOJDCwkL3ZxISEoiJiWHgwIFs27aN0NBQ\nsrOzf7Tv0mtdmjVrxsWLF5k2bVqZ9R07duS1115j48aNAPzmN78hPz+fHj16eGu4IpVGuSPiGeVO\n7WcxFZ0fllotPT2dLl26VFl/xhhWrVrFsWPH3M8GE6mJlDsinlHu1B4qJqVajB8/npMnT/L6668T\nEhJS3eGI1BjKHRHPKHe8R8WkiIiIiHhM10yKiIiIiMdUTIqIiIiIx1RMioiIiIjHVEyKiIiIiMdU\nTIqIiIiIx1RMioiIiIjH/n9LlLW1ZT9UOgAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "Index(['Netherlands', 'EIRE', 'Germany'], dtype='object', name='Country')" ] }, + "execution_count": 9, "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.2.2 \n", + "\n", + "Now that we have the top 3 countries, we can focus on the rest of the problem: \n", + "\"Quantity per UnitPrice by CustomerID\". \n", + "We need to unpack that.\n", + "\n", + "\"by CustomerID\" part is easy. That means we're going to be plotting one dot per CustomerID's on our plot. In other words, we're going to be grouping by CustomerID.\n", + "\n", + "\"Quantity per UnitPrice\" is trickier. Here's what we know: \n", + "*One axis will represent a Quantity assigned to a given customer. This is easy; we can just plot the total Quantity for each customer. \n", + "*The other axis will represent a UnitPrice assigned to a given customer. Remember a single customer can have any number of orders with different prices, so summing up prices isn't quite helpful. Besides it's not quite clear what we mean when we say \"unit price per customer\"; it sounds like price of the customer! A reasonable alternative is that we assign each customer the average amount each has paid per item. So let's settle that question in that manner.\n", + "\n", + "#### Step 7.3 Modify, select and plot data\n", + "##### Step 7.3.1 Add a column to online_rt called `Revenue` calculate the revenue (Quantity * UnitPrice) from each sale.\n", + "We will use this later to figure out an average price per customer." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "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", + "
InvoiceNoStockCodeDescriptionQuantityInvoiceDateUnitPriceCustomerIDCountryRevenue
053636585123AWHITE HANGING HEART T-LIGHT HOLDER612/1/10 8:262.5517850.0United Kingdom15.30
153636571053WHITE METAL LANTERN612/1/10 8:263.3917850.0United Kingdom20.34
253636584406BCREAM CUPID HEARTS COAT HANGER812/1/10 8:262.7517850.0United Kingdom22.00
353636584029GKNITTED UNION FLAG HOT WATER BOTTLE612/1/10 8:263.3917850.0United Kingdom20.34
453636584029ERED WOOLLY HOTTIE WHITE HEART.612/1/10 8:263.3917850.0United Kingdom20.34
\n", + "
" + ], + "text/plain": [ + " InvoiceNo StockCode Description Quantity \\\n", + "0 536365 85123A WHITE HANGING HEART T-LIGHT HOLDER 6 \n", + "1 536365 71053 WHITE METAL LANTERN 6 \n", + "2 536365 84406B CREAM CUPID HEARTS COAT HANGER 8 \n", + "3 536365 84029G KNITTED UNION FLAG HOT WATER BOTTLE 6 \n", + "4 536365 84029E RED WOOLLY HOTTIE WHITE HEART. 6 \n", + "\n", + " InvoiceDate UnitPrice CustomerID Country Revenue \n", + "0 12/1/10 8:26 2.55 17850.0 United Kingdom 15.30 \n", + "1 12/1/10 8:26 3.39 17850.0 United Kingdom 20.34 \n", + "2 12/1/10 8:26 2.75 17850.0 United Kingdom 22.00 \n", + "3 12/1/10 8:26 3.39 17850.0 United Kingdom 20.34 \n", + "4 12/1/10 8:26 3.39 17850.0 United Kingdom 20.34 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.3.2 Group by `CustomerID` and `Country` and find out the average price (`AvgPrice`) each customer spends per unit." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "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", + "
QuantityRevenueAvgPriceCountry
CustomerIDCountry
12426.0Germany258582.732.258643Germany
12427.0Germany533825.801.549343Germany
12468.0Germany366729.541.993279Germany
12471.0Germany821219824.052.414034Germany
12472.0Germany41486572.111.584405Germany
\n", + "
" + ], + "text/plain": [ + " Quantity Revenue AvgPrice Country\n", + "CustomerID Country \n", + "12426.0 Germany 258 582.73 2.258643 Germany\n", + "12427.0 Germany 533 825.80 1.549343 Germany\n", + "12468.0 Germany 366 729.54 1.993279 Germany\n", + "12471.0 Germany 8212 19824.05 2.414034 Germany\n", + "12472.0 Germany 4148 6572.11 1.584405 Germany" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.3.3 Plot" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Step 7.4 What to do now?\n", + "We aren't much better-off than what we started with. The data are still extremely scattered around and don't seem quite informative.\n", + "\n", + "But we shouldn't despair!\n", + "There are two things to realize:\n", + "1) The data seem to be skewed towaards the axes (e.g. we don't have any values where Quantity = 50000 and AvgPrice = 5). So that might suggest a trend.\n", + "2) We have more data! We've only been looking at the data from 3 different countries and they are plotted on different graphs.\n", + "\n", + "So: we should plot the data regardless of `Country` and hopefully see a less scattered graph.\n", + "\n", + "##### Step 7.4.1 Plot the data for each `CustomerID` on a single graph" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Step 7.4.2 Zoom in so we can see that curve more clearly" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 8. Plot a line chart showing revenue (y) per UnitPrice (x).\n", + "\n", + "Did Step 7 give us any insights about the data? Sure! As average price increases, the quantity ordered decreses. But that's hardly surprising. It would be surprising if that wasn't the case!\n", + "\n", + "Nevertheless the rate of drop in quantity is so drastic, it makes me wonder how our revenue changes with respect to item price. It would not be that surprising if it didn't change that much. But it would be interesting to know whether most of our revenue comes from expensive or inexpensive items, and how that relation looks like.\n", + "\n", + "That is what we are going to do now.\n", + "\n", + "#### 8.1 Group `UnitPrice` by intervals of 1 for prices [0,50), and sum `Quantity` and `Revenue`." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "UnitPrice\n", + "(0, 1] 1.107775e+06\n", + "(1, 2] 2.691765e+06\n", + "(2, 3] 2.024143e+06\n", + "(3, 4] 8.651018e+05\n", + "(4, 5] 1.219377e+06\n", + "Name: Revenue, dtype: float64" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 8.3 Plot." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 8.4 Make it look nicer.\n", + "x-axis needs values. \n", + "y-axis isn't that easy to read; show in terms of millions." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -347,10 +1215,11 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [conda root]", "language": "python", - "name": "python2" + "name": "conda-root-py" }, "language_info": { "codemirror_mode": { @@ -362,9 +1231,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/07_Visualization/Tips/Exercises.ipynb b/07_Visualization/Tips/Exercises.ipynb index 6116b3853..24544569c 100644 --- a/07_Visualization/Tips/Exercises.ipynb +++ b/07_Visualization/Tips/Exercises.ipynb @@ -22,9 +22,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -32,7 +30,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/Visualization/Tips/tips.csv). " + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/07_Visualization/Tips/tips.csv). " ] }, { @@ -45,9 +43,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -61,9 +57,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -77,9 +71,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -93,9 +85,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -110,9 +100,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -126,9 +114,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -142,9 +128,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -158,9 +142,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -174,9 +156,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -191,9 +171,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -217,23 +195,23 @@ "metadata": { "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python [default]", + "display_name": "Python 3", "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.7.0" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/07_Visualization/Tips/Exercises_with_code_and_solutions.ipynb b/07_Visualization/Tips/Exercises_with_code_and_solutions.ipynb index a0aecaeec..b78b0f582 100644 --- a/07_Visualization/Tips/Exercises_with_code_and_solutions.ipynb +++ b/07_Visualization/Tips/Exercises_with_code_and_solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Tips" + "# Tips\n", + "\n", + "Check out [Tips Visualization Exercises Video Tutorial](https://youtu.be/oiuKFigW4YM) to watch a data scientist go through the exercises" ] }, { @@ -22,9 +24,7 @@ { "cell_type": "code", "execution_count": 18, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", @@ -45,7 +45,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/Visualization/Tips/tips.csv). " + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/07_Visualization/Tips/tips.csv). " ] }, { @@ -58,9 +58,7 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -155,7 +153,7 @@ } ], "source": [ - "url = 'https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/Visualization/Tips/tips.csv'\n", + "url = 'https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/07_Visualization/Tips/tips.csv'\n", "tips = pd.read_csv(url)\n", "\n", "tips.head()" @@ -171,9 +169,7 @@ { "cell_type": "code", "execution_count": 12, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -277,9 +273,7 @@ { "cell_type": "code", "execution_count": 37, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -313,9 +307,7 @@ { "cell_type": "code", "execution_count": 46, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -353,9 +345,7 @@ { "cell_type": "code", "execution_count": 44, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -392,9 +382,7 @@ { "cell_type": "code", "execution_count": 51, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -421,9 +409,7 @@ { "cell_type": "code", "execution_count": 61, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -450,9 +436,7 @@ { "cell_type": "code", "execution_count": 58, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -479,9 +463,7 @@ { "cell_type": "code", "execution_count": 63, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -514,9 +496,7 @@ { "cell_type": "code", "execution_count": 65, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -555,23 +535,36 @@ ], "metadata": { "kernelspec": { - "display_name": "Python [default]", + "display_name": "Python 3", "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.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/07_Visualization/Tips/Solutions.ipynb b/07_Visualization/Tips/Solutions.ipynb index 15353e0a0..96ce17999 100644 --- a/07_Visualization/Tips/Solutions.ipynb +++ b/07_Visualization/Tips/Solutions.ipynb @@ -22,9 +22,7 @@ { "cell_type": "code", "execution_count": 18, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", @@ -45,7 +43,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/Visualization/Tips/tips.csv). " + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/07_Visualization/Tips/tips.csv). " ] }, { @@ -58,9 +56,7 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -166,9 +162,7 @@ { "cell_type": "code", "execution_count": 12, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -268,9 +262,7 @@ { "cell_type": "code", "execution_count": 37, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -295,9 +287,7 @@ { "cell_type": "code", "execution_count": 46, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -333,9 +323,7 @@ { "cell_type": "code", "execution_count": 44, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -370,9 +358,7 @@ { "cell_type": "code", "execution_count": 51, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -397,9 +383,7 @@ { "cell_type": "code", "execution_count": 61, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -424,9 +408,7 @@ { "cell_type": "code", "execution_count": 58, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -451,9 +433,7 @@ { "cell_type": "code", "execution_count": 63, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -479,9 +459,7 @@ { "cell_type": "code", "execution_count": 65, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -515,23 +493,23 @@ ], "metadata": { "kernelspec": { - "display_name": "Python [default]", + "display_name": "Python 3", "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.7.0" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/07_Visualization/Titanic_Desaster/Exercises.ipynb b/07_Visualization/Titanic_Desaster/Exercises.ipynb index e5a05c630..001f52f7c 100644 --- a/07_Visualization/Titanic_Desaster/Exercises.ipynb +++ b/07_Visualization/Titanic_Desaster/Exercises.ipynb @@ -23,9 +23,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -33,7 +31,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/Visualization/Titanic_Desaster/train.csv). " + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/07_Visualization/Titanic_Desaster/train.csv)" ] }, { @@ -46,9 +44,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -62,9 +58,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -78,9 +72,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -94,9 +86,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -110,9 +100,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -126,9 +114,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -165,9 +151,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.16" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/07_Visualization/Titanic_Desaster/Exercises_code_with_solutions.ipynb b/07_Visualization/Titanic_Desaster/Exercises_code_with_solutions.ipynb index 94aa215c1..ee7a4619c 100644 --- a/07_Visualization/Titanic_Desaster/Exercises_code_with_solutions.ipynb +++ b/07_Visualization/Titanic_Desaster/Exercises_code_with_solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Visualizing the Titanic Disaster" + "# Visualizing the Titanic Disaster\n", + "\n", + "Check out [Titanic Visualization Exercises Video Tutorial](https://youtu.be/CBT0buoF_Ns) to watch a data scientist go through the exercises" ] }, { @@ -23,9 +25,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", @@ -40,7 +40,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/Visualization/Titanic_Desaster/train.csv). " + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/07_Visualization/Titanic_Desaster/train.csv) " ] }, { @@ -53,9 +53,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -205,9 +203,7 @@ { "cell_type": "code", "execution_count": 5, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -364,9 +360,7 @@ { "cell_type": "code", "execution_count": 24, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -432,9 +426,7 @@ { "cell_type": "code", "execution_count": 67, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -480,9 +472,7 @@ { "cell_type": "code", "execution_count": 68, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -509,9 +499,7 @@ { "cell_type": "code", "execution_count": 48, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -564,23 +552,36 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/07_Visualization/Titanic_Desaster/Solutions.ipynb b/07_Visualization/Titanic_Desaster/Solutions.ipynb index 7824ff8a7..1f6e71784 100644 --- a/07_Visualization/Titanic_Desaster/Solutions.ipynb +++ b/07_Visualization/Titanic_Desaster/Solutions.ipynb @@ -23,9 +23,7 @@ { "cell_type": "code", "execution_count": 80, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", @@ -40,7 +38,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/Visualization/Titanic_Desaster/train.csv). " + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/07_Visualization/Titanic_Desaster/train.csv) " ] }, { @@ -53,9 +51,7 @@ { "cell_type": "code", "execution_count": 23, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -199,9 +195,7 @@ { "cell_type": "code", "execution_count": 22, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -356,9 +350,7 @@ { "cell_type": "code", "execution_count": 24, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -383,9 +375,7 @@ { "cell_type": "code", "execution_count": 67, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -420,9 +410,7 @@ { "cell_type": "code", "execution_count": 68, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -447,9 +435,7 @@ { "cell_type": "code", "execution_count": 93, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -497,9 +483,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.16" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/08_Creating_Series_and_DataFrames/Pokemon/Exercises-with-solutions-and-code.ipynb b/08_Creating_Series_and_DataFrames/Pokemon/Exercises-with-solutions-and-code.ipynb index 52382727c..3345139a1 100644 --- a/08_Creating_Series_and_DataFrames/Pokemon/Exercises-with-solutions-and-code.ipynb +++ b/08_Creating_Series_and_DataFrames/Pokemon/Exercises-with-solutions-and-code.ipynb @@ -58,7 +58,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 3. Assign it to a variable called " + "### Step 3. Assign it to a variable called pokemon" ] }, { diff --git a/08_Creating_Series_and_DataFrames/Pokemon/Exercises.ipynb b/08_Creating_Series_and_DataFrames/Pokemon/Exercises.ipynb index 8a3751399..360204628 100644 --- a/08_Creating_Series_and_DataFrames/Pokemon/Exercises.ipynb +++ b/08_Creating_Series_and_DataFrames/Pokemon/Exercises.ipynb @@ -49,7 +49,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 3. Assign it to a variable called " + "### Step 3. Assign it to a variable called pokemon" ] }, { diff --git a/08_Creating_Series_and_DataFrames/Pokemon/Solutions.ipynb b/08_Creating_Series_and_DataFrames/Pokemon/Solutions.ipynb index 3a0cebbf4..a8cc38601 100644 --- a/08_Creating_Series_and_DataFrames/Pokemon/Solutions.ipynb +++ b/08_Creating_Series_and_DataFrames/Pokemon/Solutions.ipynb @@ -22,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": true }, @@ -49,16 +49,81 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 3. Assign it to a variable called " + "### Step 3. Assign it to a variable called pokemon" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "collapsed": false }, - "outputs": [], + "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", + "
evolutionhpnamepokedextype
0Ivysaur45Bulbasauryesgrass
1Charmeleon39Charmandernofire
2Wartortle44Squirtleyeswater
3Metapod45Caterpienobug
\n", + "
" + ], + "text/plain": [ + " evolution hp name pokedex type\n", + "0 Ivysaur 45 Bulbasaur yes grass\n", + "1 Charmeleon 39 Charmander no fire\n", + "2 Wartortle 44 Squirtle yes water\n", + "3 Metapod 45 Caterpie no bug" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [] }, { @@ -70,11 +135,76 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "collapsed": false }, - "outputs": [], + "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", + "
nametypehpevolutionpokedex
0Bulbasaurgrass45Ivysauryes
1Charmanderfire39Charmeleonno
2Squirtlewater44Wartortleyes
3Caterpiebug45Metapodno
\n", + "
" + ], + "text/plain": [ + " name type hp evolution pokedex\n", + "0 Bulbasaur grass 45 Ivysaur yes\n", + "1 Charmander fire 39 Charmeleon no\n", + "2 Squirtle water 44 Wartortle yes\n", + "3 Caterpie bug 45 Metapod no" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [] }, { @@ -86,11 +216,81 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false }, - "outputs": [], + "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", + "
nametypehpevolutionpokedexplace
0Bulbasaurgrass45Ivysauryespark
1Charmanderfire39Charmeleonnostreet
2Squirtlewater44Wartortleyeslake
3Caterpiebug45Metapodnoforest
\n", + "
" + ], + "text/plain": [ + " name type hp evolution pokedex place\n", + "0 Bulbasaur grass 45 Ivysaur yes park\n", + "1 Charmander fire 39 Charmeleon no street\n", + "2 Squirtle water 44 Wartortle yes lake\n", + "3 Caterpie bug 45 Metapod no forest" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [] }, { @@ -102,11 +302,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "name object\n", + "type object\n", + "hp int64\n", + "evolution object\n", + "pokedex object\n", + "dtype: object" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [] }, { diff --git a/09_Time_Series/Apple_Stock/Exercises-with-solutions-code.ipynb b/09_Time_Series/Apple_Stock/Exercises-with-solutions-code.ipynb index 6191320fd..e2bbb9b0a 100644 --- a/09_Time_Series/Apple_Stock/Exercises-with-solutions-code.ipynb +++ b/09_Time_Series/Apple_Stock/Exercises-with-solutions-code.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Apple Stock" + "# Apple Stock\n", + "\n", + "Check out [Apple Stock Exercises Video Tutorial](https://youtu.be/wpXkR_IZcug) to watch a data scientist go through the exercises" ] }, { @@ -22,9 +24,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", @@ -53,9 +53,7 @@ { "cell_type": "code", "execution_count": 32, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -160,9 +158,7 @@ { "cell_type": "code", "execution_count": 33, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -196,9 +192,7 @@ { "cell_type": "code", "execution_count": 34, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -232,9 +226,7 @@ { "cell_type": "code", "execution_count": 35, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -342,9 +334,7 @@ { "cell_type": "code", "execution_count": 36, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -372,9 +362,7 @@ { "cell_type": "code", "execution_count": 39, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -480,9 +468,7 @@ { "cell_type": "code", "execution_count": 48, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -590,9 +576,7 @@ { "cell_type": "code", "execution_count": 65, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -619,9 +603,7 @@ { "cell_type": "code", "execution_count": 66, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -650,9 +632,7 @@ { "cell_type": "code", "execution_count": 81, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -694,23 +674,36 @@ "metadata": { "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python [default]", + "display_name": "Python 3", "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.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/09_Time_Series/Getting_Financial_Data/Exercises.ipynb b/09_Time_Series/Getting_Financial_Data/Exercises.ipynb index aafa0b4b4..2cf792c43 100644 --- a/09_Time_Series/Getting_Financial_Data/Exercises.ipynb +++ b/09_Time_Series/Getting_Financial_Data/Exercises.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Getting Financial Data - Google Finance" + "# Getting Financial Data - Pandas Datareader" ] }, { @@ -22,9 +22,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -32,15 +30,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Create your time range (start and end variables). The start date should be 01/01/2015 and the end should today (whatever your today is)" + "### Step 2. Create your time range (start and end variables). The start date should be 01/01/2015 and the end should today (whatever your today is)." ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -48,15 +44,24 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 3. Select the Apple, Tesla, Twitter, IBM, LinkedIn stocks symbols and assign them to a variable called stocks" + "### Step 3. Get an API key for one of the APIs that are supported by Pandas Datareader, preferably for AlphaVantage.\n", + "\n", + "If you do not have an API key for any of the supported APIs, it is easiest to get one for [AlphaVantage](https://www.alphavantage.co/support/#api-key). (Note that the API key is shown directly after the signup. You do *not* receive it via e-mail.)\n", + "\n", + "(For a full list of the APIs that are supported by Pandas Datareader, [see here](https://pydata.github.io/pandas-datareader/readers/index.html). As the APIs are provided by third parties, this list may change.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 4. Use Pandas Datarader to read the daily time series for the Apple stock (ticker symbol AAPL) between 01/01/2015 and today, assign it to df_apple and print it." ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -64,15 +69,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 4. Read the data from google, assign to df and print it" + "### Step 5. Add a new column \"stock\" to the dataframe and add the ticker symbol" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -80,15 +83,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 5. What is the type of structure of df ?" + "### Step 6. Repeat the two previous steps for a few other stocks, always creating a new dataframe: Tesla, IBM and Microsoft. (Ticker symbols TSLA, IBM and MSFT.)" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -96,16 +97,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Print all the Items axis values\n", - "#### To learn more about the Panel structure go to [documentation](http://pandas.pydata.org/pandas-docs/stable/dsintro.html#panel) " + "### Step 7. Combine the four separate dataFrames into one combined dataFrame df that holds the information for all four stocks" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -113,15 +111,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 7. Good, now we know the data avaiable. Create a dataFrame called vol, with the Volume values." + "### Step 8. Shift the stock column into the index (making it a multi-level index consisting of the ticker symbol and the date)." ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -129,17 +125,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 8. Aggregate the data of Volume to weekly\n", - "#### Hint: Be careful to not sum data from the same week of 2015 and other years." + "### Step 7. Create a dataFrame called vol, with the volume values." ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false, - "scrolled": true - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -147,15 +139,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. Find all the volume traded in the year of 2015" + "### Step 8. Aggregate the data of volume to weekly.\n", + "Hint: Be careful to not sum data from the same week of 2015 and other years." ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -163,38 +154,36 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### BONUS: Create your own question and answer it." + "### Step 9. Find all the volume traded in the year of 2015" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/09_Time_Series/Getting_Financial_Data/Exercises_with_solutions_and_code.ipynb b/09_Time_Series/Getting_Financial_Data/Exercises_with_solutions_and_code.ipynb deleted file mode 100644 index 2cdbb206a..000000000 --- a/09_Time_Series/Getting_Financial_Data/Exercises_with_solutions_and_code.ipynb +++ /dev/null @@ -1,485 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Getting Financial Data - Google Finance" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Introduction:\n", - "\n", - "This time you will get data from a website.\n", - "\n", - "\n", - "### Step 1. Import the necessary libraries" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "import pandas as pd\n", - "\n", - "# package to extract data from various Internet sources into a DataFrame\n", - "# make sure you have it installed\n", - "from pandas_datareader import data, wb\n", - "\n", - "# package for dates\n", - "import datetime as dt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 2. Create your time range (start and end variables). The start date should be 01/01/2015 and the end should today (whatever your today is)" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "datetime.datetime(2015, 1, 1, 0, 0)" - ] - }, - "execution_count": 75, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "start = dt.datetime(2015, 1, 1)\n", - "\n", - "end = dt.datetime.today()\n", - "\n", - "start" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 3. Select the Apple, Tesla, Twitter, IBM, LinkedIn stocks symbols and assign them to a variable called stocks" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "stocks = ['AAPL', 'TSLA', 'IBM', 'LNKD']" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 4. Read the data from google, assign to df and print it" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "Dimensions: 5 (items) x 399 (major_axis) x 4 (minor_axis)\n", - "Items axis: Open to Volume\n", - "Major_axis axis: 2015-01-02 00:00:00 to 2016-08-02 00:00:00\n", - "Minor_axis axis: AAPL to TSLA" - ] - }, - "execution_count": 77, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = web.DataReader(stocks, 'google', start, end)\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 5. What is the type of structure of df ?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# 'pandas.core.panel.Panel'" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 6. Print all the Items axis values\n", - "#### To learn more about the Panel structure go to [documentation](http://pandas.pydata.org/pandas-docs/stable/dsintro.html#panel) " - ] - }, - { - "cell_type": "code", - "execution_count": 120, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Index([u'Open', u'High', u'Low', u'Close', u'Volume'], dtype='object')" - ] - }, - "execution_count": 120, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.items" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 7. Good, now we know the data avaiable. Create a dataFrame called vol, with the Volume values." - ] - }, - { - "cell_type": "code", - "execution_count": 122, - "metadata": { - "collapsed": false - }, - "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", - "
AAPLIBMLNKDTSLA
Date
2015-01-0253204626.05525466.01203743.04764443.0
2015-01-0564285491.04880389.01400562.05368477.0
2015-01-0665797116.06146712.02006546.06261936.0
2015-01-0740105934.04701839.0985016.02968390.0
2015-01-0859364547.04241113.01293955.03442509.0
\n", - "
" - ], - "text/plain": [ - " AAPL IBM LNKD TSLA\n", - "Date \n", - "2015-01-02 53204626.0 5525466.0 1203743.0 4764443.0\n", - "2015-01-05 64285491.0 4880389.0 1400562.0 5368477.0\n", - "2015-01-06 65797116.0 6146712.0 2006546.0 6261936.0\n", - "2015-01-07 40105934.0 4701839.0 985016.0 2968390.0\n", - "2015-01-08 59364547.0 4241113.0 1293955.0 3442509.0" - ] - }, - "execution_count": 122, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "vol = df['Volume']\n", - "vol.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 8. Aggregate the data of Volume to weekly\n", - "#### Hint: Be careful to not sum data from the same week of 2015 and other years." - ] - }, - { - "cell_type": "code", - "execution_count": 132, - "metadata": { - "collapsed": false, - "scrolled": true - }, - "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", - "
AAPLIBMLNKDTSLA
weekyear
1201553204626.05525466.01203743.04764443.0
2016343422014.025233098.06630485.020967926.0
22015283252615.024458400.07203125.022709607.0
2016302072797.029379214.09160521.022997290.0
32015304226647.023263206.07084168.030799137.0
\n", - "
" - ], - "text/plain": [ - " AAPL IBM LNKD TSLA\n", - "week year \n", - "1 2015 53204626.0 5525466.0 1203743.0 4764443.0\n", - " 2016 343422014.0 25233098.0 6630485.0 20967926.0\n", - "2 2015 283252615.0 24458400.0 7203125.0 22709607.0\n", - " 2016 302072797.0 29379214.0 9160521.0 22997290.0\n", - "3 2015 304226647.0 23263206.0 7084168.0 30799137.0" - ] - }, - "execution_count": 132, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "vol['week'] = vol.index.week\n", - "vol['year'] = vol.index.year\n", - "\n", - "week = vol.groupby(['week','year']).sum()\n", - "week.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 9. Find all the volume traded in the year of 2015" - ] - }, - { - "cell_type": "code", - "execution_count": 131, - "metadata": { - "collapsed": false - }, - "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", - "
AAPLIBMLNKDTSLA
year
20151.301994e+101.100959e+09440376163.01.085839e+09
20166.081474e+096.585250e+08453233878.07.540962e+08
\n", - "
" - ], - "text/plain": [ - " AAPL IBM LNKD TSLA\n", - "year \n", - "2015 1.301994e+10 1.100959e+09 440376163.0 1.085839e+09\n", - "2016 6.081474e+09 6.585250e+08 453233878.0 7.540962e+08" - ] - }, - "execution_count": 131, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "del vol['week']\n", - "vol['year'] = vol.index.year\n", - "\n", - "year = vol.groupby(['year']).sum()\n", - "year" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### BONUS: Create your own question and answer it." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.11" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/09_Time_Series/Getting_Financial_Data/Solutions.ipynb b/09_Time_Series/Getting_Financial_Data/Solutions.ipynb index cad558f8d..9f1693e12 100644 --- a/09_Time_Series/Getting_Financial_Data/Solutions.ipynb +++ b/09_Time_Series/Getting_Financial_Data/Solutions.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Getting Financial Data - Google Finance" + "# Getting Financial Data - Pandas Datareader" ] }, { @@ -21,17 +21,16 @@ }, { "cell_type": "code", - "execution_count": 30, - "metadata": { - "collapsed": false - }, + "execution_count": 1, + "metadata": {}, "outputs": [], "source": [ + "import numpy as np\n", "import pandas as pd\n", "\n", "# package to extract data from various Internet sources into a DataFrame\n", "# make sure you have it installed\n", - "from pandas_datareader import data, wb\n", + "import pandas_datareader.data as web\n", "\n", "# package for dates\n", "import datetime as dt" @@ -41,15 +40,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 2. Create your time range (start and end variables). The start date should be 01/01/2015 and the end should today (whatever your today is)" + "### Step 2. Create your time range (start and end variables). The start date should be 01/01/2015 and the end should today (whatever your today is)." ] }, { "cell_type": "code", - "execution_count": 75, - "metadata": { - "collapsed": false - }, + "execution_count": 2, + "metadata": {}, "outputs": [ { "data": { @@ -57,7 +54,7 @@ "datetime.datetime(2015, 1, 1, 0, 0)" ] }, - "execution_count": 75, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -68,23 +65,165 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 3. Select the Apple, Tesla, Twitter, IBM, LinkedIn stocks symbols and assign them to a variable called stocks" + "### Step 3. Get an API key for one of the APIs that are supported by Pandas Datareader, preferably for AlphaVantage.\n", + "\n", + "If you do not have an API key for any of the supported APIs, it is easiest to get one for [AlphaVantage](https://www.alphavantage.co/support/#api-key). (Note that the API key is shown directly after the signup. You do *not* receive it via e-mail.)\n", + "\n", + "(For a full list of the APIs that are supported by Pandas Datareader, [see here](https://pydata.github.io/pandas-datareader/readers/index.html). As the APIs are provided by third parties, this list may change.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 4. Use Pandas Datarader to read the daily time series for the Apple stock (ticker symbol AAPL) between 01/01/2015 and today, assign it to df_apple and print it." ] }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": false - }, + "execution_count": 3, + "metadata": {}, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
openhighlowclosevolume
2015-01-02111.3900111.4400107.350109.3353204626
2015-01-05108.2900108.6500105.410106.2564285491
2015-01-06106.5400107.4300104.630106.2665797116
2015-01-07107.2000108.2000106.695107.7540105934
2015-01-08109.2300112.1500108.700111.8959364547
..................
2020-08-24514.7900515.1400495.745503.4386484442
2020-08-25498.7900500.7172492.210499.3052873947
2020-08-26504.7165507.9700500.330506.0940755567
2020-08-27508.5700509.9400495.330500.0438888096
2020-08-28504.0500505.7700498.310499.2346907479
\n", + "

1425 rows × 5 columns

\n", + "
" + ], "text/plain": [ - "['AAPL', 'TSLA', 'IBM', 'LNKD']" + " open high low close volume\n", + "2015-01-02 111.3900 111.4400 107.350 109.33 53204626\n", + "2015-01-05 108.2900 108.6500 105.410 106.25 64285491\n", + "2015-01-06 106.5400 107.4300 104.630 106.26 65797116\n", + "2015-01-07 107.2000 108.2000 106.695 107.75 40105934\n", + "2015-01-08 109.2300 112.1500 108.700 111.89 59364547\n", + "... ... ... ... ... ...\n", + "2020-08-24 514.7900 515.1400 495.745 503.43 86484442\n", + "2020-08-25 498.7900 500.7172 492.210 499.30 52873947\n", + "2020-08-26 504.7165 507.9700 500.330 506.09 40755567\n", + "2020-08-27 508.5700 509.9400 495.330 500.04 38888096\n", + "2020-08-28 504.0500 505.7700 498.310 499.23 46907479\n", + "\n", + "[1425 rows x 5 columns]" ] }, - "execution_count": 1, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -95,27 +234,166 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 4. Read the data from google, assign to df and print it" + "### Step 5. Add a new column \"stock\" to the dataframe and add the ticker symbol" ] }, { "cell_type": "code", - "execution_count": 77, - "metadata": { - "collapsed": false - }, + "execution_count": 4, + "metadata": {}, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
openhighlowclosevolumestock
2015-01-02111.3900111.4400107.350109.3353204626AAPL
2015-01-05108.2900108.6500105.410106.2564285491AAPL
2015-01-06106.5400107.4300104.630106.2665797116AAPL
2015-01-07107.2000108.2000106.695107.7540105934AAPL
2015-01-08109.2300112.1500108.700111.8959364547AAPL
.....................
2020-08-24514.7900515.1400495.745503.4386484442AAPL
2020-08-25498.7900500.7172492.210499.3052873947AAPL
2020-08-26504.7165507.9700500.330506.0940755567AAPL
2020-08-27508.5700509.9400495.330500.0438888096AAPL
2020-08-28504.0500505.7700498.310499.2346907479AAPL
\n", + "

1425 rows × 6 columns

\n", + "
" + ], "text/plain": [ - "\n", - "Dimensions: 5 (items) x 399 (major_axis) x 4 (minor_axis)\n", - "Items axis: Open to Volume\n", - "Major_axis axis: 2015-01-02 00:00:00 to 2016-08-02 00:00:00\n", - "Minor_axis axis: AAPL to TSLA" + " open high low close volume stock\n", + "2015-01-02 111.3900 111.4400 107.350 109.33 53204626 AAPL\n", + "2015-01-05 108.2900 108.6500 105.410 106.25 64285491 AAPL\n", + "2015-01-06 106.5400 107.4300 104.630 106.26 65797116 AAPL\n", + "2015-01-07 107.2000 108.2000 106.695 107.75 40105934 AAPL\n", + "2015-01-08 109.2300 112.1500 108.700 111.89 59364547 AAPL\n", + "... ... ... ... ... ... ...\n", + "2020-08-24 514.7900 515.1400 495.745 503.43 86484442 AAPL\n", + "2020-08-25 498.7900 500.7172 492.210 499.30 52873947 AAPL\n", + "2020-08-26 504.7165 507.9700 500.330 506.09 40755567 AAPL\n", + "2020-08-27 508.5700 509.9400 495.330 500.04 38888096 AAPL\n", + "2020-08-28 504.0500 505.7700 498.310 499.23 46907479 AAPL\n", + "\n", + "[1425 rows x 6 columns]" ] }, - "execution_count": 77, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -126,42 +404,180 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 5. What is the type of structure of df ?" + "### Step 6. Repeat the two previous steps for a few other stocks, always creating a new dataframe: Tesla, IBM and Microsoft. (Ticker symbols TSLA, IBM and MSFT.)" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, + "execution_count": 5, + "metadata": {}, "outputs": [], - "source": [ - "# 'pandas.core.panel.Panel'" - ] + "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 6. Print all the Items axis values\n", - "#### To learn more about the Panel structure go to [documentation](http://pandas.pydata.org/pandas-docs/stable/dsintro.html#panel) " + "### Step 7. Combine the four separate dataFrames into one combined dataFrame df that holds the information for all four stocks" ] }, { "cell_type": "code", - "execution_count": 120, - "metadata": { - "collapsed": false - }, + "execution_count": 6, + "metadata": {}, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
openhighlowclosevolumestock
2015-01-02111.39111.440107.350109.3353204626AAPL
2015-01-05108.29108.650105.410106.2564285491AAPL
2015-01-06106.54107.430104.630106.2665797116AAPL
2015-01-07107.20108.200106.695107.7540105934AAPL
2015-01-08109.23112.150108.700111.8959364547AAPL
.....................
2020-08-24214.79215.520212.430213.6925460147MSFT
2020-08-25213.10216.610213.100216.4723043696MSFT
2020-08-26217.88222.090217.360221.1539600828MSFT
2020-08-27222.89231.150219.400226.5857602195MSFT
2020-08-28228.18230.644226.580228.9126292896MSFT
\n", + "

5700 rows × 6 columns

\n", + "
" + ], "text/plain": [ - "Index([u'Open', u'High', u'Low', u'Close', u'Volume'], dtype='object')" + " open high low close volume stock\n", + "2015-01-02 111.39 111.440 107.350 109.33 53204626 AAPL\n", + "2015-01-05 108.29 108.650 105.410 106.25 64285491 AAPL\n", + "2015-01-06 106.54 107.430 104.630 106.26 65797116 AAPL\n", + "2015-01-07 107.20 108.200 106.695 107.75 40105934 AAPL\n", + "2015-01-08 109.23 112.150 108.700 111.89 59364547 AAPL\n", + "... ... ... ... ... ... ...\n", + "2020-08-24 214.79 215.520 212.430 213.69 25460147 MSFT\n", + "2020-08-25 213.10 216.610 213.100 216.47 23043696 MSFT\n", + "2020-08-26 217.88 222.090 217.360 221.15 39600828 MSFT\n", + "2020-08-27 222.89 231.150 219.400 226.58 57602195 MSFT\n", + "2020-08-28 228.18 230.644 226.580 228.91 26292896 MSFT\n", + "\n", + "[5700 rows x 6 columns]" ] }, - "execution_count": 120, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -172,31 +588,46 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 7. Good, now we know the data avaiable. Create a dataFrame called vol, with the Volume values." + "### Step 8. Shift the stock column into the index (making it a multi-level index consisting of the ticker symbol and the date)." ] }, { "cell_type": "code", - "execution_count": 122, - "metadata": { - "collapsed": false - }, + "execution_count": 7, + "metadata": {}, "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", @@ -206,54 +637,127 @@ " \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", + " \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", "
AAPLIBMLNKDTSLAopenhighlowclosevolume
Datestock
2015-01-0253204626.05525466.01203743.04764443.0AAPL111.39111.440107.350109.3353204626
2015-01-0564285491.04880389.01400562.05368477.0AAPL108.29108.650105.410106.2564285491
2015-01-0665797116.06146712.02006546.06261936.0AAPL106.54107.430104.630106.2665797116
2015-01-0740105934.04701839.0985016.02968390.0AAPL107.20108.200106.695107.7540105934
2015-01-0859364547.04241113.01293955.03442509.0AAPL109.23112.150108.700111.8959364547
.....................
2020-08-24MSFT214.79215.520212.430213.6925460147
2020-08-25MSFT213.10216.610213.100216.4723043696
2020-08-26MSFT217.88222.090217.360221.1539600828
2020-08-27MSFT222.89231.150219.400226.5857602195
2020-08-28MSFT228.18230.644226.580228.9126292896
\n", + "

5700 rows × 5 columns

\n", "
" ], "text/plain": [ - " AAPL IBM LNKD TSLA\n", - "Date \n", - "2015-01-02 53204626.0 5525466.0 1203743.0 4764443.0\n", - "2015-01-05 64285491.0 4880389.0 1400562.0 5368477.0\n", - "2015-01-06 65797116.0 6146712.0 2006546.0 6261936.0\n", - "2015-01-07 40105934.0 4701839.0 985016.0 2968390.0\n", - "2015-01-08 59364547.0 4241113.0 1293955.0 3442509.0" + " open high low close volume\n", + " stock \n", + "2015-01-02 AAPL 111.39 111.440 107.350 109.33 53204626\n", + "2015-01-05 AAPL 108.29 108.650 105.410 106.25 64285491\n", + "2015-01-06 AAPL 106.54 107.430 104.630 106.26 65797116\n", + "2015-01-07 AAPL 107.20 108.200 106.695 107.75 40105934\n", + "2015-01-08 AAPL 109.23 112.150 108.700 111.89 59364547\n", + "... ... ... ... ... ...\n", + "2020-08-24 MSFT 214.79 215.520 212.430 213.69 25460147\n", + "2020-08-25 MSFT 213.10 216.610 213.100 216.47 23043696\n", + "2020-08-26 MSFT 217.88 222.090 217.360 221.15 39600828\n", + "2020-08-27 MSFT 222.89 231.150 219.400 226.58 57602195\n", + "2020-08-28 MSFT 228.18 230.644 226.580 228.91 26292896\n", + "\n", + "[5700 rows x 5 columns]" ] }, - "execution_count": 122, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -264,95 +768,124 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 8. Aggregate the data of Volume to weekly\n", - "#### Hint: Be careful to not sum data from the same week of 2015 and other years." + "### Step 7. Create a dataFrame called vol, with the volume values." ] }, { "cell_type": "code", - "execution_count": 132, - "metadata": { - "collapsed": false, - "scrolled": true - }, + "execution_count": 8, + "metadata": {}, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
AAPLIBMLNKDTSLAvolume
weekyearstock
1201553204626.05525466.01203743.04764443.02015-01-02AAPL53204626
2016343422014.025233098.06630485.020967926.02015-01-05AAPL64285491
22015283252615.024458400.07203125.022709607.02015-01-06AAPL65797116
2016302072797.029379214.09160521.022997290.02015-01-07AAPL40105934
32015304226647.023263206.07084168.030799137.02015-01-08AAPL59364547
.........
2020-08-24MSFT25460147
2020-08-25MSFT23043696
2020-08-26MSFT39600828
2020-08-27MSFT57602195
2020-08-28MSFT26292896
\n", + "

5700 rows × 1 columns

\n", "
" ], "text/plain": [ - " AAPL IBM LNKD TSLA\n", - "week year \n", - "1 2015 53204626.0 5525466.0 1203743.0 4764443.0\n", - " 2016 343422014.0 25233098.0 6630485.0 20967926.0\n", - "2 2015 283252615.0 24458400.0 7203125.0 22709607.0\n", - " 2016 302072797.0 29379214.0 9160521.0 22997290.0\n", - "3 2015 304226647.0 23263206.0 7084168.0 30799137.0" + " volume\n", + " stock \n", + "2015-01-02 AAPL 53204626\n", + "2015-01-05 AAPL 64285491\n", + "2015-01-06 AAPL 65797116\n", + "2015-01-07 AAPL 40105934\n", + "2015-01-08 AAPL 59364547\n", + "... ...\n", + "2020-08-24 MSFT 25460147\n", + "2020-08-25 MSFT 23043696\n", + "2020-08-26 MSFT 39600828\n", + "2020-08-27 MSFT 57602195\n", + "2020-08-28 MSFT 26292896\n", + "\n", + "[5700 rows x 1 columns]" ] }, - "execution_count": 132, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -363,31 +896,45 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 9. Find all the volume traded in the year of 2015" + "### Step 8. Aggregate the data of volume to weekly.\n", + "Hint: Be careful to not sum data from the same week of 2015 and other years." ] }, { "cell_type": "code", - "execution_count": 131, - "metadata": { - "collapsed": false - }, + "execution_count": 9, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -396,31 +943,109 @@ " \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", "
stockAAPLIBMLNKDMSFTTSLA
yearweek
20151.301994e+101.100959e+09440376163.01.085839e+0920151532046265525341279138524764443
22828681872444036015859662422622034
33042266472327205615708813630799137
41987370413123079713735263216215501
54658426843292730743778677815720217
..................
2020312118986092001057814937242261152261
322508525551770169721759895037091084
332354744731863465914175209171049854
20166.081474e+096.585250e+08453233878.07.540962e+08342084647581590897813225802190804281
352659095311695979417199976288736115
\n", + "

296 rows × 4 columns

\n", "
" ], "text/plain": [ - " AAPL IBM LNKD TSLA\n", - "year \n", - "2015 1.301994e+10 1.100959e+09 440376163.0 1.085839e+09\n", - "2016 6.081474e+09 6.585250e+08 453233878.0 7.540962e+08" + "stock AAPL IBM MSFT TSLA\n", + "year week \n", + "2015 1 53204626 5525341 27913852 4764443\n", + " 2 282868187 24440360 158596624 22622034\n", + " 3 304226647 23272056 157088136 30799137\n", + " 4 198737041 31230797 137352632 16215501\n", + " 5 465842684 32927307 437786778 15720217\n", + "... ... ... ... ...\n", + "2020 31 211898609 20010578 149372422 61152261\n", + " 32 250852555 17701697 217598950 37091084\n", + " 33 235474473 18634659 141752091 71049854\n", + " 34 208464758 15908978 132258021 90804281\n", + " 35 265909531 16959794 171999762 88736115\n", + "\n", + "[296 rows x 4 columns]" ] }, - "execution_count": 131, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -431,38 +1056,93 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### BONUS: Create your own question and answer it." + "### Step 9. Find all the volume traded in the year of 2015" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 10, + "metadata": {}, + "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", + "
stockAAPLIBMMSFTTSLA
year
201513064316775110554552190575823111086708380
\n", + "
" + ], + "text/plain": [ + "stock AAPL IBM MSFT TSLA\n", + "year \n", + "2015 13064316775 1105545521 9057582311 1086708380" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/09_Time_Series/Investor_Flow_of_Funds_US/Exercises_with_code_and_solutions.ipynb b/09_Time_Series/Investor_Flow_of_Funds_US/Exercises_with_code_and_solutions.ipynb index a60c955f6..85b201bdb 100644 --- a/09_Time_Series/Investor_Flow_of_Funds_US/Exercises_with_code_and_solutions.ipynb +++ b/09_Time_Series/Investor_Flow_of_Funds_US/Exercises_with_code_and_solutions.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Investor - Flow of Funds - US" + "# Investor - Flow of Funds - US\n", + "\n", + "Check out [Investor Flow of Funds Exercises Video Tutorial](https://youtu.be/QG6WbOgC9QE) to watch a data scientist go through the exercises" ] }, { @@ -21,9 +23,7 @@ { "cell_type": "code", "execution_count": 30, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd" @@ -46,9 +46,7 @@ { "cell_type": "code", "execution_count": 31, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -171,9 +169,7 @@ { "cell_type": "code", "execution_count": 32, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# weekly data" @@ -189,9 +185,7 @@ { "cell_type": "code", "execution_count": 33, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -320,9 +314,7 @@ { "cell_type": "code", "execution_count": 34, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -361,9 +353,7 @@ { "cell_type": "code", "execution_count": 35, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -391,9 +381,7 @@ { "cell_type": "code", "execution_count": 36, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -834,9 +822,7 @@ { "cell_type": "code", "execution_count": 37, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -1069,9 +1055,7 @@ { "cell_type": "code", "execution_count": 38, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -1196,23 +1180,36 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/10_Deleting/.DS_Store b/10_Deleting/.DS_Store new file mode 100644 index 000000000..f37223950 Binary files /dev/null and b/10_Deleting/.DS_Store differ diff --git a/10_Deleting/Iris/Exercises_with_solutions_and_code.ipynb b/10_Deleting/Iris/Exercises_with_solutions_and_code.ipynb index b6a1dca98..0414f7fd6 100644 --- a/10_Deleting/Iris/Exercises_with_solutions_and_code.ipynb +++ b/10_Deleting/Iris/Exercises_with_solutions_and_code.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Iris" + "# Iris\n", + "\n", + "Check out [Iris Exercises Video Tutorial](https://youtu.be/yAtzFLCWSZo) to watch a data scientist go through the exercises" ] }, { @@ -21,9 +23,7 @@ { "cell_type": "code", "execution_count": 13, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", @@ -47,9 +47,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -142,9 +140,7 @@ { "cell_type": "code", "execution_count": 5, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -241,9 +237,7 @@ { "cell_type": "code", "execution_count": 11, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -276,9 +270,7 @@ { "cell_type": "code", "execution_count": 36, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -504,9 +496,7 @@ { "cell_type": "code", "execution_count": 39, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -1104,9 +1094,7 @@ { "cell_type": "code", "execution_count": 40, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -1191,9 +1179,7 @@ { "cell_type": "code", "execution_count": 52, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -1278,9 +1264,7 @@ { "cell_type": "code", "execution_count": 53, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -1365,9 +1349,7 @@ { "cell_type": "code", "execution_count": 56, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -1461,23 +1443,36 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "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.11" + "pygments_lexer": "ipython3", + "version": "3.7.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/10_Deleting/Wine/Exercises.ipynb b/10_Deleting/Wine/Exercises.ipynb index 09cc35c57..a89c6f6e2 100644 --- a/10_Deleting/Wine/Exercises.ipynb +++ b/10_Deleting/Wine/Exercises.ipynb @@ -73,7 +73,7 @@ "source": [ "### Step 5. Assign the columns as below:\n", "\n", - "The attributes are (dontated by Riccardo Leardi, riclea '@' anchem.unige.it): \n", + "The attributes are (donated by Riccardo Leardi, riclea '@' anchem.unige.it): \n", "1) alcohol \n", "2) malic_acid \n", "3) alcalinity_of_ash \n", @@ -176,7 +176,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 11. Set the rows of the random numbers in the column" + "### Step 11. Use random numbers you generated as an index and assign NaN value to each of cell." ] }, { @@ -208,7 +208,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 14. Print only the non-null values in alcohol" + "### Step 13. Delete the rows that contain missing values" ] }, { @@ -224,7 +224,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 13. Delete the rows that contain missing values" + "### Step 14. Print only the non-null values in alcohol" ] }, { @@ -236,6 +236,15 @@ "outputs": [], "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -271,7 +280,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [default]", "language": "python", "name": "python2" }, @@ -285,7 +294,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, diff --git a/10_Deleting/Wine/Exercises_code_and_solutions.ipynb b/10_Deleting/Wine/Exercises_code_and_solutions.ipynb index 188d7c8aa..265a2071a 100644 --- a/10_Deleting/Wine/Exercises_code_and_solutions.ipynb +++ b/10_Deleting/Wine/Exercises_code_and_solutions.ipynb @@ -21,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -182,7 +182,7 @@ "4 1450 " ] }, - "execution_count": 86, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -203,7 +203,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -289,7 +289,7 @@ "4 14.20 1.76 15.2 112 3.39 1.97 6.75" ] }, - "execution_count": 87, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -306,7 +306,7 @@ "source": [ "### Step 5. Assign the columns as below:\n", "\n", - "The attributes are (dontated by Riccardo Leardi, riclea '@' anchem.unige.it): \n", + "The attributes are (donated by Riccardo Leardi, riclea '@' anchem.unige.it): \n", "1) alcohol \n", "2) malic_acid \n", "3) alcalinity_of_ash \n", @@ -318,7 +318,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 5, "metadata": { "collapsed": false }, @@ -411,7 +411,7 @@ "4 1.97 6.75 " ] }, - "execution_count": 88, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -430,7 +430,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -523,7 +523,7 @@ "4 1.97 6.75 " ] }, - "execution_count": 89, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -542,7 +542,7 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -635,7 +635,7 @@ "4 1.97 6.75 " ] }, - "execution_count": 90, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -654,7 +654,7 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 8, "metadata": { "collapsed": false }, @@ -747,7 +747,7 @@ "4 1.97 6.75 " ] }, - "execution_count": 91, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -769,7 +769,7 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -787,7 +787,7 @@ "dtype: int64" ] }, - "execution_count": 92, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -805,7 +805,7 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -813,10 +813,10 @@ { "data": { "text/plain": [ - "array([6, 6, 7, 4, 9, 4, 0, 1, 0, 8])" + "array([2, 3, 0, 5, 0, 9, 4, 0, 7, 2])" ] }, - "execution_count": 93, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -830,12 +830,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 11. Set the rows of the random numbers in the column" + "### Step 11. Use random numbers you generated as an index and assign NaN value to each of cell." ] }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -870,7 +870,7 @@ " \n", " \n", " 1\n", - " NaN\n", + " 10.00\n", " 2.36\n", " 18.6\n", " 101.0\n", @@ -880,7 +880,7 @@ " \n", " \n", " 2\n", - " 10.00\n", + " NaN\n", " 1.95\n", " 16.8\n", " 100.0\n", @@ -890,7 +890,7 @@ " \n", " \n", " 3\n", - " 13.24\n", + " NaN\n", " 2.59\n", " 21.0\n", " 100.0\n", @@ -910,7 +910,7 @@ " \n", " \n", " 5\n", - " 14.39\n", + " NaN\n", " 1.87\n", " 14.6\n", " 96.0\n", @@ -920,7 +920,7 @@ " \n", " \n", " 6\n", - " NaN\n", + " 14.06\n", " 2.15\n", " 17.6\n", " 121.0\n", @@ -940,7 +940,7 @@ " \n", " \n", " 8\n", - " NaN\n", + " 13.86\n", " 1.35\n", " 16.0\n", " 98.0\n", @@ -965,14 +965,14 @@ "text/plain": [ " alcohol malic_acid alcalinity_of_ash magnesium flavanoids \\\n", "0 NaN 1.78 11.2 100.0 2.76 \n", - "1 NaN 2.36 18.6 101.0 3.24 \n", - "2 10.00 1.95 16.8 100.0 3.49 \n", - "3 13.24 2.59 21.0 100.0 2.69 \n", + "1 10.00 2.36 18.6 101.0 3.24 \n", + "2 NaN 1.95 16.8 100.0 3.49 \n", + "3 NaN 2.59 21.0 100.0 2.69 \n", "4 NaN 1.76 15.2 112.0 3.39 \n", - "5 14.39 1.87 14.6 96.0 2.52 \n", - "6 NaN 2.15 17.6 121.0 2.51 \n", + "5 NaN 1.87 14.6 96.0 2.52 \n", + "6 14.06 2.15 17.6 121.0 2.51 \n", "7 NaN 1.64 14.0 97.0 2.98 \n", - "8 NaN 1.35 16.0 98.0 3.15 \n", + "8 13.86 1.35 16.0 98.0 3.15 \n", "9 NaN 2.16 18.0 105.0 3.32 \n", "\n", " proanthocyanins hue \n", @@ -988,7 +988,7 @@ "9 2.38 5.75 " ] }, - "execution_count": 94, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -1007,7 +1007,7 @@ }, { "cell_type": "code", - "execution_count": 95, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -1025,7 +1025,7 @@ "dtype: int64" ] }, - "execution_count": 95, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -1038,22 +1038,220 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 14. Print only the non-null values in alcohol" + "### Step 13. Delete the rows that contain missing values" ] }, { "cell_type": "code", - "execution_count": 108, + "execution_count": 13, "metadata": { "collapsed": false }, + "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", + "
alcoholmalic_acidalcalinity_of_ashmagnesiumflavanoidsproanthocyaninshue
110.002.3618.6101.03.242.815.68
614.062.1517.6121.02.511.255.05
813.861.3516.098.03.151.857.22
1014.121.4816.895.02.431.575.00
1113.751.7316.089.02.761.815.60
\n", + "
" + ], + "text/plain": [ + " alcohol malic_acid alcalinity_of_ash magnesium flavanoids \\\n", + "1 10.00 2.36 18.6 101.0 3.24 \n", + "6 14.06 2.15 17.6 121.0 2.51 \n", + "8 13.86 1.35 16.0 98.0 3.15 \n", + "10 14.12 1.48 16.8 95.0 2.43 \n", + "11 13.75 1.73 16.0 89.0 2.76 \n", + "\n", + " proanthocyanins hue \n", + "1 2.81 5.68 \n", + "6 1.25 5.05 \n", + "8 1.85 7.22 \n", + "10 1.57 5.00 \n", + "11 1.81 5.60 " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wine = wine.dropna(axis = 0, how = \"any\")\n", + "wine.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 14. Print only the non-null values in alcohol" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1 True\n", + "6 True\n", + "8 True\n", + "10 True\n", + "11 True\n", + "12 True\n", + "13 True\n", + "14 True\n", + "15 True\n", + "16 True\n", + "17 True\n", + "18 True\n", + "19 True\n", + "20 True\n", + "21 True\n", + "22 True\n", + "23 True\n", + "24 True\n", + "25 True\n", + "26 True\n", + "27 True\n", + "28 True\n", + "29 True\n", + "30 True\n", + "31 True\n", + "32 True\n", + "33 True\n", + "34 True\n", + "35 True\n", + "36 True\n", + " ... \n", + "147 True\n", + "148 True\n", + "149 True\n", + "150 True\n", + "151 True\n", + "152 True\n", + "153 True\n", + "154 True\n", + "155 True\n", + "156 True\n", + "157 True\n", + "158 True\n", + "159 True\n", + "160 True\n", + "161 True\n", + "162 True\n", + "163 True\n", + "164 True\n", + "165 True\n", + "166 True\n", + "167 True\n", + "168 True\n", + "169 True\n", + "170 True\n", + "171 True\n", + "172 True\n", + "173 True\n", + "174 True\n", + "175 True\n", + "176 True\n", + "Name: alcohol, dtype: bool" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mask = wine.alcohol.notnull()\n", + "mask" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false, + "scrolled": true + }, "outputs": [ { "data": { "text/plain": [ - "2 10.00\n", - "3 13.24\n", - "5 14.39\n", + "1 10.00\n", + "6 14.06\n", + "8 13.86\n", "10 14.12\n", "11 13.75\n", "12 14.75\n", @@ -1115,130 +1313,15 @@ "Name: alcohol, dtype: float64" ] }, - "execution_count": 108, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "mask = wine.alcohol.notnull()\n", - "mask\n", - "\n", "wine.alcohol[mask]" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 13. Delete the rows that contain missing values" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "metadata": { - "collapsed": false - }, - "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", - "
alcoholmalic_acidalcalinity_of_ashmagnesiumflavanoidsproanthocyaninshue
210.001.9516.8100.03.492.187.80
313.242.5921.0100.02.691.824.32
514.391.8714.696.02.521.985.25
1014.121.4816.895.02.431.575.00
1113.751.7316.089.02.761.815.60
\n", - "
" - ], - "text/plain": [ - " alcohol malic_acid alcalinity_of_ash magnesium flavanoids \\\n", - "2 10.00 1.95 16.8 100.0 3.49 \n", - "3 13.24 2.59 21.0 100.0 2.69 \n", - "5 14.39 1.87 14.6 96.0 2.52 \n", - "10 14.12 1.48 16.8 95.0 2.43 \n", - "11 13.75 1.73 16.0 89.0 2.76 \n", - "\n", - " proanthocyanins hue \n", - "2 2.18 7.80 \n", - "3 1.82 4.32 \n", - "5 1.98 5.25 \n", - "10 1.57 5.00 \n", - "11 1.81 5.60 " - ] - }, - "execution_count": 109, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wine = wine.dropna(axis = 0, how = \"any\")\n", - "wine.head()" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -1248,7 +1331,7 @@ }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -1274,32 +1357,32 @@ " \n", " 0\n", " 10.00\n", - " 1.95\n", - " 16.8\n", - " 100.0\n", - " 3.49\n", - " 2.18\n", - " 7.80\n", + " 2.36\n", + " 18.6\n", + " 101.0\n", + " 3.24\n", + " 2.81\n", + " 5.68\n", " \n", " \n", " 1\n", - " 13.24\n", - " 2.59\n", - " 21.0\n", - " 100.0\n", - " 2.69\n", - " 1.82\n", - " 4.32\n", + " 14.06\n", + " 2.15\n", + " 17.6\n", + " 121.0\n", + " 2.51\n", + " 1.25\n", + " 5.05\n", " \n", " \n", " 2\n", - " 14.39\n", - " 1.87\n", - " 14.6\n", - " 96.0\n", - " 2.52\n", - " 1.98\n", - " 5.25\n", + " 13.86\n", + " 1.35\n", + " 16.0\n", + " 98.0\n", + " 3.15\n", + " 1.85\n", + " 7.22\n", " \n", " \n", " 3\n", @@ -1327,21 +1410,21 @@ ], "text/plain": [ " alcohol malic_acid alcalinity_of_ash magnesium flavanoids \\\n", - "0 10.00 1.95 16.8 100.0 3.49 \n", - "1 13.24 2.59 21.0 100.0 2.69 \n", - "2 14.39 1.87 14.6 96.0 2.52 \n", + "0 10.00 2.36 18.6 101.0 3.24 \n", + "1 14.06 2.15 17.6 121.0 2.51 \n", + "2 13.86 1.35 16.0 98.0 3.15 \n", "3 14.12 1.48 16.8 95.0 2.43 \n", "4 13.75 1.73 16.0 89.0 2.76 \n", "\n", " proanthocyanins hue \n", - "0 2.18 7.80 \n", - "1 1.82 4.32 \n", - "2 1.98 5.25 \n", + "0 2.81 5.68 \n", + "1 1.25 5.05 \n", + "2 1.85 7.22 \n", "3 1.57 5.00 \n", "4 1.81 5.60 " ] }, - "execution_count": 110, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -1369,8 +1452,9 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [default]", "language": "python", "name": "python2" }, @@ -1384,7 +1468,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, diff --git a/10_Deleting/Wine/Solutions.ipynb b/10_Deleting/Wine/Solutions.ipynb index 0e76021c5..d91227bfc 100644 --- a/10_Deleting/Wine/Solutions.ipynb +++ b/10_Deleting/Wine/Solutions.ipynb @@ -21,15 +21,12 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np" - ] + "source": [] }, { "cell_type": "markdown", @@ -47,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -182,7 +179,7 @@ "4 1450 " ] }, - "execution_count": 86, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -198,7 +195,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -284,7 +281,7 @@ "4 14.20 1.76 15.2 112 3.39 1.97 6.75" ] }, - "execution_count": 87, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -297,7 +294,7 @@ "source": [ "### Step 5. Assign the columns as below:\n", "\n", - "The attributes are (dontated by Riccardo Leardi, riclea '@' anchem.unige.it): \n", + "The attributes are (donated by Riccardo Leardi, riclea '@' anchem.unige.it): \n", "1) alcohol \n", "2) malic_acid \n", "3) alcalinity_of_ash \n", @@ -309,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 5, "metadata": { "collapsed": false }, @@ -402,7 +399,7 @@ "4 1.97 6.75 " ] }, - "execution_count": 88, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -418,7 +415,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -511,7 +508,7 @@ "4 1.97 6.75 " ] }, - "execution_count": 89, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -527,7 +524,7 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -620,7 +617,7 @@ "4 1.97 6.75 " ] }, - "execution_count": 90, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -636,7 +633,7 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 8, "metadata": { "collapsed": false }, @@ -729,7 +726,7 @@ "4 1.97 6.75 " ] }, - "execution_count": 91, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -745,7 +742,7 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -763,7 +760,7 @@ "dtype: int64" ] }, - "execution_count": 92, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -779,7 +776,7 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -787,28 +784,26 @@ { "data": { "text/plain": [ - "array([6, 6, 7, 4, 9, 4, 0, 1, 0, 8])" + "array([2, 3, 0, 5, 0, 9, 4, 0, 7, 2])" ] }, - "execution_count": 93, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], - "source": [ - "# the number will be randoms, so yours will be different" - ] + "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Step 11. Set the rows of the random numbers in the column" + "### Step 11. Use random numbers you generated as an index and assign NaN value to each of cell." ] }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -843,7 +838,7 @@ " \n", " \n", " 1\n", - " NaN\n", + " 10.00\n", " 2.36\n", " 18.6\n", " 101.0\n", @@ -853,7 +848,7 @@ " \n", " \n", " 2\n", - " 10.00\n", + " NaN\n", " 1.95\n", " 16.8\n", " 100.0\n", @@ -863,7 +858,7 @@ " \n", " \n", " 3\n", - " 13.24\n", + " NaN\n", " 2.59\n", " 21.0\n", " 100.0\n", @@ -883,7 +878,7 @@ " \n", " \n", " 5\n", - " 14.39\n", + " NaN\n", " 1.87\n", " 14.6\n", " 96.0\n", @@ -893,7 +888,7 @@ " \n", " \n", " 6\n", - " NaN\n", + " 14.06\n", " 2.15\n", " 17.6\n", " 121.0\n", @@ -913,7 +908,7 @@ " \n", " \n", " 8\n", - " NaN\n", + " 13.86\n", " 1.35\n", " 16.0\n", " 98.0\n", @@ -938,14 +933,14 @@ "text/plain": [ " alcohol malic_acid alcalinity_of_ash magnesium flavanoids \\\n", "0 NaN 1.78 11.2 100.0 2.76 \n", - "1 NaN 2.36 18.6 101.0 3.24 \n", - "2 10.00 1.95 16.8 100.0 3.49 \n", - "3 13.24 2.59 21.0 100.0 2.69 \n", + "1 10.00 2.36 18.6 101.0 3.24 \n", + "2 NaN 1.95 16.8 100.0 3.49 \n", + "3 NaN 2.59 21.0 100.0 2.69 \n", "4 NaN 1.76 15.2 112.0 3.39 \n", - "5 14.39 1.87 14.6 96.0 2.52 \n", - "6 NaN 2.15 17.6 121.0 2.51 \n", + "5 NaN 1.87 14.6 96.0 2.52 \n", + "6 14.06 2.15 17.6 121.0 2.51 \n", "7 NaN 1.64 14.0 97.0 2.98 \n", - "8 NaN 1.35 16.0 98.0 3.15 \n", + "8 13.86 1.35 16.0 98.0 3.15 \n", "9 NaN 2.16 18.0 105.0 3.32 \n", "\n", " proanthocyanins hue \n", @@ -961,14 +956,12 @@ "9 2.38 5.75 " ] }, - "execution_count": 94, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], - "source": [ - "# the number will be randoms, so yours will be different" - ] + "source": [] }, { "cell_type": "markdown", @@ -979,7 +972,7 @@ }, { "cell_type": "code", - "execution_count": 95, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -997,15 +990,122 @@ "dtype: int64" ] }, - "execution_count": 95, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, "source": [ - "# the number will be randoms, so yours will be different" + "### Step 13. Delete the rows that contain missing values" ] }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "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", + "
alcoholmalic_acidalcalinity_of_ashmagnesiumflavanoidsproanthocyaninshue
110.002.3618.6101.03.242.815.68
614.062.1517.6121.02.511.255.05
813.861.3516.098.03.151.857.22
1014.121.4816.895.02.431.575.00
1113.751.7316.089.02.761.815.60
\n", + "
" + ], + "text/plain": [ + " alcohol malic_acid alcalinity_of_ash magnesium flavanoids \\\n", + "1 10.00 2.36 18.6 101.0 3.24 \n", + "6 14.06 2.15 17.6 121.0 2.51 \n", + "8 13.86 1.35 16.0 98.0 3.15 \n", + "10 14.12 1.48 16.8 95.0 2.43 \n", + "11 13.75 1.73 16.0 89.0 2.76 \n", + "\n", + " proanthocyanins hue \n", + "1 2.81 5.68 \n", + "6 1.25 5.05 \n", + "8 1.85 7.22 \n", + "10 1.57 5.00 \n", + "11 1.81 5.60 " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -1015,17 +1115,100 @@ }, { "cell_type": "code", - "execution_count": 108, + "execution_count": 14, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1 True\n", + "6 True\n", + "8 True\n", + "10 True\n", + "11 True\n", + "12 True\n", + "13 True\n", + "14 True\n", + "15 True\n", + "16 True\n", + "17 True\n", + "18 True\n", + "19 True\n", + "20 True\n", + "21 True\n", + "22 True\n", + "23 True\n", + "24 True\n", + "25 True\n", + "26 True\n", + "27 True\n", + "28 True\n", + "29 True\n", + "30 True\n", + "31 True\n", + "32 True\n", + "33 True\n", + "34 True\n", + "35 True\n", + "36 True\n", + " ... \n", + "147 True\n", + "148 True\n", + "149 True\n", + "150 True\n", + "151 True\n", + "152 True\n", + "153 True\n", + "154 True\n", + "155 True\n", + "156 True\n", + "157 True\n", + "158 True\n", + "159 True\n", + "160 True\n", + "161 True\n", + "162 True\n", + "163 True\n", + "164 True\n", + "165 True\n", + "166 True\n", + "167 True\n", + "168 True\n", + "169 True\n", + "170 True\n", + "171 True\n", + "172 True\n", + "173 True\n", + "174 True\n", + "175 True\n", + "176 True\n", + "Name: alcohol, dtype: bool" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false, + "scrolled": true }, "outputs": [ { "data": { "text/plain": [ - "2 10.00\n", - "3 13.24\n", - "5 14.39\n", + "1 10.00\n", + "6 14.06\n", + "8 13.86\n", "10 14.12\n", "11 13.75\n", "12 14.75\n", @@ -1087,125 +1270,12 @@ "Name: alcohol, dtype: float64" ] }, - "execution_count": 108, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# the number will be randoms, so yours will be different" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Step 13. Delete the rows that contain missing values" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "metadata": { - "collapsed": false - }, - "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", - "
alcoholmalic_acidalcalinity_of_ashmagnesiumflavanoidsproanthocyaninshue
210.001.9516.8100.03.492.187.80
313.242.5921.0100.02.691.824.32
514.391.8714.696.02.521.985.25
1014.121.4816.895.02.431.575.00
1113.751.7316.089.02.761.815.60
\n", - "
" - ], - "text/plain": [ - " alcohol malic_acid alcalinity_of_ash magnesium flavanoids \\\n", - "2 10.00 1.95 16.8 100.0 3.49 \n", - "3 13.24 2.59 21.0 100.0 2.69 \n", - "5 14.39 1.87 14.6 96.0 2.52 \n", - "10 14.12 1.48 16.8 95.0 2.43 \n", - "11 13.75 1.73 16.0 89.0 2.76 \n", - "\n", - " proanthocyanins hue \n", - "2 2.18 7.80 \n", - "3 1.82 4.32 \n", - "5 1.98 5.25 \n", - "10 1.57 5.00 \n", - "11 1.81 5.60 " - ] - }, - "execution_count": 109, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], - "source": [ - "# the number will be randoms, so yours will be different" - ] + "source": [] }, { "cell_type": "markdown", @@ -1216,7 +1286,7 @@ }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -1242,32 +1312,32 @@ " \n", " 0\n", " 10.00\n", - " 1.95\n", - " 16.8\n", - " 100.0\n", - " 3.49\n", - " 2.18\n", - " 7.80\n", + " 2.36\n", + " 18.6\n", + " 101.0\n", + " 3.24\n", + " 2.81\n", + " 5.68\n", " \n", " \n", " 1\n", - " 13.24\n", - " 2.59\n", - " 21.0\n", - " 100.0\n", - " 2.69\n", - " 1.82\n", - " 4.32\n", + " 14.06\n", + " 2.15\n", + " 17.6\n", + " 121.0\n", + " 2.51\n", + " 1.25\n", + " 5.05\n", " \n", " \n", " 2\n", - " 14.39\n", - " 1.87\n", - " 14.6\n", - " 96.0\n", - " 2.52\n", - " 1.98\n", - " 5.25\n", + " 13.86\n", + " 1.35\n", + " 16.0\n", + " 98.0\n", + " 3.15\n", + " 1.85\n", + " 7.22\n", " \n", " \n", " 3\n", @@ -1295,21 +1365,21 @@ ], "text/plain": [ " alcohol malic_acid alcalinity_of_ash magnesium flavanoids \\\n", - "0 10.00 1.95 16.8 100.0 3.49 \n", - "1 13.24 2.59 21.0 100.0 2.69 \n", - "2 14.39 1.87 14.6 96.0 2.52 \n", + "0 10.00 2.36 18.6 101.0 3.24 \n", + "1 14.06 2.15 17.6 121.0 2.51 \n", + "2 13.86 1.35 16.0 98.0 3.15 \n", "3 14.12 1.48 16.8 95.0 2.43 \n", "4 13.75 1.73 16.0 89.0 2.76 \n", "\n", " proanthocyanins hue \n", - "0 2.18 7.80 \n", - "1 1.82 4.32 \n", - "2 1.98 5.25 \n", + "0 2.81 5.68 \n", + "1 1.25 5.05 \n", + "2 1.85 7.22 \n", "3 1.57 5.00 \n", "4 1.81 5.60 " ] }, - "execution_count": 110, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -1334,8 +1404,9 @@ } ], "metadata": { + "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [default]", "language": "python", "name": "python2" }, @@ -1349,7 +1420,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..3e8cce62d --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at gui.psamora@gmail.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..ae4fb82f1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2018, Guilherme Samora +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/README.md b/README.md index d15360095..a1cb6b3a8 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,10 @@ There will be three different types of files:       2. Solutions without code       3. Solutions with code and comments -My suggestion is that you learn a topic in a tutorial or video and then do exercises. -Learn one more topic and do exercises. If you got the answer wrong, don't go directly to the solution with code. +My suggestion is that you learn a topic in a tutorial, video or documentation and then do the first exercises. +Learn one more topic and do more exercises. If you are stuck, don't go directly to the solution with code files. Check the solutions only and try to get the correct answer. -Suggestions and collaborations are more than welcome. Please open an issue or make a PR. :) +Suggestions and collaborations are more than welcome.🙂 Please open an issue or make a PR indicating the exercise and your problem/solution. # Lessons @@ -33,7 +33,7 @@ Suggestions and collaborations are more than welcome. Please open an issue or ma [Fictional Army](https://github.com/guipsamora/pandas_exercises/tree/master/02_Filtering_%26_Sorting/Fictional%20Army) ### [Grouping](https://github.com/guipsamora/pandas_exercises/tree/master/03_Grouping) -[Alcohol Consumption](https://github.com/guipsamora/pandas_exercises/tree/master/03_Grouping/Alcohol%20Consumption%20) +[Alcohol Consumption](https://github.com/guipsamora/pandas_exercises/tree/master/03_Grouping/Alcohol_Consumption) [Occupation](https://github.com/guipsamora/pandas_exercises/tree/master/03_Grouping/Occupation) [Regiment](https://github.com/guipsamora/pandas_exercises/tree/master/03_Grouping/Regiment) @@ -43,7 +43,8 @@ Suggestions and collaborations are more than welcome. Please open an issue or ma ### [Merge](https://github.com/guipsamora/pandas_exercises/tree/master/05_Merge) [Auto_MPG](https://github.com/guipsamora/pandas_exercises/tree/master/05_Merge/Auto_MPG) -[House Market](https://github.com/guipsamora/pandas_exercises/tree/master/05_Merge/Housing%20Market) +[Fictitious Names](https://github.com/guipsamora/pandas_exercises/tree/master/05_Merge/Fictitous%20Names) +[House Market](https://github.com/guipsamora/pandas_exercises/tree/master/05_Merge/Housing%20Market) ### [Stats](https://github.com/guipsamora/pandas_exercises/tree/master/06_Stats) [US_Baby_Names](https://github.com/guipsamora/pandas_exercises/tree/master/06_Stats/US_Baby_Names) @@ -68,3 +69,8 @@ Suggestions and collaborations are more than welcome. Please open an issue or ma [Iris](https://github.com/guipsamora/pandas_exercises/tree/master/10_Deleting/Iris) [Wine](https://github.com/guipsamora/pandas_exercises/tree/master/10_Deleting/Wine) +# Video Solutions + +Video tutorials of data scientists working through the above exercises: + +[Data Talks - Pandas Learning By Doing](https://www.youtube.com/watch?v=pu3IpU937xs&list=PLgJhDSE2ZLxaY_DigHeiIDC1cD09rXgJv) diff --git a/Template/Solutions.ipynb b/Template/Solutions.ipynb new file mode 100644 index 000000000..c0ef7644d --- /dev/null +++ b/Template/Solutions.ipynb @@ -0,0 +1,301 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Ex - " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Introduction:\n", + "\n", + "This time you will create a data \n", + "\n", + "Special thanks to: https://github.com/justmarkham for sharing the dataset and materials.\n", + "\n", + "### Step 1. Import the necessary libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 2. Import the dataset from this [address](https://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv). " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 3. Assign it to a variable called " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 4. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 5. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 6. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 7. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 8. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 9. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 10. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 11. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 12. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 13. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 14. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 15. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 16. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### BONUS: Create your own question and answer it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..45d521309 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +numpy==1.13.1 +matplotlib==2.0.2 +seaborn==0.8.1 +pandas==0.23.4 \ No newline at end of file