Commits

Anonymous committed 35d7722

added exercises

  • Participants
  • Parent commits 495fcfc

Comments (0)

Files changed (7)

 * [09 - Lesson](http://nbviewer.ipython.org/urls/bitbucket.org/hrojas/learn-pandas/raw/master/lessons/09%20-%20Lesson.ipynb)
 * [10 - Lesson](http://nbviewer.ipython.org/urls/bitbucket.org/hrojas/learn-pandas/raw/master/lessons/10%20-%20Lesson.ipynb)
 * [11 - Lesson](http://nbviewer.ipython.org/urls/bitbucket.org/hrojas/learn-pandas/raw/master/lessons/11%20-%20Lesson.ipynb)
+
+Exercises
+---------
+
+

File lessons/01 - Exercise.ipynb

+{
+ "metadata": {
+  "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "from pandas import DataFrame"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 1
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      " # This is the data frame you are given"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "# Create some data\n",
+      "d = [[1,0],[0,0]]\n",
+      "d"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 2,
+       "text": [
+        "[[1, 0], [0, 0]]"
+       ]
+      }
+     ],
+     "prompt_number": 2
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "# Create the data frame\n",
+      "frm = DataFrame(data=d)\n",
+      "frm"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "html": [
+        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+        "<table border=\"1\" class=\"dataframe\">\n",
+        "  <thead>\n",
+        "    <tr style=\"text-align: right;\">\n",
+        "      <th></th>\n",
+        "      <th>0</th>\n",
+        "      <th>1</th>\n",
+        "    </tr>\n",
+        "  </thead>\n",
+        "  <tbody>\n",
+        "    <tr>\n",
+        "      <th>0</th>\n",
+        "      <td> 1</td>\n",
+        "      <td> 0</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>1</th>\n",
+        "      <td> 0</td>\n",
+        "      <td> 0</td>\n",
+        "    </tr>\n",
+        "  </tbody>\n",
+        "</table>\n",
+        "</div>"
+       ],
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 3,
+       "text": [
+        "   0  1\n",
+        "0  1  0\n",
+        "1  0  0"
+       ]
+      }
+     ],
+     "prompt_number": 3
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      " # This is the data frame you have to replicate"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "ans = [[0,1],[0,0]]\n",
+      "frm_ans = DataFrame(data=ans)\n",
+      "frm_ans"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "html": [
+        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+        "<table border=\"1\" class=\"dataframe\">\n",
+        "  <thead>\n",
+        "    <tr style=\"text-align: right;\">\n",
+        "      <th></th>\n",
+        "      <th>0</th>\n",
+        "      <th>1</th>\n",
+        "    </tr>\n",
+        "  </thead>\n",
+        "  <tbody>\n",
+        "    <tr>\n",
+        "      <th>0</th>\n",
+        "      <td> 0</td>\n",
+        "      <td> 1</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>1</th>\n",
+        "      <td> 0</td>\n",
+        "      <td> 0</td>\n",
+        "    </tr>\n",
+        "  </tbody>\n",
+        "</table>\n",
+        "</div>"
+       ],
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 4,
+       "text": [
+        "   0  1\n",
+        "0  0  1\n",
+        "1  0  0"
+       ]
+      }
+     ],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "# Start Coding..."
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "# How check your answer?  \n",
+      "\n",
+      "The correct answer will have \"True\" on all the rows."
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "# \"Yout data frame\" == frm\n",
+      "frm == frm_ans"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "html": [
+        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+        "<table border=\"1\" class=\"dataframe\">\n",
+        "  <thead>\n",
+        "    <tr style=\"text-align: right;\">\n",
+        "      <th></th>\n",
+        "      <th>0</th>\n",
+        "      <th>1</th>\n",
+        "    </tr>\n",
+        "  </thead>\n",
+        "  <tbody>\n",
+        "    <tr>\n",
+        "      <th>0</th>\n",
+        "      <td> False</td>\n",
+        "      <td> False</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>1</th>\n",
+        "      <td>  True</td>\n",
+        "      <td>  True</td>\n",
+        "    </tr>\n",
+        "  </tbody>\n",
+        "</table>\n",
+        "</div>"
+       ],
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 5,
+       "text": [
+        "       0      1\n",
+        "0  False  False\n",
+        "1   True   True"
+       ]
+      }
+     ],
+     "prompt_number": 5
+    }
+   ],
+   "metadata": {}
+  }
+ ]
+}

File lessons/02 - Exercise.ipynb

