{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exercise 2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Beginners:\n",
    "\n",
    "\n",
    "  - Read the file `Orange_1.tsv`\n",
    "  - Print the height column\n",
    "  - Print the data for the tree at age 2\n",
    "  - Find the maximum circumference\n",
    "  - How old was the tree at that time?\n",
    "  - Plot the circumference in relation to the height\n",
    "  \n",
    "  Solution: see the bottom of this notebook."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Advanced: Plotting IMDB "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will make one last visit to the IMDB data. This time, you will get to explore the data by plotting graphs. Pandas will do the parsing for you!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The questions to answer are:\n",
    "    \n",
    "- Are movies getting better or worse? That is, how do the movies' ratings relate to the year they were produced? \n",
    "- What rating does most movies have - how many good movies are there?\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will use two types of plots: `scatter` and `histogram`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Intermediate**: follow the step-by-step guide below to create the plots.\n",
    "\n",
    "**Pro**: try to answer the questions above on your own. Use Pandas, and get inspired by the documentation and previous lectures."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Step by step. Getting started - reading the data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you might have thought when parsing the IMDB data yourself, getting it right is not that easy. Pandas agree, it's much more complicated than reading the Orange tree data. But let's just start by making a try:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th># Votes | Rating | Year | Runtime | URL | Genres | Title</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>126807|   8.5|1957|5280|https://images-na....</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>71379|   8.2|1925|4320|https://images-na....</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>700599|   8.3|2009|5760|https://images-na....</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>27632|   8.3|1928|6840|https://images-na....</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>228498|   8.4|1959|8160|https://images-na....</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  # Votes | Rating | Year | Runtime | URL | Genres | Title\n",
       "0      126807|   8.5|1957|5280|https://images-na....      \n",
       "1       71379|   8.2|1925|4320|https://images-na....      \n",
       "2      700599|   8.3|2009|5760|https://images-na....      \n",
       "3       27632|   8.3|1928|6840|https://images-na....      \n",
       "4      228498|   8.4|1959|8160|https://images-na....      "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas\n",
    "movies = pandas.read_table('../../downloads/250.imdb')\n",
    "movies.head()  # use .head() to print only the first part of the table"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Run the commands above and take a look at the result. Try to figure out what went wrong!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "<br><br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First of all, the lines are not split at the `|`, like they should be. To fix it, use the keyword argument `sep`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th># Votes</th>\n",
       "      <th>Rating</th>\n",
       "      <th>Year</th>\n",
       "      <th>Runtime</th>\n",
       "      <th>URL</th>\n",
       "      <th>Genres</th>\n",
       "      <th>Title</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>126807</td>\n",
       "      <td>8.5</td>\n",
       "      <td>1957</td>\n",
       "      <td>5280</td>\n",
       "      <td>https://images-na.ssl-images-amazon.com/images...</td>\n",
       "      <td>Drama,War</td>\n",
       "      <td>Paths of Glory</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>71379</td>\n",
       "      <td>8.2</td>\n",
       "      <td>1925</td>\n",
       "      <td>4320</td>\n",
       "      <td>https://images-na.ssl-images-amazon.com/images...</td>\n",
       "      <td>Adventure,Comedy,Drama,Family</td>\n",
       "      <td>The Gold Rush</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>700599</td>\n",
       "      <td>8.3</td>\n",
       "      <td>2009</td>\n",
       "      <td>5760</td>\n",
       "      <td>https://images-na.ssl-images-amazon.com/images...</td>\n",
       "      <td>Animation,Adventure,Comedy,Family</td>\n",
       "      <td>Up</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>27632</td>\n",
       "      <td>8.3</td>\n",
       "      <td>1928</td>\n",
       "      <td>6840</td>\n",
       "      <td>https://images-na.ssl-images-amazon.com/images...</td>\n",
       "      <td>Biography,Drama,History</td>\n",
       "      <td>The Passion of Joan of Arc</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>228498</td>\n",
       "      <td>8.4</td>\n",
       "      <td>1959</td>\n",
       "      <td>8160</td>\n",
       "      <td>https://images-na.ssl-images-amazon.com/images...</td>\n",
       "      <td>Action,Adventure,Crime,Mystery,Thriller</td>\n",
       "      <td>North by Northwest</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   # Votes    Rating    Year    Runtime   \\\n",
       "0    126807       8.5    1957       5280   \n",
       "1     71379       8.2    1925       4320   \n",
       "2    700599       8.3    2009       5760   \n",
       "3     27632       8.3    1928       6840   \n",
       "4    228498       8.4    1959       8160   \n",
       "\n",
       "                                                URL   \\\n",
       "0  https://images-na.ssl-images-amazon.com/images...   \n",
       "1  https://images-na.ssl-images-amazon.com/images...   \n",
       "2  https://images-na.ssl-images-amazon.com/images...   \n",
       "3  https://images-na.ssl-images-amazon.com/images...   \n",
       "4  https://images-na.ssl-images-amazon.com/images...   \n",
       "\n",
       "                                   Genres                        Title  \n",
       "0                                Drama,War              Paths of Glory  \n",
       "1            Adventure,Comedy,Drama,Family               The Gold Rush  \n",
       "2        Animation,Adventure,Comedy,Family                          Up  \n",
       "3                  Biography,Drama,History  The Passion of Joan of Arc  \n",
       "4  Action,Adventure,Crime,Mystery,Thriller          North by Northwest  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies = pandas.read_table('../../downloads/250.imdb', sep='|')\n",
    "movies.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "<br><br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Much better!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now it looks like we're getting somewhere!\n",
    "But the column names do not look quite right. Take a look yourself."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['# Votes ', ' Rating ', ' Year ', ' Runtime ', ' URL ', ' Genres ',\n",
       "       ' Title'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "<br><br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There are too many whitespaces! Having whitespaces in the column names will make it much harder for you to work with the data, since it's very easy to miss them or to forget about them. That might give you annoying errors, like:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "ename": "AttributeError",
     "evalue": "'DataFrame' object has no attribute 'Rating'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[0;32m/var/folders/_z/_lsc_j_s3t15pr9j4cbjv7ch0000gn/T/ipykernel_16787/2139141513.py\u001b[0m in \u001b[0;36m?\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmovies\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mRating\u001b[0m  \u001b[0;31m# no whitespaces\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/anaconda3/envs/python-workshop/lib/python3.9/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m?\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m   5483\u001b[0m             \u001b[0;32mand\u001b[0m \u001b[0mname\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_accessors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5484\u001b[0m             \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_info_axis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_can_hold_identifiers_and_holds_name\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5485\u001b[0m         ):\n\u001b[1;32m   5486\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 5487\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__getattribute__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m: 'DataFrame' object has no attribute 'Rating'"
     ]
    }
   ],
   "source": [
    "movies.Rating  # no whitespaces"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "movies[' Rating']  # forgetting the last whitespace"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Pandas did not manage to get this right for us, so here's one way of fixing this issue:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "movies.columns = movies.columns.str.strip(' #')  # Remove '#' and whitespaces\n",
    "# ... and try it:\n",
    "movies.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "<br><br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's the complete code for parsing the data. Pretty neat, isn't it?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas\n",
    "movies = pandas.read_table('../../downloads/250.imdb', sep='|')\n",
    "movies.columns = movies.columns.str.strip(' #')\n",
    "\n",
    "\n",
    "movies.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Plotting"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now to the fun part!\n",
    "First, a note on plotting. If your plots don't show up, try the following:\n",
    "\n",
    "- if using a notebook, run: "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```py\n",
    "%pylab inline \n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- if using the Python interpreter, use this:\n",
    "\n",
    "```py\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# ... code to generate the plots ...\n",
    "\n",
    "plt.show()\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1. Are movies getting better or worse?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To solve this, we will use a scatter plot. Remember that our dataframe is called `movies`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To create the plot, we use the `plot` method and set `kind` to `scatter`:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```py\n",
    "movies.plot(x=..., y=..., kind='scatter',fontsize=14, figsize=(12,10))\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "What to put on the x and y axis? Take a moment and see if you can figure it out."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "<br><br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We want the x axis to represent the time, so we set `x` to `'Year'`.\n",
    "\n",
    "The y axis should represent how good a movie is, so let's use the rating:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "movies.plot(x='Year', y='Rating', kind='scatter',fontsize=14, figsize=(12,10))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You've got a graph! Have a look at it and decide for yourself whether movies seem to be getting better or not."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "<br><br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2. What rating do most movies have? How many good movies are there?\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we're interested in the rating, and specifically the frequency of each rating. Let's use a histogram for this. A histogram looks like this:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"../../img/histplot.png\" width=60%>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The frequency for each of the values (of the x axis) are shown on the y axis. This histogram tells us that values around 1 are more frequent than the values 4 or -2."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Making a histogram is not more difficult than changing the `kind` to `hist`. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```py\n",
    "movies.plot(kind='hist', y=...)\n",
    "```\n",
    "\n",
    "Notice that we're skipping the x axis here. Histograms usually show the frequency on one axis, and pandas wants you to set the `y`.\n",
    "\n",
    "Try to plot a histogram of the rating of the movies."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "<br><br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "movies.plot(kind='hist', y='Rating')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Actually, there are more ways of getting a histogram in pandas. Take a look at `.hist()`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "movies.hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "<br><br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You did it! That's all! Feel free to play around with your graphs and data. If you want to plot more, some ideas are given below. If you have had enough, take a break or prepare for the course project."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3. Want more?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Find out if people vote more for good movies or not. How does the number of votes correlate with the rating?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Which years were most movies produced?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There are plenty of other tutorials online, here are a few:\n",
    "    \n",
    "\n",
    "-  https://www.youtube.com/playlist?list=PLQVvvaa0QuDc-3szzjeP6N6b0aDrrKyL- A nice youtube tutorial series\n",
    "\n",
    "- https://swcarpentry.github.io/python-intermediate-mosquitoes/01-intro-python.html\n",
    "\n",
    "- https://www.tutorialspoint.com/python_pandas/index.htm\n",
    "\n",
    "- https://www.tutorialspoint.com/python_pandas/python_pandas_visualization.htm (The visualization section of the tutorial above)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Solution ex 1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Read the file Orange_1.tsv:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>circumference</th>\n",
       "      <th>height</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>5</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>10</td>\n",
       "      <td>50</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age  circumference  height\n",
       "0    1              2      30\n",
       "1    2              3      35\n",
       "2    3              5      40\n",
       "3    4             10      50"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "df = pd.read_table('../../downloads/Orange_1.tsv') \n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Print the height column:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    30\n",
       "1    35\n",
       "2    40\n",
       "3    50\n",
       "Name: height, dtype: int64"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.height"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Print the data for the tree at age 2:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>circumference</th>\n",
       "      <th>height</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age  circumference  height\n",
       "1    2              3      35"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.age == 2]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Find the maximum circumference:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "max_c = df.circumference.max()\n",
    "max_c"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "How old was the tree at that time?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>circumference</th>\n",
       "      <th>height</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>10</td>\n",
       "      <td>50</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age  circumference  height\n",
       "3    4             10      50"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.circumference == max_c]  # print the whole row"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3    4\n",
       "Name: age, dtype: int64"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.circumference == max_c].age  # ... or just print the age (and the index of the row)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# To get just the age, without the index, you can use int()\n",
    "int(df[df.circumference == max_c].age)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the circumference in relation to the height:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='circumference'>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.plot(x='circumference', y='height')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}