+{
+ "metadata": {
+  "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "from pandas import DataFrame"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 1
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      " # This is the data frame you are given"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "# Create some data\n",
+      "d = [[2,2],[7,3]]\n",
+      "d"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 2,
+       "text": [
+        "[[2, 2], [7, 3]]"
+       ]
+      }
+     ],
+     "prompt_number": 2
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "# Create the data frame\n",
+      "frm = DataFrame(data=d)\n",
+      "frm"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "html": [
+        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+        "<table border=\"1\" class=\"dataframe\">\n",
+        "  <thead>\n",
+        "    <tr style=\"text-align: right;\">\n",
+        "      <th></th>\n",
+        "      <th>0</th>\n",
+        "      <th>1</th>\n",
+        "    </tr>\n",
+        "  </thead>\n",
+        "  <tbody>\n",
+        "    <tr>\n",
+        "      <th>0</th>\n",
+        "      <td> 2</td>\n",
+        "      <td> 2</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>1</th>\n",
+        "      <td> 7</td>\n",
+        "      <td> 3</td>\n",
+        "    </tr>\n",
+        "  </tbody>\n",
+        "</table>\n",
+        "</div>"
+       ],
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 3,
+       "text": [
+        "   0  1\n",
+        "0  2  2\n",
+        "1  7  3"
+       ]
+      }
+     ],
+     "prompt_number": 3
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      " # This is the data frame you have to replicate  \n",
+      " \n",
+      " * Create a sum column  \n",
+      " * The values are equal to the row sum  \n",
+      " \n",
+      " i.e. 2 + 2 = 4"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "ans = {0:[2,7],\n",
+      "       1:[2,3],\n",
+      "       'sum':[4,10]\n",
+      "       }\n",
+      "frm_ans = DataFrame(data=ans)\n",
+      "frm_ans"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "html": [
+        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+        "<table border=\"1\" class=\"dataframe\">\n",
+        "  <thead>\n",
+        "    <tr style=\"text-align: right;\">\n",
+        "      <th></th>\n",
+        "      <th>0</th>\n",
+        "      <th>1</th>\n",
+        "      <th>sum</th>\n",
+        "    </tr>\n",
+        "  </thead>\n",
+        "  <tbody>\n",
+        "    <tr>\n",
+        "      <th>0</th>\n",
+        "      <td> 2</td>\n",
+        "      <td> 2</td>\n",
+        "      <td>  4</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>1</th>\n",
+        "      <td> 7</td>\n",
+        "      <td> 3</td>\n",
+        "      <td> 10</td>\n",
+        "    </tr>\n",
+        "  </tbody>\n",
+        "</table>\n",
+        "</div>"
+       ],
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 4,
+       "text": [
+        "   0  1  sum\n",
+        "0  2  2    4\n",
+        "1  7  3   10"
+       ]
+      }
+     ],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "# Start Coding..."
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "# How check your answer?  \n",
+      "\n",
+      "The correct answer will have \"True\" on all the rows."
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "# \"Yout data frame\" == frm\n",
+      "frm_ans == frm_ans"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "html": [
+        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+        "<table border=\"1\" class=\"dataframe\">\n",
+        "  <thead>\n",
+        "    <tr style=\"text-align: right;\">\n",
+        "      <th></th>\n",
+        "      <th>0</th>\n",
+        "      <th>1</th>\n",
+        "      <th>sum</th>\n",
+        "    </tr>\n",
+        "  </thead>\n",
+        "  <tbody>\n",
+        "    <tr>\n",
+        "      <th>0</th>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>1</th>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "    </tr>\n",
+        "  </tbody>\n",
+        "</table>\n",
+        "</div>"
+       ],
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 5,
+       "text": [
+        "      0     1   sum\n",
+        "0  True  True  True\n",
+        "1  True  True  True"
+       ]
+      }
+     ],
+     "prompt_number": 5
+    }
+   ],
+   "metadata": {}
+  }
+ ]
+}

File lessons/03 - Exercise.ipynb

+{
+ "metadata": {
+  "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "from pandas import DataFrame"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 1
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      " # This is the data frame you are given"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "# Create some data\n",
+      "d = {0:[2,7],\n",
+      "     1:[2,3],\n",
+      "     'sum':[4,10]\n",
+      "     }\n",
+      "d"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 2,
+       "text": [
+        "{0: [2, 7], 1: [2, 3], 'sum': [4, 10]}"
+       ]
+      }
+     ],
+     "prompt_number": 2
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "# Create the data frame\n",
+      "frm = DataFrame(data=d)\n",
+      "frm"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "html": [
+        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+        "<table border=\"1\" class=\"dataframe\">\n",
+        "  <thead>\n",
+        "    <tr style=\"text-align: right;\">\n",
+        "      <th></th>\n",
+        "      <th>0</th>\n",
+        "      <th>1</th>\n",
+        "      <th>sum</th>\n",
+        "    </tr>\n",
+        "  </thead>\n",
+        "  <tbody>\n",
+        "    <tr>\n",
+        "      <th>0</th>\n",
+        "      <td> 2</td>\n",
+        "      <td> 2</td>\n",
+        "      <td>  4</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>1</th>\n",
+        "      <td> 7</td>\n",
+        "      <td> 3</td>\n",
+        "      <td> 10</td>\n",
+        "    </tr>\n",
+        "  </tbody>\n",
+        "</table>\n",
+        "</div>"
+       ],
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 3,
+       "text": [
+        "   0  1  sum\n",
+        "0  2  2    4\n",
+        "1  7  3   10"
+       ]
+      }
+     ],
+     "prompt_number": 3
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      " # This is the data frame you have to replicate  \n",
+      " \n",
+      " * Change the column name  \n",
+      " * Change the index name  "
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "ans = {0:[2,7],\n",
+      "       'energy':[2,3],\n",
+      "       'sum':[4,10]\n",
+      "       }\n",
+      "\n",
+      "idx = [0,'row']\n",
+      "\n",
+      "frm_ans = DataFrame(data=ans, index=idx)\n",
+      "frm_ans"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "html": [
+        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+        "<table border=\"1\" class=\"dataframe\">\n",
+        "  <thead>\n",
+        "    <tr style=\"text-align: right;\">\n",
+        "      <th></th>\n",
+        "      <th>0</th>\n",
+        "      <th>energy</th>\n",
+        "      <th>sum</th>\n",
+        "    </tr>\n",
+        "  </thead>\n",
+        "  <tbody>\n",
+        "    <tr>\n",
+        "      <th>0</th>\n",
+        "      <td> 2</td>\n",
+        "      <td> 2</td>\n",
+        "      <td>  4</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>row</th>\n",
+        "      <td> 7</td>\n",
+        "      <td> 3</td>\n",
+        "      <td> 10</td>\n",
+        "    </tr>\n",
+        "  </tbody>\n",
+        "</table>\n",
+        "</div>"
+       ],
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 4,
+       "text": [
+        "     0  energy  sum\n",
+        "0    2       2    4\n",
+        "row  7       3   10"
+       ]
+      }
+     ],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "# Start Coding..."
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "# How check your answer?  \n",
+      "\n",
+      "The correct answer will have \"True\" on all the rows."
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "# \"Yout data frame\" == frm\n",
+      "frm_ans == frm_ans"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "html": [
+        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+        "<table border=\"1\" class=\"dataframe\">\n",
+        "  <thead>\n",
+        "    <tr style=\"text-align: right;\">\n",
+        "      <th></th>\n",
+        "      <th>0</th>\n",
+        "      <th>energy</th>\n",
+        "      <th>sum</th>\n",
+        "    </tr>\n",
+        "  </thead>\n",
+        "  <tbody>\n",
+        "    <tr>\n",
+        "      <th>0</th>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>row</th>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "    </tr>\n",
+        "  </tbody>\n",
+        "</table>\n",
+        "</div>"
+       ],
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 5,
+       "text": [
+        "        0 energy   sum\n",
+        "0    True   True  True\n",
+        "row  True   True  True"
+       ]
+      }
+     ],
+     "prompt_number": 5
+    }
+   ],
+   "metadata": {}
+  }
+ ]
+}

File lessons/04 - Exercise.ipynb

+{
+ "metadata": {
+  "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "from pandas import DataFrame\n",
+      "import pandas as pd"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 1
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "# This is the data frame you are given"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "# Create some data\n",
+      "d = {0:[2,7],\n",
+      "     1:[2,3],\n",
+      "     'sum':[4,10]\n",
+      "     }\n",
+      "d"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 2,
+       "text": [
+        "{0: [2, 7], 1: [2, 3], 'sum': [4, 10]}"
+       ]
+      }
+     ],
+     "prompt_number": 2
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "# Create the data frame\n",
+      "frm = DataFrame(data=d)\n",
+      "frm"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "html": [
+        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+        "<table border=\"1\" class=\"dataframe\">\n",
+        "  <thead>\n",
+        "    <tr style=\"text-align: right;\">\n",
+        "      <th></th>\n",
+        "      <th>0</th>\n",
+        "      <th>1</th>\n",
+        "      <th>sum</th>\n",
+        "    </tr>\n",
+        "  </thead>\n",
+        "  <tbody>\n",
+        "    <tr>\n",
+        "      <th>0</th>\n",
+        "      <td> 2</td>\n",
+        "      <td> 2</td>\n",
+        "      <td>  4</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>1</th>\n",
+        "      <td> 7</td>\n",
+        "      <td> 3</td>\n",
+        "      <td> 10</td>\n",
+        "    </tr>\n",
+        "  </tbody>\n",
+        "</table>\n",
+        "</div>"
+       ],
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 3,
+       "text": [
+        "   0  1  sum\n",
+        "0  2  2    4\n",
+        "1  7  3   10"
+       ]
+      }
+     ],
+     "prompt_number": 3
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      " # This is the data frame you have to replicate  \n",
+      " \n",
+      " * Add a new row   "
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "ans = {0:[2,7,1],\n",
+      "       1:[2,3,1],\n",
+      "       'sum':[4,10,2]\n",
+      "       }\n",
+      "\n",
+      "frm_ans = DataFrame(data=ans)\n",
+      "frm_ans"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "html": [
+        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+        "<table border=\"1\" class=\"dataframe\">\n",
+        "  <thead>\n",
+        "    <tr style=\"text-align: right;\">\n",
+        "      <th></th>\n",
+        "      <th>0</th>\n",
+        "      <th>1</th>\n",
+        "      <th>sum</th>\n",
+        "    </tr>\n",
+        "  </thead>\n",
+        "  <tbody>\n",
+        "    <tr>\n",
+        "      <th>0</th>\n",
+        "      <td> 2</td>\n",
+        "      <td> 2</td>\n",
+        "      <td>  4</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>1</th>\n",
+        "      <td> 7</td>\n",
+        "      <td> 3</td>\n",
+        "      <td> 10</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>2</th>\n",
+        "      <td> 1</td>\n",
+        "      <td> 1</td>\n",
+        "      <td>  2</td>\n",
+        "    </tr>\n",
+        "  </tbody>\n",
+        "</table>\n",
+        "</div>"
+       ],
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 4,
+       "text": [
+        "   0  1  sum\n",
+        "0  2  2    4\n",
+        "1  7  3   10\n",
+        "2  1  1    2"
+       ]
+      }
+     ],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "# Start Coding..."
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "# How check your answer?  \n",
+      "\n",
+      "The correct answer will have \"True\" on all the rows."
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "# \"Yout data frame\" == frm\n",
+      "frm_ans == frm_ans"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "html": [
+        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+        "<table border=\"1\" class=\"dataframe\">\n",
+        "  <thead>\n",
+        "    <tr style=\"text-align: right;\">\n",
+        "      <th></th>\n",
+        "      <th>0</th>\n",
+        "      <th>1</th>\n",
+        "      <th>sum</th>\n",
+        "    </tr>\n",
+        "  </thead>\n",
+        "  <tbody>\n",
+        "    <tr>\n",
+        "      <th>0</th>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>1</th>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "    </tr>\n",
+        "    <tr>\n",
+        "      <th>2</th>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "      <td> True</td>\n",
+        "    </tr>\n",
+        "  </tbody>\n",
+        "</table>\n",
+        "</div>"
+       ],
+       "metadata": {},
+       "output_type": "pyout",
+       "prompt_number": 5,
+       "text": [
+        "      0     1   sum\n",
+        "0  True  True  True\n",
+        "1  True  True  True\n",
+        "2  True  True  True"
+       ]
+      }
+     ],
+     "prompt_number": 5
+    }
+   ],
+   "metadata": {}
+  }
+ ]
+}

File lessons/12 - Lesson.ipynb

-{
- "metadata": {
-  "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "from adsy.display import *\n",
-      "extended_styles()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "html": [
-        "\n",
-        "        <script type=\"text/javascript\">\n",
-        "        var toggleInput;\n",
-        "        (function() {\n",
-        "            var inputInterval;\n",
-        "            var intervalCount = 0;\n",
-        "            var init = false;\n",
-        "            var inputUp = false;\n",
-        "            toggleInput = function() {\n",
-        "                if(inputUp) {\n",
-        "                    $('div.input').slideDown();\n",
-        "                    $('div.code_cell').attr('style', '');\n",
-        "                }\n",
-        "                else {\n",
-        "                    $('div.input').slideUp();\n",
-        "                    $('div.code_cell').attr('style', 'padding: 0px; margin: 0px');\n",
-        "                }\n",
-        "                inputUp = !inputUp;\n",
-        "                init = true;\n",
-        "            }\n",
-        "            function initExtendedStyles() {\n",
-        "                if(intervalCount > 15) {\n",
-        "                    clearInterval(inputInterval);\n",
-        "                }\n",
-        "                intervalCount += 1;\n",
-        "                try {\n",
-        "                    toggleInput();\n",
-        "                    clearInterval(inputInterval);\n",
-        "                } catch(e) {}\n",
-        "            }\n",
-        "            if (typeof jQuery == 'undefined') {\n",
-        "                // if jQuery Library is not loaded\n",
-        "                var script = document.createElement( 'script' );\n",
-        "                script.type = 'text/javascript';\n",
-        "                script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';\n",
-        "                document.body.appendChild(script);\n",
-        "            }\n",
-        "\n",
-        "            setTimeout(initExtendedStyles, 200);\n",
-        "            // jQuery is doing this interval trick\n",
-        "            // I guess its the way to do it then.\n",
-        "            inputInterval = setInterval(initExtendedStyles, 1000);\n",
-        "        }());\n",
-        "        </script>\n",
-        "       <a href=\"javascript:toggleInput()\">Toggle Input</a>\n",
-        "        "
-       ],
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 1,
-       "text": [
-        "<IPython.core.display.HTML at 0x34d5fb0>"
-       ]
-      }
-     ],
-     "prompt_number": 1
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "# Case Study  \n",
-      "\n",
-      "Company ABC has some data they have in an excel file that they want to get analyzed. A representative of Company ABC takes action and contacts David Rojas LLC at HernanDRojas@gmail dot com. The initial email contains the following:\n",
-      "\n",
-      "> Hi David,\n",
-      "\n",
-      "> We have a contact in the Bay area that recommended you to us. Our company collects a lot of financial data from our customers and there has been a recent interest from the executives to leverage the financial data to our benefit. At this point we are not sure what to do with the data but maybe someone with your expertise can do some initial exploratory analysis. I have attached a sample excel file so you can have an intial idea of what the data looks like.  \n",
-      "\n",
-      "> Tony  \n",
-      "Marketing Analytics Manager  \n",
-      "Company ABC  \n",
-      "408 444 4444  \n",
-      "\n",
-      "After I received the email from Tony, I decided to give him a call the following business day. In our conversation I asked him the following questions:  \n",
-      "\n",
-      "1. Can you send me the definitions of each of the columns of the excel workbook?    \n",
-      "2. What exactly are you expecting to get out of the analysis?    \n",
-      "3. How are you envisioning data adding value to Company ABC?    \n",
-      "4. How do you want me to deliver you the results?  \n",
-      "\n",
-      "After several attempts I soon realized that Tony really had no expectations on what he wanted to get out of the data analysis. He told me that they have never truly embraced data driven decisions thus this was all new to him and the company. I reminded Tony that a contract would have to be signed by both parties before I can begin my work. Tony also mentioned that he will get back with me on the column definitions and I can directly email him the results of the data analysis.  \n",
-      "\n",
-      "Second email from Company ABC:\n",
-      "\n",
-      "> Hi David,\n",
-      "\n",
-      "> It was refreshing talking to you last Friday. I am sure the company can make better decisions if we simply leverage the data we are already collecting, but we need your help. I have attached the signed contract with the rate we both agreed to over the phone. Call me on my direct line if you have any additional questions. I will be patiently awaiting the results.   \n",
-      "\n",
-      "> **Column Definitions**:  \n",
-      "\n",
-      "> * *Date* - Date of transaction   \n",
-      "* *Description* - Decription of transaction  \n",
-      "* *Amount* - USD dollar amount of transaction  \n",
-      "* *Transaction Type* - Credit vs debit  \n",
-      "* *Category* - List of specific groups an item belongs to  \n",
-      "\n",
-      "> Tony  \n",
-      "Marketing Analytics Manager  \n",
-      "Company ABC  \n",
-      "408 444 4444  \n",
-      "\n",
-      "\n",
-      "Below are the results from the data anaysis that were delivered to Tony:  \n",
-      "\n",
-      "---"
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "# import libraries\n",
-      "from pandas import DataFrame, read_csv, to_datetime, merge\n",
-      "import matplotlib.pyplot as plt"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 2
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "# Set inline plotting\n",
-      "%matplotlib inline"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 3
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "# File location\n",
-      "f = r'C:\\Users\\david\\Downloads\\transactions.csv'\n",
-      "\n",
-      "# csv file is tab seperated\n",
-      "# make the Date column the index of the dataframe\n",
-      "# ask Pandas to identify date columns \n",
-      "raw = read_csv(f, sep = '\\t', index_col = 'Date', parse_dates = True)\n",
-      "#raw"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 4
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "Let us take a peek at the data we will be working with. Note that I had to do a small amount of work in cleaning the data before I could begin my analysis.    \n",
-      "\n",
-      "**Steps I took to clean the data:**  \n",
-      "\n",
-      "* Sort the Date column ascending   \n",
-      "* Make the Amount column positive for credits and negative for debits  "
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "# we create a new dataframe with the date column ordered\n",
-      "df = raw.sort_index()\n",
-      "#df.head()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 5
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "# debit = -1 & credit = 1\n",
-      "AddSigns = df['Transaction Type'].apply(lambda x: -1 if x == 'debit' else 1).values\n",
-      "\n",
-      "# Add signs to Amount column\n",
-      "df['Amount'] = df['Amount']*AddSigns\n",
-      "\n",
-      "df.head(15)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "html": [
-        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
-        "<table border=\"1\" class=\"dataframe\">\n",
-        "  <thead>\n",
-        "    <tr style=\"text-align: right;\">\n",
-        "      <th></th>\n",
-        "      <th>Description</th>\n",
-        "      <th>Amount</th>\n",
-        "      <th>Transaction Type</th>\n",
-        "      <th>Category</th>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>Date</th>\n",
-        "      <th></th>\n",
-        "      <th></th>\n",
-        "      <th></th>\n",
-        "      <th></th>\n",
-        "    </tr>\n",
-        "  </thead>\n",
-        "  <tbody>\n",
-        "    <tr>\n",
-        "      <th>2010-01-04</th>\n",
-        "      <td>                            Exxon</td>\n",
-        "      <td>  -25.86</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td>      Gas &amp; Fuel</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-04</th>\n",
-        "      <td>                      Cinos Pizza</td>\n",
-        "      <td>   -9.37</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td>   Food &amp; Dining</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-04</th>\n",
-        "      <td>                             IKEA</td>\n",
-        "      <td>  -13.83</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td>     Furnishings</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-04</th>\n",
-        "      <td>                  Mellow Mushroom</td>\n",
-        "      <td>  -26.61</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td>   Food &amp; Dining</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-04</th>\n",
-        "      <td>                   ATM Withdrawal</td>\n",
-        "      <td>  -60.00</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td>        Shopping</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-04</th>\n",
-        "      <td>                      Globe Globe</td>\n",
-        "      <td>  -16.00</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td>        Shopping</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-04</th>\n",
-        "      <td>                           Publix</td>\n",
-        "      <td>  -48.32</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td>       Groceries</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-04</th>\n",
-        "      <td>                             IKEA</td>\n",
-        "      <td>   -4.00</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td>   Food &amp; Dining</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-05</th>\n",
-        "      <td>                    Maui Teriyaki</td>\n",
-        "      <td>   -8.46</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td>   Food &amp; Dining</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-05</th>\n",
-        "      <td>                     Panera Bread</td>\n",
-        "      <td>   -8.73</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td>   Food &amp; Dining</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-06</th>\n",
-        "      <td>                           Target</td>\n",
-        "      <td>   -2.12</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td>        Shopping</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-07</th>\n",
-        "      <td>                            Exxon</td>\n",
-        "      <td>  -25.04</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td>      Gas &amp; Fuel</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-07</th>\n",
-        "      <td>                        Check 334</td>\n",
-        "      <td> -694.00</td>\n",
-        "      <td>  debit</td>\n",
-        "      <td> Mortgage &amp; Rent</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-08</th>\n",
-        "      <td>           Infinite Payrollppd Id</td>\n",
-        "      <td> 1343.74</td>\n",
-        "      <td> credit</td>\n",
-        "      <td>        Paycheck</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-01-11</th>\n",
-        "      <td> Transfer from FREE CLASSIC CKING</td>\n",
-        "      <td>  500.00</td>\n",
-        "      <td> credit</td>\n",
-        "      <td>        Transfer</td>\n",
-        "    </tr>\n",
-        "  </tbody>\n",
-        "</table>\n",
-        "</div>"
-       ],
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 6,
-       "text": [
-        "                                 Description   Amount Transaction Type         Category\n",
-        "Date                                                                                   \n",
-        "2010-01-04                             Exxon   -25.86            debit       Gas & Fuel\n",
-        "2010-01-04                       Cinos Pizza    -9.37            debit    Food & Dining\n",
-        "2010-01-04                              IKEA   -13.83            debit      Furnishings\n",
-        "2010-01-04                   Mellow Mushroom   -26.61            debit    Food & Dining\n",
-        "2010-01-04                    ATM Withdrawal   -60.00            debit         Shopping\n",
-        "2010-01-04                       Globe Globe   -16.00            debit         Shopping\n",
-        "2010-01-04                            Publix   -48.32            debit        Groceries\n",
-        "2010-01-04                              IKEA    -4.00            debit    Food & Dining\n",
-        "2010-01-05                     Maui Teriyaki    -8.46            debit    Food & Dining\n",
-        "2010-01-05                      Panera Bread    -8.73            debit    Food & Dining\n",
-        "2010-01-06                            Target    -2.12            debit         Shopping\n",
-        "2010-01-07                             Exxon   -25.04            debit       Gas & Fuel\n",
-        "2010-01-07                         Check 334  -694.00            debit  Mortgage & Rent\n",
-        "2010-01-08            Infinite Payrollppd Id  1343.74           credit         Paycheck\n",
-        "2010-01-11  Transfer from FREE CLASSIC CKING   500.00           credit         Transfer"
-       ]
-      }
-     ],
-     "prompt_number": 6
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "Now that the data is clean, we can begin our analysis.  \n",
-      "\n",
-      "We simply start out by plotting the only numerical column, Amount! It seems like there is a steady positive cashflow thoughout the year. On the debit side, the winter and summer months seem to have slightly more activity than the other months. April, June, September, and November are months we can keep an eye out for. "
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "df['Amount'].plot();"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "display_data",
-       "png": "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\nYII=\n",
-       "text": [
-        "<matplotlib.figure.Figure at 0x34d5e30>"
-       ]
-      }
-     ],
-     "prompt_number": 7
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "We are working with a data set of 823 data points, we will ignore the mean and standard deviation since the distribution from the plot above tells us these numbers are not valid. Most of the transactions seem to be between 5 and 28 dollars. Other figures to keep an eye out for are 40, 1,343.74 (credit), and 694."
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "df['Amount'].describe()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 8,
-       "text": [
-        "count     823.000000\n",
-        "mean        7.824241\n",
-        "std       291.397559\n",
-        "min     -1343.740000\n",
-        "25%       -28.930000\n",
-        "50%       -13.420000\n",
-        "75%        -5.780000\n",
-        "max      2269.950000\n",
-        "dtype: float64"
-       ]
-      }
-     ],
-     "prompt_number": 8
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "The numbers below represent the frequency of individual transactions. For example, a debit of ***2 dollars*** has occurred in the year 2010 a total of ***17 times***."
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "df['Amount'].value_counts()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 9,
-       "text": [
-        "-2.00       17\n",
-        "-40.00      15\n",
-        "-25.00      14\n",
-        " 1343.74    12\n",
-        "-5.33       11\n",
-        "-694.00     11\n",
-        "-18.00      11\n",
-        "-10.00      10\n",
-        "-45.00       9\n",
-        " 1343.73     8\n",
-        "-6.39        7\n",
-        "-121.83      7\n",
-        "-3.00        7\n",
-        "-7.89        7\n",
-        "-3.09        6\n",
-        "...\n",
-        "-54.54      1\n",
-        "-25.42      1\n",
-        "-79.63      1\n",
-        "-24.99      1\n",
-        "-3.82       1\n",
-        "-31.43      1\n",
-        "-11.91      1\n",
-        "-3.98       1\n",
-        "-21.58      1\n",
-        "-7.47       1\n",
-        "-165.56     1\n",
-        " 2269.95    1\n",
-        "-5.31       1\n",
-        "-26.61      1\n",
-        "-22.50      1\n",
-        "Length: 552, dtype: int64"
-       ]
-      }
-     ],
-     "prompt_number": 9
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "Most of the transactions in the file are ATM fees! I would recommend you to find a way to show your customers how much money they are spending every year on ATM fees, in this case 34 dollars.  "
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "TwoDollars = df['Amount'].isin([-2]) \n",
-      "df[TwoDollars]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "html": [
-        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
-        "<table border=\"1\" class=\"dataframe\">\n",
-        "  <thead>\n",
-        "    <tr style=\"text-align: right;\">\n",
-        "      <th></th>\n",
-        "      <th>Description</th>\n",
-        "      <th>Amount</th>\n",
-        "      <th>Transaction Type</th>\n",
-        "      <th>Category</th>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>Date</th>\n",
-        "      <th></th>\n",
-        "      <th></th>\n",
-        "      <th></th>\n",
-        "      <th></th>\n",
-        "    </tr>\n",
-        "  </thead>\n",
-        "  <tbody>\n",
-        "    <tr>\n",
-        "      <th>2010-03-01</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-04-26</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-06-01</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-06-01</th>\n",
-        "      <td> ATM Withdrawal</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-06-18</th>\n",
-        "      <td> ATM Withdrawal</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-06-18</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-07-06</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-07-19</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-08-11</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-08-11</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-08-30</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-09-20</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-11-01</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-11-08</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-12-23</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-12-29</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-12-29</th>\n",
-        "      <td>        ATM Fee</td>\n",
-        "      <td>-2</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "  </tbody>\n",
-        "</table>\n",
-        "</div>"
-       ],
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 10,
-       "text": [
-        "               Description  Amount Transaction Type Category\n",
-        "Date                                                        \n",
-        "2010-03-01         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-04-26         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-06-01         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-06-01  ATM Withdrawal      -2            debit  ATM Fee\n",
-        "2010-06-18  ATM Withdrawal      -2            debit  ATM Fee\n",
-        "2010-06-18         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-07-06         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-07-19         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-08-11         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-08-11         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-08-30         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-09-20         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-11-01         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-11-08         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-12-23         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-12-29         ATM Fee      -2            debit  ATM Fee\n",
-        "2010-12-29         ATM Fee      -2            debit  ATM Fee"
-       ]
-      }
-     ],
-     "prompt_number": 10
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "# add them up\n",
-      "#df['Amount'][TwoDollars].sum()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 11
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "You can also notice that we have several other atm fees that are grater an 2 dollars and inclusing these we now have a total of 61.25 in atm fees."
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "# get all ATM Fee transactions\n",
-      "atm = df['Category'] == 'ATM Fee'\n",
-      "\n",
-      "df[atm]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "html": [
-        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
-        "<table border=\"1\" class=\"dataframe\">\n",
-        "  <thead>\n",
-        "    <tr style=\"text-align: right;\">\n",
-        "      <th></th>\n",
-        "      <th>Description</th>\n",
-        "      <th>Amount</th>\n",
-        "      <th>Transaction Type</th>\n",
-        "      <th>Category</th>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>Date</th>\n",
-        "      <th></th>\n",
-        "      <th></th>\n",
-        "      <th></th>\n",
-        "      <th></th>\n",
-        "    </tr>\n",
-        "  </thead>\n",
-        "  <tbody>\n",
-        "    <tr>\n",
-        "      <th>2010-03-01</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-03-01</th>\n",
-        "      <td>                               ATM Withdrawal</td>\n",
-        "      <td>-3.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-04-26</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-04-26</th>\n",
-        "      <td>                               ATM Withdrawal</td>\n",
-        "      <td>-2.25</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-06-01</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-06-01</th>\n",
-        "      <td>                               ATM Withdrawal</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-06-18</th>\n",
-        "      <td>                               ATM Withdrawal</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-06-18</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-07-06</th>\n",
-        "      <td> NON-CHASE ATM WITHDRAW  30680007/0319 W UNIV</td>\n",
-        "      <td>-3.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-07-06</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-07-19</th>\n",
-        "      <td> NON-CHASE ATM WITHDRAW  33904307/1719 W UNIV</td>\n",
-        "      <td>-3.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-07-19</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-08-09</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-3.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-08-11</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-08-11</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-08-30</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-08-30</th>\n",
-        "      <td>                               ATM Withdrawal</td>\n",
-        "      <td>-2.50</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-09-20</th>\n",
-        "      <td>                               ATM Withdrawal</td>\n",
-        "      <td>-2.50</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-09-20</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-09-20</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.50</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-11-01</th>\n",
-        "      <td> NON-CHASE ATM WITHDRAW  37164710/30116 SE 1S</td>\n",
-        "      <td>-2.50</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-11-01</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-11-08</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",
-        "      <td> ATM Fee</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2010-12-23</th>\n",
-        "      <td>                                      ATM Fee</td>\n",
-        "      <td>-2.00</td>\n",
-        "      <td> debit</td>\n",