{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Case Study 1: Diamonds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this lesson, we're going to do some basic data analyses on a set of diamond characteristics and prices. Data are available [here](http://people.duke.edu/~jmp33/dibs/minerals.csv)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Download the data, then save the file to a folder called `data` in your current directory." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you open the file in a text editor, you will see that it consists of a bunch of lines, each with a bunch of commas. This is a csv or \"comma-separated value\" file. Every row represents a record (like a row in a spreadsheet), with each cell separated by a comma. The first row has the same format, but the entries are the names of the columns." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Loading the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We would like to load this data into Python. But to do so, we will need to tell Python that we want to get some tools ready. These tools are located in a library (the Python term is \"module\") called Pandas. So we do this:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This tells Python to load the `pandas` module and nickname it `pd`. Then, whenever we want to use functionality from `pandas`, we do so by giving the address of the function we want. In this case, we want to load data from a csv file, so we call the function `read_csv`:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# we can include comments like this\n", "\n", "# note that for the following to work, you will need to be running the notebook from a folder\n", "# with a subdirectory called data that has the minerals.csv file inside\n", "data = pd.read_csv('data/minerals.csv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's read from the left:\n", "\n", "`data =` \n", "\n", "tells Python that we want to do something (on the right hand side of the equation) and assign its output to a variable called `data`. We could have called it `duck` or `shotput` or `harmony`, but we want to give our variables meaningful names, and in cases where we are only going to be exploring a single dataset, it's convenient to name it the obvious thing.\n", "\n", "On the right hand side, we're doing several things:\n", "- We're telling Python to look in the `pandas` module (nicknamed `pd`)\n", "- We telling Python to call a function named `read_csv` that's found there (we will find that looking up functions in modules is a lot like looking up files in directories)\n", "- We're giving the function the (local) path to the file in quotes\n", "\n", "We will see this pattern repeatedly in Python. We use names like `read_csv` to tell Python to perform actions. In parentheses, we will supply variables or pieces of information needed as inputs by Python to perform those actions. The actions are called functions (related to the idea of functions in math, which are objects that take inputs and produce an output), and the pieces of information inside parentheses are called \"arguments.\" Much more on all of this later." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Examining the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So what did we accomplish?\n", "\n", "The easiest way to see is by asking Python to print the variable to the screen. We can do this with" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " item shape carat cut color clarity polish symmetry depth table \\\n", "0 1 PS 0.28 F F SI2 VG G 61.6 50.0 \n", "1 2 PS 0.23 G F SI1 VG G 67.5 51.0 \n", "2 3 EC 0.34 G I VS2 VG VG 71.6 65.0 \n", "3 4 MQ 0.34 G J VS1 G G 68.2 55.0 \n", "4 5 PS 0.23 G D SI1 VG VG 55.0 58.0 \n", "5 6 MQ 0.23 F G VS2 VG G 71.6 55.0 \n", "6 7 RA 0.37 F I SI2 G G 79.0 76.0 \n", "7 8 EC 0.24 VG E SI1 VG VG 68.6 65.0 \n", "8 9 RD 0.24 I G SI2 VG VG 62.0 59.0 \n", "9 10 MQ 0.33 G H SI2 G G 66.7 61.0 \n", "10 11 RD 0.23 VG E SI2 G VG 59.7 59.0 \n", "11 12 PS 0.35 F H SI2 G G 50.0 55.0 \n", "12 13 PS 0.23 VG D SI1 EX VG 65.8 61.0 \n", "13 14 RD 0.25 I H SI2 VG EX 61.2 58.0 \n", "14 15 RD 0.25 VG D SI2 VG VG 62.4 59.0 \n", "15 16 RA 0.33 G J VVS1 VG VG 59.9 69.0 \n", "16 17 RD 0.27 I H SI2 VG VG 61.7 56.0 \n", "17 18 CU 0.23 G D VS2 VG VG 56.3 66.0 \n", "18 19 RA 0.23 VG F VS1 EX VG 65.2 71.0 \n", "19 20 RA 0.23 VG F VS2 VG G 68.6 74.0 \n", "20 21 PS 0.39 G J VS1 G G 54.2 66.0 \n", "21 22 OV 0.23 F F VS1 EX G 51.4 65.0 \n", "22 23 OV 0.33 F I SI2 VG VG 52.4 53.0 \n", "23 24 RA 0.23 G G VVS2 VG VG 59.4 71.0 \n", "24 25 EC 0.32 VG I SI1 EX EX 67.8 60.0 \n", "25 26 CU 0.32 VG I VS2 EX VG 63.8 61.0 \n", "26 27 MQ 0.36 VG G SI2 G G 64.9 60.0 \n", "27 28 EC 0.23 G G VVS1 VG VG 68.8 73.0 \n", "28 29 EC 0.31 VG F SI2 VG VG 65.9 69.0 \n", "29 30 EC 0.31 VG D SI2 VG VG 68.2 68.0 \n", "... ... ... ... .. ... ... ... ... ... ... \n", "65346 65347 RD 6.08 I F VVS2 EX EX 62.0 56.0 \n", "65347 65348 EC 5.00 VG D IF VG G 67.3 60.0 \n", "65348 65349 EC 8.01 VG F VVS2 G G 68.7 61.0 \n", "65349 65350 PS 16.34 G G VVS2 VG G 54.1 62.0 \n", "65350 65351 RD 12.33 I J VS1 EX EX 60.4 58.0 \n", "65351 65352 OV 5.27 VG D IF EX EX 60.8 61.0 \n", "65352 65353 RD 8.75 I G VS1 EX EX 62.1 57.0 \n", "65353 65354 PS 6.22 G D IF VG VG 56.0 54.0 \n", "65354 65355 EC 11.11 VG H VVS2 EX G 60.9 64.0 \n", "65355 65356 RA 11.16 VG D VS2 G G 66.2 68.0 \n", "65356 65357 RD 5.24 I E IF EX EX 59.7 59.0 \n", "65357 65358 RD 5.27 I D VVS1 EX EX 61.8 56.0 \n", "65358 65359 RD 6.02 VG D VVS1 VG G 61.1 59.0 \n", "65359 65360 RD 4.83 I D IF EX EX 61.9 55.0 \n", "65360 65361 RD 7.53 I F VVS2 EX EX 62.7 54.0 \n", "65361 65362 EC 13.11 VG H VVS2 EX EX 62.5 63.0 \n", "65362 65363 OV 11.15 G F VS2 VG VG 65.3 58.0 \n", "65363 65364 RD 5.24 I D IF VG VG 62.6 54.0 \n", "65364 65365 EC 7.25 F D IF VG VG 69.4 53.0 \n", "65365 65366 RD 5.34 I D IF EX EX 61.6 57.0 \n", "65366 65367 RD 5.47 I D IF EX EX 62.4 54.0 \n", "65367 65368 RD 6.02 I D FL EX EX 62.8 57.0 \n", "65368 65369 RD 6.54 VG D VVS1 VG VG 58.0 64.0 \n", "65369 65370 RD 9.56 I F FL EX EX 60.3 60.0 \n", "65370 65371 CU 8.40 G D IF VG G 57.9 59.0 \n", "65371 65372 RD 10.13 I F IF EX EX 60.3 58.0 \n", "65372 65373 RD 20.13 I J VS1 EX EX 59.2 59.0 \n", "65373 65374 RD 12.35 I G IF EX EX 59.8 60.0 \n", "65374 65375 RD 9.19 I E IF EX EX 60.9 60.0 \n", "65375 65376 RD 10.13 I D FL EX EX 62.5 57.0 \n", "\n", " fluorescence price per carat culet length to width ratio \\\n", "0 Faint 864 None 1.65 \n", "1 None 1057 None 1.46 \n", "2 Faint 812 None 1.40 \n", "3 Faint 818 None 1.52 \n", "4 None 1235 None 1.42 \n", "5 None 1248 None 1.95 \n", "6 None 781 None 1.03 \n", "7 Faint 1204 None 1.34 \n", "8 None 1204 None 1.01 \n", "9 Medium 888 None 2.02 \n", "10 None 1278 None 1.01 \n", "11 None 860 Small 1.35 \n", "12 None 1322 None 1.52 \n", "13 None 1216 None 1.00 \n", "14 None 1280 None 1.01 \n", "15 None 976 None 1.11 \n", "16 None 1193 None 1.01 \n", "17 Faint 1426 None 1.08 \n", "18 None 1443 None 1.13 \n", "19 None 1452 None 1.15 \n", "20 None 859 Slightly Large 1.37 \n", "21 None 1461 None 1.35 \n", "22 Faint 1018 None 1.41 \n", "23 None 1474 None 1.09 \n", "24 None 1059 None 1.45 \n", "25 None 1059 None 1.10 \n", "26 None 944 Small 1.96 \n", "27 None 1496 None 1.30 \n", "28 None 1110 None 1.44 \n", "29 None 1113 None 1.35 \n", "... ... ... ... ... \n", "65346 None 101250 None 1.00 \n", "65347 None 123700 Small 1.47 \n", "65348 None 77715 Small 1.49 \n", "65349 None 38295 None 1.59 \n", "65350 Faint 51862 None 1.01 \n", "65351 None 121968 None 1.47 \n", "65352 None 74829 Very Small 1.01 \n", "65353 None 105450 None 1.51 \n", "65354 None 59629 Very Small 1.13 \n", "65355 Medium Blue 61372 None 1.17 \n", "65356 None 133488 None 1.01 \n", "65357 None 132894 None 1.01 \n", "65358 Strong 122082 Very Small 1.01 \n", "65359 None 155322 None 1.00 \n", "65360 None 104247 None 1.01 \n", "65361 Faint 60384 Small 1.21 \n", "65362 Faint 80420 Very Small 1.37 \n", "65363 None 173186 None 1.01 \n", "65364 None 133200 Medium 1.33 \n", "65365 None 185328 None 1.00 \n", "65366 None 183475 None 1.00 \n", "65367 Faint 168340 None 1.01 \n", "65368 None 169873 Very Small 1.01 \n", "65369 None 120336 Very Small 1.01 \n", "65370 None 144300 Slightly Large 1.20 \n", "65371 None 130112 Very Small 1.01 \n", "65372 None 66420 None 1.01 \n", "65373 Faint 110662 None 1.01 \n", "65374 None 150621 None 1.00 \n", "65375 None 256150 None 1.00 \n", "\n", " delivery date price \n", "0 \\r\\nJul 8\\r\\n 242.0 \n", "1 \\r\\nJul 8\\r\\n 243.0 \n", "2 \\r\\nJul 12\\r\\n 276.0 \n", "3 \\r\\nJul 8\\r\\n 278.0 \n", "4 \\r\\nJul 14\\r\\n 284.0 \n", "5 \\r\\nJul 8\\r\\n 287.0 \n", "6 \\r\\nJul 8\\r\\n 289.0 \n", "7 \\r\\nJul 8\\r\\n 289.0 \n", "8 \\r\\nJul 8\\r\\n 289.0 \n", "9 \\r\\nJul 8\\r\\n 293.0 \n", "10 \\r\\nJul 14\\r\\n 294.0 \n", "11 \\r\\nJul 8\\r\\n 301.0 \n", "12 \\r\\nJul 14\\r\\n 304.0 \n", "13 \\r\\nJul 14\\r\\n 304.0 \n", "14 \\r\\nJul 14\\r\\n 320.0 \n", "15 \\r\\nJul 8\\r\\n 322.0 \n", "16 \\r\\nJul 14\\r\\n 322.0 \n", "17 \\r\\nJul 8\\r\\n 328.0 \n", "18 \\r\\nJul 8\\r\\n 332.0 \n", "19 \\r\\nJul 8\\r\\n 334.0 \n", "20 \\r\\nJul 8\\r\\n 335.0 \n", "21 \\r\\nJul 8\\r\\n 336.0 \n", "22 \\r\\nJul 8\\r\\n 336.0 \n", "23 \\r\\nJul 8\\r\\n 339.0 \n", "24 \\r\\nJul 8\\r\\n 339.0 \n", "25 \\r\\nJul 8\\r\\n 339.0 \n", "26 \\r\\nJul 8\\r\\n 340.0 \n", "27 \\r\\nJul 8\\r\\n 344.0 \n", "28 \\r\\nJul 8\\r\\n 344.0 \n", "29 \\r\\nJul 8\\r\\n 345.0 \n", "... ... ... \n", "65346 \\r\\nJul 8\\r\\n 615600.0 \n", "65347 \\r\\nJul 12\\r\\n 618498.0 \n", "65348 \\r\\nJul 12\\r\\n 622495.0 \n", "65349 \\r\\nJul 14\\r\\n 625741.0 \n", "65350 \\r\\nJul 13\\r\\n 639454.0 \n", "65351 \\r\\nJul 12\\r\\n 642772.0 \n", "65352 \\r\\nJul 8\\r\\n 654753.0 \n", "65353 \\r\\nJul 8\\r\\n 655899.0 \n", "65354 \\r\\nJul 8\\r\\n 662481.0 \n", "65355 \\r\\nJul 8\\r\\n 684911.0 \n", "65356 \\r\\nJul 8\\r\\n 699478.0 \n", "65357 \\r\\nJul 8\\r\\n 700352.0 \n", "65358 \\r\\nJul 12\\r\\n 734935.0 \n", "65359 \\r\\nJul 18\\r\\n 750205.0 \n", "65360 \\r\\nJul 12\\r\\n 784980.0 \n", "65361 \\r\\nJul 8\\r\\n 791635.0 \n", "65362 \\r\\nJul 8\\r\\n 896678.0 \n", "65363 \\r\\nJul 8\\r\\n 907494.0 \n", "65364 \\r\\nJul 8\\r\\n 965700.0 \n", "65365 \\r\\nJul 8\\r\\n 989652.0 \n", "65366 \\r\\nJul 12\\r\\n 1003607.0 \n", "65367 \\r\\nJul 12\\r\\n 1013405.0 \n", "65368 \\r\\nJul 13\\r\\n 1110971.0 \n", "65369 \\r\\nJul 8\\r\\n 1150413.0 \n", "65370 \\r\\nJul 8\\r\\n 1212120.0 \n", "65371 \\r\\nJul 8\\r\\n 1318034.0 \n", "65372 \\r\\nJul 14\\r\\n 1337035.0 \n", "65373 \\r\\nJul 12\\r\\n 1366679.0 \n", "65374 \\r\\nJul 13\\r\\n 1384207.0 \n", "65375 \\r\\nJul 12\\r\\n 2594800.0 \n", "\n", "[65376 rows x 16 columns]\n" ] } ], "source": [ "print(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You should be able to see that the data consists of a bunch of rows and columns, and that, at some point in the middle, Python puts a bunch of ...'s, indicating it's not printing all the information. That's good in this case, since the data are pretty big." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So how big are the data? We can find this out by typing" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(65376, 16)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We could have gotten the same answer by typing\n", "\n", "```python\n", "print(data.shape)\n", "```\n", "but when we just type the variable name, Python assumes we mean `print`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So what does this answer mean? It means that our data have something like 65,000 rows and 16 columns. Here, the convention is (rows, columns)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice also that the way we got this piece of information was by typing the variable, followed by `.`, followed by the name of a property (called an \"attribute\"). Again, you can think of this variable as an object having both pieces of information (attributes) and pieces of behavior (functions or methods) tucked inside of it like a file system. The way we access those is by giving a path, except with `.` instead of `/`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But there's an even friendlier way to look at our data that's special to the notebook. To look at the first few rows of our data, we can type" ] }, { "cell_type": "code", "execution_count": 5, "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", "
itemshapecaratcutcolorclaritypolishsymmetrydepthtablefluorescenceprice per caratculetlength to width ratiodelivery dateprice
01PS0.28FFSI2VGG61.650.0Faint864None1.65\\r\\nJul 8\\r\\n242.0
12PS0.23GFSI1VGG67.551.0None1057None1.46\\r\\nJul 8\\r\\n243.0
23EC0.34GIVS2VGVG71.665.0Faint812None1.40\\r\\nJul 12\\r\\n276.0
34MQ0.34GJVS1GG68.255.0Faint818None1.52\\r\\nJul 8\\r\\n278.0
45PS0.23GDSI1VGVG55.058.0None1235None1.42\\r\\nJul 14\\r\\n284.0
\n", "
" ], "text/plain": [ " item shape carat cut color clarity polish symmetry depth table \\\n", "0 1 PS 0.28 F F SI2 VG G 61.6 50.0 \n", "1 2 PS 0.23 G F SI1 VG G 67.5 51.0 \n", "2 3 EC 0.34 G I VS2 VG VG 71.6 65.0 \n", "3 4 MQ 0.34 G J VS1 G G 68.2 55.0 \n", "4 5 PS 0.23 G D SI1 VG VG 55.0 58.0 \n", "\n", " fluorescence price per carat culet length to width ratio \\\n", "0 Faint 864 None 1.65 \n", "1 None 1057 None 1.46 \n", "2 Faint 812 None 1.40 \n", "3 Faint 818 None 1.52 \n", "4 None 1235 None 1.42 \n", "\n", " delivery date price \n", "0 \\r\\nJul 8\\r\\n 242.0 \n", "1 \\r\\nJul 8\\r\\n 243.0 \n", "2 \\r\\nJul 12\\r\\n 276.0 \n", "3 \\r\\nJul 8\\r\\n 278.0 \n", "4 \\r\\nJul 14\\r\\n 284.0 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This gives 5 rows by default (**note that counting starts at 0!**), but we can easily ask Python for 10:" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
itemshapecaratcutcolorclaritypolishsymmetrydepthtablefluorescenceprice per caratculetlength to width ratiodelivery dateprice
01PS0.28FFSI2VGG61.650.0Faint864None1.65\\r\\nJul 8\\r\\n242.0
12PS0.23GFSI1VGG67.551.0None1057None1.46\\r\\nJul 8\\r\\n243.0
23EC0.34GIVS2VGVG71.665.0Faint812None1.40\\r\\nJul 12\\r\\n276.0
34MQ0.34GJVS1GG68.255.0Faint818None1.52\\r\\nJul 8\\r\\n278.0
45PS0.23GDSI1VGVG55.058.0None1235None1.42\\r\\nJul 14\\r\\n284.0
56MQ0.23FGVS2VGG71.655.0None1248None1.95\\r\\nJul 8\\r\\n287.0
67RA0.37FISI2GG79.076.0None781None1.03\\r\\nJul 8\\r\\n289.0
78EC0.24VGESI1VGVG68.665.0Faint1204None1.34\\r\\nJul 8\\r\\n289.0
89RD0.24IGSI2VGVG62.059.0None1204None1.01\\r\\nJul 8\\r\\n289.0
910MQ0.33GHSI2GG66.761.0Medium888None2.02\\r\\nJul 8\\r\\n293.0
\n", "
" ], "text/plain": [ " item shape carat cut color clarity polish symmetry depth table \\\n", "0 1 PS 0.28 F F SI2 VG G 61.6 50.0 \n", "1 2 PS 0.23 G F SI1 VG G 67.5 51.0 \n", "2 3 EC 0.34 G I VS2 VG VG 71.6 65.0 \n", "3 4 MQ 0.34 G J VS1 G G 68.2 55.0 \n", "4 5 PS 0.23 G D SI1 VG VG 55.0 58.0 \n", "5 6 MQ 0.23 F G VS2 VG G 71.6 55.0 \n", "6 7 RA 0.37 F I SI2 G G 79.0 76.0 \n", "7 8 EC 0.24 VG E SI1 VG VG 68.6 65.0 \n", "8 9 RD 0.24 I G SI2 VG VG 62.0 59.0 \n", "9 10 MQ 0.33 G H SI2 G G 66.7 61.0 \n", "\n", " fluorescence price per carat culet length to width ratio \\\n", "0 Faint 864 None 1.65 \n", "1 None 1057 None 1.46 \n", "2 Faint 812 None 1.40 \n", "3 Faint 818 None 1.52 \n", "4 None 1235 None 1.42 \n", "5 None 1248 None 1.95 \n", "6 None 781 None 1.03 \n", "7 Faint 1204 None 1.34 \n", "8 None 1204 None 1.01 \n", "9 Medium 888 None 2.02 \n", "\n", " delivery date price \n", "0 \\r\\nJul 8\\r\\n 242.0 \n", "1 \\r\\nJul 8\\r\\n 243.0 \n", "2 \\r\\nJul 12\\r\\n 276.0 \n", "3 \\r\\nJul 8\\r\\n 278.0 \n", "4 \\r\\nJul 14\\r\\n 284.0 \n", "5 \\r\\nJul 8\\r\\n 287.0 \n", "6 \\r\\nJul 8\\r\\n 289.0 \n", "7 \\r\\nJul 8\\r\\n 289.0 \n", "8 \\r\\nJul 8\\r\\n 289.0 \n", "9 \\r\\nJul 8\\r\\n 293.0 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, `head` is a method of the variable `data` (meaning it's a function stored in the data object). In the second case, we explicitly told `head` how many rows we wanted, while in the first, the number defaulted to 5. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Likewise, we can ask for the last few rows of the dataset with `tail`:" ] }, { "cell_type": "code", "execution_count": 7, "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", "
itemshapecaratcutcolorclaritypolishsymmetrydepthtablefluorescenceprice per caratculetlength to width ratiodelivery dateprice
6536965370RD9.56IFFLEXEX60.360.0None120336Very Small1.01\\r\\nJul 8\\r\\n1150413.0
6537065371CU8.40GDIFVGG57.959.0None144300Slightly Large1.20\\r\\nJul 8\\r\\n1212120.0
6537165372RD10.13IFIFEXEX60.358.0None130112Very Small1.01\\r\\nJul 8\\r\\n1318034.0
6537265373RD20.13IJVS1EXEX59.259.0None66420None1.01\\r\\nJul 14\\r\\n1337035.0
6537365374RD12.35IGIFEXEX59.860.0Faint110662None1.01\\r\\nJul 12\\r\\n1366679.0
6537465375RD9.19IEIFEXEX60.960.0None150621None1.00\\r\\nJul 13\\r\\n1384207.0
6537565376RD10.13IDFLEXEX62.557.0None256150None1.00\\r\\nJul 12\\r\\n2594800.0
\n", "
" ], "text/plain": [ " item shape carat cut color clarity polish symmetry depth table \\\n", "65369 65370 RD 9.56 I F FL EX EX 60.3 60.0 \n", "65370 65371 CU 8.40 G D IF VG G 57.9 59.0 \n", "65371 65372 RD 10.13 I F IF EX EX 60.3 58.0 \n", "65372 65373 RD 20.13 I J VS1 EX EX 59.2 59.0 \n", "65373 65374 RD 12.35 I G IF EX EX 59.8 60.0 \n", "65374 65375 RD 9.19 I E IF EX EX 60.9 60.0 \n", "65375 65376 RD 10.13 I D FL EX EX 62.5 57.0 \n", "\n", " fluorescence price per carat culet length to width ratio \\\n", "65369 None 120336 Very Small 1.01 \n", "65370 None 144300 Slightly Large 1.20 \n", "65371 None 130112 Very Small 1.01 \n", "65372 None 66420 None 1.01 \n", "65373 Faint 110662 None 1.01 \n", "65374 None 150621 None 1.00 \n", "65375 None 256150 None 1.00 \n", "\n", " delivery date price \n", "65369 \\r\\nJul 8\\r\\n 1150413.0 \n", "65370 \\r\\nJul 8\\r\\n 1212120.0 \n", "65371 \\r\\nJul 8\\r\\n 1318034.0 \n", "65372 \\r\\nJul 14\\r\\n 1337035.0 \n", "65373 \\r\\nJul 12\\r\\n 1366679.0 \n", "65374 \\r\\nJul 13\\r\\n 1384207.0 \n", "65375 \\r\\nJul 12\\r\\n 2594800.0 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.tail(7)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you look carefully, you might notice that the rows seem to be sorted by the last item, price. The odd characters under delivery data are a result of the process used to download these data from the internet." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, as a first, pass, we might just want to know some simple summary statistics of our data:" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
itemcaratdepthtableprice per caratlength to width ratioprice
count65376.00000065376.00000065376.00000065376.00000065376.00000065376.0000006.537600e+04
mean32688.5000000.87865263.24574559.3977706282.7853651.1118389.495346e+03
std18872.5699360.7838953.8617994.8684477198.1735460.2123173.394968e+04
min1.0000000.2300006.7000006.000000781.0000000.7700002.420000e+02
25%16344.7500000.40000061.20000057.0000002967.0000001.0100001.121000e+03
50%32688.5000000.70000062.20000058.0000004150.0000001.0100002.899000e+03
75%49032.2500001.02000064.40000061.0000006769.0000001.1100006.752250e+03
max65376.00000020.13000080.000000555.000000256150.0000003.1200002.594800e+06
\n", "
" ], "text/plain": [ " item carat depth table \\\n", "count 65376.000000 65376.000000 65376.000000 65376.000000 \n", "mean 32688.500000 0.878652 63.245745 59.397770 \n", "std 18872.569936 0.783895 3.861799 4.868447 \n", "min 1.000000 0.230000 6.700000 6.000000 \n", "25% 16344.750000 0.400000 61.200000 57.000000 \n", "50% 32688.500000 0.700000 62.200000 58.000000 \n", "75% 49032.250000 1.020000 64.400000 61.000000 \n", "max 65376.000000 20.130000 80.000000 555.000000 \n", "\n", " price per carat length to width ratio price \n", "count 65376.000000 65376.000000 6.537600e+04 \n", "mean 6282.785365 1.111838 9.495346e+03 \n", "std 7198.173546 0.212317 3.394968e+04 \n", "min 781.000000 0.770000 2.420000e+02 \n", "25% 2967.000000 1.010000 1.121000e+03 \n", "50% 4150.000000 1.010000 2.899000e+03 \n", "75% 6769.000000 1.110000 6.752250e+03 \n", "max 256150.000000 3.120000 2.594800e+06 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The fine art of looking things up" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Python ecosystem is *huge*. Nobody knows all the functions for all the libraries. This means that when you start analyzing data in earnest, you will need to learn the parts important for solving your particular problem. Initially, this will be difficult; everything will be new to you. Eventually, though, you develop a conceptual base that will be easy to add to." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So what should you do in this case? How do we learn more about the functions we've used so far?\n", "\n", "First off, let's figure out what type of object `data` is. Every variable in Python is an object (meaning it has both information and behavior stored inside of it), and every object has a type. We can find this by using the `type` function:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "int" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, `int` means integer, a number with no decimal part." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "float" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(1.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Float is anything with a decimal point. Be aware that the precision of `float` variables is limited, and there is the potential for roundoff errors in calculations if you ever start to do serious data crunching (though most of the time you'll be fine)." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "pandas.core.frame.DataFrame" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So what in the world is this?\n", "\n", "Read it like so: the type of object `data` is is defined in the `pandas` module, in the `core` submodule, in the `frame` sub-submodule, and it is `DataFrame`. Again, using our filesystem analogy, the `data` variable has type `DataFrame`, and Python gives us the full path to its definition. As we will see, dataframes are a very convenient type of object in which to store our data, since this type of object carries with it very powerful behaviors (methods) that can be used to clean and analyze data. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So if `type` tells us the type of object, how do we find out what's in it?\n", "\n", "We can do that with the `dir` command. `dir` is short for \"directory,\" and tells us the name of all the attributes (information) and methods (behaviors) associated with an object:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['T',\n", " '_AXIS_ALIASES',\n", " '_AXIS_IALIASES',\n", " '_AXIS_LEN',\n", " '_AXIS_NAMES',\n", " '_AXIS_NUMBERS',\n", " '_AXIS_ORDERS',\n", " '_AXIS_REVERSED',\n", " '_AXIS_SLICEMAP',\n", " '__abs__',\n", " '__add__',\n", " '__and__',\n", " '__array__',\n", " '__array_wrap__',\n", " '__bool__',\n", " '__bytes__',\n", " '__class__',\n", " '__contains__',\n", " '__delattr__',\n", " '__delitem__',\n", " '__dict__',\n", " '__dir__',\n", " '__div__',\n", " '__doc__',\n", " '__eq__',\n", " '__finalize__',\n", " '__floordiv__',\n", " '__format__',\n", " '__ge__',\n", " '__getattr__',\n", " '__getattribute__',\n", " '__getitem__',\n", " '__getstate__',\n", " '__gt__',\n", " '__hash__',\n", " '__iadd__',\n", " '__imul__',\n", " '__init__',\n", " '__invert__',\n", " '__ipow__',\n", " '__isub__',\n", " '__iter__',\n", " '__itruediv__',\n", " '__le__',\n", " '__len__',\n", " '__lt__',\n", " '__mod__',\n", " '__module__',\n", " '__mul__',\n", " '__ne__',\n", " '__neg__',\n", " '__new__',\n", " '__nonzero__',\n", " '__or__',\n", " '__pow__',\n", " '__radd__',\n", " '__rand__',\n", " '__rdiv__',\n", " '__reduce__',\n", " '__reduce_ex__',\n", " '__repr__',\n", " '__rfloordiv__',\n", " '__rmod__',\n", " '__rmul__',\n", " '__ror__',\n", " '__round__',\n", " '__rpow__',\n", " '__rsub__',\n", " '__rtruediv__',\n", " '__rxor__',\n", " '__setattr__',\n", " '__setitem__',\n", " '__setstate__',\n", " '__sizeof__',\n", " '__str__',\n", " '__sub__',\n", " '__subclasshook__',\n", " '__truediv__',\n", " '__unicode__',\n", " '__weakref__',\n", " '__xor__',\n", " '_accessors',\n", " '_add_numeric_operations',\n", " '_add_series_only_operations',\n", " '_add_series_or_dataframe_operations',\n", " '_agg_by_level',\n", " '_align_frame',\n", " '_align_series',\n", " '_apply_broadcast',\n", " '_apply_empty_result',\n", " '_apply_raw',\n", " '_apply_standard',\n", " '_at',\n", " '_box_col_values',\n", " '_box_item_values',\n", " '_check_inplace_setting',\n", " '_check_is_chained_assignment_possible',\n", " '_check_percentile',\n", " '_check_setitem_copy',\n", " '_clear_item_cache',\n", " '_combine_const',\n", " '_combine_frame',\n", " '_combine_match_columns',\n", " '_combine_match_index',\n", " '_combine_series',\n", " '_combine_series_infer',\n", " '_compare_frame',\n", " '_compare_frame_evaluate',\n", " '_consolidate_inplace',\n", " '_construct_axes_dict',\n", " '_construct_axes_dict_for_slice',\n", " '_construct_axes_dict_from',\n", " '_construct_axes_from_arguments',\n", " '_constructor',\n", " '_constructor_expanddim',\n", " '_constructor_sliced',\n", " '_convert',\n", " '_count_level',\n", " '_create_indexer',\n", " '_dir_additions',\n", " '_dir_deletions',\n", " '_ensure_valid_index',\n", " '_expand_axes',\n", " '_flex_compare_frame',\n", " '_from_arrays',\n", " '_from_axes',\n", " '_get_agg_axis',\n", " '_get_axis',\n", " '_get_axis_name',\n", " '_get_axis_number',\n", " '_get_axis_resolvers',\n", " '_get_block_manager_axis',\n", " '_get_bool_data',\n", " '_get_cacher',\n", " '_get_index_resolvers',\n", " '_get_item_cache',\n", " '_get_numeric_data',\n", " '_get_values',\n", " '_getitem_array',\n", " '_getitem_column',\n", " '_getitem_frame',\n", " '_getitem_multilevel',\n", " '_getitem_slice',\n", " '_iat',\n", " '_iget_item_cache',\n", " '_iloc',\n", " '_indexed_same',\n", " '_info_axis',\n", " '_info_axis_name',\n", " '_info_axis_number',\n", " '_info_repr',\n", " '_init_dict',\n", " '_init_mgr',\n", " '_init_ndarray',\n", " '_internal_names',\n", " '_internal_names_set',\n", " '_is_cached',\n", " '_is_datelike_mixed_type',\n", " '_is_mixed_type',\n", " '_is_numeric_mixed_type',\n", " '_is_view',\n", " '_ix',\n", " '_ixs',\n", " '_join_compat',\n", " '_loc',\n", " '_maybe_cache_changed',\n", " '_maybe_update_cacher',\n", " '_metadata',\n", " '_needs_reindex_multi',\n", " '_nsorted',\n", " '_protect_consolidate',\n", " '_reduce',\n", " '_reindex_axes',\n", " '_reindex_axis',\n", " '_reindex_columns',\n", " '_reindex_index',\n", " '_reindex_multi',\n", " '_reindex_with_indexers',\n", " '_repr_fits_horizontal_',\n", " '_repr_fits_vertical_',\n", " '_repr_html_',\n", " '_repr_latex_',\n", " '_reset_cache',\n", " '_reset_cacher',\n", " '_sanitize_column',\n", " '_series',\n", " '_set_as_cached',\n", " '_set_axis',\n", " '_set_axis_name',\n", " '_set_is_copy',\n", " '_set_item',\n", " '_setitem_array',\n", " '_setitem_frame',\n", " '_setitem_slice',\n", " '_setup_axes',\n", " '_slice',\n", " '_stat_axis',\n", " '_stat_axis_name',\n", " '_stat_axis_number',\n", " '_typ',\n", " '_unpickle_frame_compat',\n", " '_unpickle_matrix_compat',\n", " '_update_inplace',\n", " '_validate_dtype',\n", " '_values',\n", " '_xs',\n", " 'abs',\n", " 'add',\n", " 'add_prefix',\n", " 'add_suffix',\n", " 'align',\n", " 'all',\n", " 'any',\n", " 'append',\n", " 'apply',\n", " 'applymap',\n", " 'as_blocks',\n", " 'as_matrix',\n", " 'asfreq',\n", " 'assign',\n", " 'astype',\n", " 'at',\n", " 'at_time',\n", " 'axes',\n", " 'between_time',\n", " 'bfill',\n", " 'blocks',\n", " 'bool',\n", " 'boxplot',\n", " 'carat',\n", " 'clarity',\n", " 'clip',\n", " 'clip_lower',\n", " 'clip_upper',\n", " 'color',\n", " 'columns',\n", " 'combine',\n", " 'combineAdd',\n", " 'combineMult',\n", " 'combine_first',\n", " 'compound',\n", " 'consolidate',\n", " 'convert_objects',\n", " 'copy',\n", " 'corr',\n", " 'corrwith',\n", " 'count',\n", " 'cov',\n", " 'culet',\n", " 'cummax',\n", " 'cummin',\n", " 'cumprod',\n", " 'cumsum',\n", " 'cut',\n", " 'depth',\n", " 'describe',\n", " 'diff',\n", " 'div',\n", " 'divide',\n", " 'dot',\n", " 'drop',\n", " 'drop_duplicates',\n", " 'dropna',\n", " 'dtypes',\n", " 'duplicated',\n", " 'empty',\n", " 'eq',\n", " 'equals',\n", " 'eval',\n", " 'ewm',\n", " 'expanding',\n", " 'ffill',\n", " 'fillna',\n", " 'filter',\n", " 'first',\n", " 'first_valid_index',\n", " 'floordiv',\n", " 'fluorescence',\n", " 'from_csv',\n", " 'from_dict',\n", " 'from_items',\n", " 'from_records',\n", " 'ftypes',\n", " 'ge',\n", " 'get',\n", " 'get_dtype_counts',\n", " 'get_ftype_counts',\n", " 'get_value',\n", " 'get_values',\n", " 'groupby',\n", " 'gt',\n", " 'head',\n", " 'hist',\n", " 'iat',\n", " 'icol',\n", " 'idxmax',\n", " 'idxmin',\n", " 'iget_value',\n", " 'iloc',\n", " 'index',\n", " 'info',\n", " 'insert',\n", " 'interpolate',\n", " 'irow',\n", " 'is_copy',\n", " 'isin',\n", " 'isnull',\n", " 'item',\n", " 'items',\n", " 'iteritems',\n", " 'iterkv',\n", " 'iterrows',\n", " 'itertuples',\n", " 'ix',\n", " 'join',\n", " 'keys',\n", " 'kurt',\n", " 'kurtosis',\n", " 'last',\n", " 'last_valid_index',\n", " 'le',\n", " 'loc',\n", " 'lookup',\n", " 'lt',\n", " 'mad',\n", " 'mask',\n", " 'max',\n", " 'mean',\n", " 'median',\n", " 'memory_usage',\n", " 'merge',\n", " 'min',\n", " 'mod',\n", " 'mode',\n", " 'mul',\n", " 'multiply',\n", " 'ndim',\n", " 'ne',\n", " 'nlargest',\n", " 'notnull',\n", " 'nsmallest',\n", " 'pct_change',\n", " 'pipe',\n", " 'pivot',\n", " 'pivot_table',\n", " 'plot',\n", " 'polish',\n", " 'pop',\n", " 'pow',\n", " 'price',\n", " 'prod',\n", " 'product',\n", " 'quantile',\n", " 'query',\n", " 'radd',\n", " 'rank',\n", " 'rdiv',\n", " 'reindex',\n", " 'reindex_axis',\n", " 'reindex_like',\n", " 'rename',\n", " 'rename_axis',\n", " 'reorder_levels',\n", " 'replace',\n", " 'resample',\n", " 'reset_index',\n", " 'rfloordiv',\n", " 'rmod',\n", " 'rmul',\n", " 'rolling',\n", " 'round',\n", " 'rpow',\n", " 'rsub',\n", " 'rtruediv',\n", " 'sample',\n", " 'select',\n", " 'select_dtypes',\n", " 'sem',\n", " 'set_axis',\n", " 'set_index',\n", " 'set_value',\n", " 'shape',\n", " 'shift',\n", " 'size',\n", " 'skew',\n", " 'slice_shift',\n", " 'sort',\n", " 'sort_index',\n", " 'sort_values',\n", " 'sortlevel',\n", " 'squeeze',\n", " 'stack',\n", " 'std',\n", " 'style',\n", " 'sub',\n", " 'subtract',\n", " 'sum',\n", " 'swapaxes',\n", " 'swaplevel',\n", " 'symmetry',\n", " 'table',\n", " 'tail',\n", " 'take',\n", " 'to_clipboard',\n", " 'to_csv',\n", " 'to_dense',\n", " 'to_dict',\n", " 'to_excel',\n", " 'to_gbq',\n", " 'to_hdf',\n", " 'to_html',\n", " 'to_json',\n", " 'to_latex',\n", " 'to_msgpack',\n", " 'to_panel',\n", " 'to_period',\n", " 'to_pickle',\n", " 'to_records',\n", " 'to_sparse',\n", " 'to_sql',\n", " 'to_stata',\n", " 'to_string',\n", " 'to_timestamp',\n", " 'to_wide',\n", " 'to_xarray',\n", " 'transpose',\n", " 'truediv',\n", " 'truncate',\n", " 'tshift',\n", " 'tz_convert',\n", " 'tz_localize',\n", " 'unstack',\n", " 'update',\n", " 'values',\n", " 'var',\n", " 'where',\n", " 'xs']" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Whoa!\n", "\n", "Okay, keep in mind a few things:\n", "- One of the sayings in the Python credo is \"We're all adults here.\" Python trusts you as a programmer. Sometimes too much. This means that, in a case like this, you might get more info than you really need or can handle.\n", "- Any name in that list (and the output of this function is indeed a type of object called a list) that begins with `_` or `__` is a private variable (like files beginning with `.` in the shell). You can safely ignore these until you are much more experienced.\n", "- I don't know what half of these do, either. If I need to know, I look them up." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How do we do that?\n", "\n", "First, IPython has some pretty spiffy things that can help us right from the shell or notebook. For instance, if I want to learn about the `sort` item in the list, I can type" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "data.sort?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And IPython will pop up a handy (or cryptic, as you might feel at first) documentation window for the function. At the very least, we are told at the top of the page that the type of `data.sort` is an instancemethod, meaning that it's a behavior and not a piece of information. The help then goes on to tell us what inputs the function takes and what outputs it gives." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More realistically, I would Google\n", "\n", "`DataFrame.sort python`\n", "\n", "(Remember, DataFrame is the type of the data object, and the internet doesn't know that `data` is a variable name for us. So I ask for the type.method and throw in the keyword \"python\" so Google knows what I'm talking about.)\n", "\n", "The first result that pops up should be [this](http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.sort.html).\n", "\n", "Good news!\n", "- This page is much easier to read.\n", "- This page is located on the website for Pandas, the library we're using. Even if we don't understand this particular help page, there's probably a tutorial somewhere nearby that will get us started." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a result of this, if we look carefully, we might be able to puzzle out that if we want to sort the dataset by price per carat, we can do" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "data_sorted = data.sort_values(by='price per carat')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that we have to save the output of the sort here, since the `sort` function doesn't touch the `data` variable. Instead, it returns a new data frame that we need to assign to a new variable name. In other words," ] }, { "cell_type": "code", "execution_count": 15, "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", "
itemshapecaratcutcolorclaritypolishsymmetrydepthtablefluorescenceprice per caratculetlength to width ratiodelivery dateprice
01PS0.28FFSI2VGG61.650.0Faint864None1.65\\r\\nJul 8\\r\\n242.0
12PS0.23GFSI1VGG67.551.0None1057None1.46\\r\\nJul 8\\r\\n243.0
23EC0.34GIVS2VGVG71.665.0Faint812None1.40\\r\\nJul 12\\r\\n276.0
34MQ0.34GJVS1GG68.255.0Faint818None1.52\\r\\nJul 8\\r\\n278.0
45PS0.23GDSI1VGVG55.058.0None1235None1.42\\r\\nJul 14\\r\\n284.0
56MQ0.23FGVS2VGG71.655.0None1248None1.95\\r\\nJul 8\\r\\n287.0
67RA0.37FISI2GG79.076.0None781None1.03\\r\\nJul 8\\r\\n289.0
78EC0.24VGESI1VGVG68.665.0Faint1204None1.34\\r\\nJul 8\\r\\n289.0
89RD0.24IGSI2VGVG62.059.0None1204None1.01\\r\\nJul 8\\r\\n289.0
910MQ0.33GHSI2GG66.761.0Medium888None2.02\\r\\nJul 8\\r\\n293.0
\n", "
" ], "text/plain": [ " item shape carat cut color clarity polish symmetry depth table \\\n", "0 1 PS 0.28 F F SI2 VG G 61.6 50.0 \n", "1 2 PS 0.23 G F SI1 VG G 67.5 51.0 \n", "2 3 EC 0.34 G I VS2 VG VG 71.6 65.0 \n", "3 4 MQ 0.34 G J VS1 G G 68.2 55.0 \n", "4 5 PS 0.23 G D SI1 VG VG 55.0 58.0 \n", "5 6 MQ 0.23 F G VS2 VG G 71.6 55.0 \n", "6 7 RA 0.37 F I SI2 G G 79.0 76.0 \n", "7 8 EC 0.24 VG E SI1 VG VG 68.6 65.0 \n", "8 9 RD 0.24 I G SI2 VG VG 62.0 59.0 \n", "9 10 MQ 0.33 G H SI2 G G 66.7 61.0 \n", "\n", " fluorescence price per carat culet length to width ratio \\\n", "0 Faint 864 None 1.65 \n", "1 None 1057 None 1.46 \n", "2 Faint 812 None 1.40 \n", "3 Faint 818 None 1.52 \n", "4 None 1235 None 1.42 \n", "5 None 1248 None 1.95 \n", "6 None 781 None 1.03 \n", "7 Faint 1204 None 1.34 \n", "8 None 1204 None 1.01 \n", "9 Medium 888 None 2.02 \n", "\n", " delivery date price \n", "0 \\r\\nJul 8\\r\\n 242.0 \n", "1 \\r\\nJul 8\\r\\n 243.0 \n", "2 \\r\\nJul 12\\r\\n 276.0 \n", "3 \\r\\nJul 8\\r\\n 278.0 \n", "4 \\r\\nJul 14\\r\\n 284.0 \n", "5 \\r\\nJul 8\\r\\n 287.0 \n", "6 \\r\\nJul 8\\r\\n 289.0 \n", "7 \\r\\nJul 8\\r\\n 289.0 \n", "8 \\r\\nJul 8\\r\\n 289.0 \n", "9 \\r\\nJul 8\\r\\n 293.0 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "looks the same as before, while" ] }, { "cell_type": "code", "execution_count": 16, "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", "
itemshapecaratcutcolorclaritypolishsymmetrydepthtablefluorescenceprice per caratculetlength to width ratiodelivery dateprice
67RA0.37FISI2GG79.076.0None781None1.03\\r\\nJul 8\\r\\n289.0
23EC0.34GIVS2VGVG71.665.0Faint812None1.40\\r\\nJul 12\\r\\n276.0
34MQ0.34GJVS1GG68.255.0Faint818None1.52\\r\\nJul 8\\r\\n278.0
2021PS0.39GJVS1GG54.266.0None859Slightly Large1.37\\r\\nJul 8\\r\\n335.0
1112PS0.35FHSI2GG50.055.0None860Small1.35\\r\\nJul 8\\r\\n301.0
01PS0.28FFSI2VGG61.650.0Faint864None1.65\\r\\nJul 8\\r\\n242.0
910MQ0.33GHSI2GG66.761.0Medium888None2.02\\r\\nJul 8\\r\\n293.0
4950MQ0.39VGISI1GG64.961.0Faint938None1.73\\r\\nJul 8\\r\\n366.0
4849PS0.39FGSI2GG57.068.0Faint938None1.37\\r\\nJul 8\\r\\n366.0
2627MQ0.36VGGSI2GG64.960.0None944Small1.96\\r\\nJul 8\\r\\n340.0
\n", "
" ], "text/plain": [ " item shape carat cut color clarity polish symmetry depth table \\\n", "6 7 RA 0.37 F I SI2 G G 79.0 76.0 \n", "2 3 EC 0.34 G I VS2 VG VG 71.6 65.0 \n", "3 4 MQ 0.34 G J VS1 G G 68.2 55.0 \n", "20 21 PS 0.39 G J VS1 G G 54.2 66.0 \n", "11 12 PS 0.35 F H SI2 G G 50.0 55.0 \n", "0 1 PS 0.28 F F SI2 VG G 61.6 50.0 \n", "9 10 MQ 0.33 G H SI2 G G 66.7 61.0 \n", "49 50 MQ 0.39 VG I SI1 G G 64.9 61.0 \n", "48 49 PS 0.39 F G SI2 G G 57.0 68.0 \n", "26 27 MQ 0.36 VG G SI2 G G 64.9 60.0 \n", "\n", " fluorescence price per carat culet length to width ratio \\\n", "6 None 781 None 1.03 \n", "2 Faint 812 None 1.40 \n", "3 Faint 818 None 1.52 \n", "20 None 859 Slightly Large 1.37 \n", "11 None 860 Small 1.35 \n", "0 Faint 864 None 1.65 \n", "9 Medium 888 None 2.02 \n", "49 Faint 938 None 1.73 \n", "48 Faint 938 None 1.37 \n", "26 None 944 Small 1.96 \n", "\n", " delivery date price \n", "6 \\r\\nJul 8\\r\\n 289.0 \n", "2 \\r\\nJul 12\\r\\n 276.0 \n", "3 \\r\\nJul 8\\r\\n 278.0 \n", "20 \\r\\nJul 8\\r\\n 335.0 \n", "11 \\r\\nJul 8\\r\\n 301.0 \n", "0 \\r\\nJul 8\\r\\n 242.0 \n", "9 \\r\\nJul 8\\r\\n 293.0 \n", "49 \\r\\nJul 8\\r\\n 366.0 \n", "48 \\r\\nJul 8\\r\\n 366.0 \n", "26 \\r\\nJul 8\\r\\n 340.0 " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_sorted.head(10)" ] }, { "cell_type": "code", "execution_count": 17, "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", "
itemshapecaratcutcolorclaritypolishsymmetrydepthtablefluorescenceprice per caratculetlength to width ratiodelivery dateprice
6531565316RD3.01IDFLEXEX61.858.0None143063None1.00\\r\\nJul 15\\r\\n430619.0
6537065371CU8.40GDIFVGG57.959.0None144300Slightly Large1.20\\r\\nJul 8\\r\\n1212120.0
6537465375RD9.19IEIFEXEX60.960.0None150621None1.00\\r\\nJul 13\\r\\n1384207.0
6535965360RD4.83IDIFEXEX61.955.0None155322None1.00\\r\\nJul 18\\r\\n750205.0
6536765368RD6.02IDFLEXEX62.857.0Faint168340None1.01\\r\\nJul 12\\r\\n1013405.0
6536865369RD6.54VGDVVS1VGVG58.064.0None169873Very Small1.01\\r\\nJul 13\\r\\n1110971.0
6536365364RD5.24IDIFVGVG62.654.0None173186None1.01\\r\\nJul 8\\r\\n907494.0
6536665367RD5.47IDIFEXEX62.454.0None183475None1.00\\r\\nJul 12\\r\\n1003607.0
6536565366RD5.34IDIFEXEX61.657.0None185328None1.00\\r\\nJul 8\\r\\n989652.0
6537565376RD10.13IDFLEXEX62.557.0None256150None1.00\\r\\nJul 12\\r\\n2594800.0
\n", "
" ], "text/plain": [ " item shape carat cut color clarity polish symmetry depth table \\\n", "65315 65316 RD 3.01 I D FL EX EX 61.8 58.0 \n", "65370 65371 CU 8.40 G D IF VG G 57.9 59.0 \n", "65374 65375 RD 9.19 I E IF EX EX 60.9 60.0 \n", "65359 65360 RD 4.83 I D IF EX EX 61.9 55.0 \n", "65367 65368 RD 6.02 I D FL EX EX 62.8 57.0 \n", "65368 65369 RD 6.54 VG D VVS1 VG VG 58.0 64.0 \n", "65363 65364 RD 5.24 I D IF VG VG 62.6 54.0 \n", "65366 65367 RD 5.47 I D IF EX EX 62.4 54.0 \n", "65365 65366 RD 5.34 I D IF EX EX 61.6 57.0 \n", "65375 65376 RD 10.13 I D FL EX EX 62.5 57.0 \n", "\n", " fluorescence price per carat culet length to width ratio \\\n", "65315 None 143063 None 1.00 \n", "65370 None 144300 Slightly Large 1.20 \n", "65374 None 150621 None 1.00 \n", "65359 None 155322 None 1.00 \n", "65367 Faint 168340 None 1.01 \n", "65368 None 169873 Very Small 1.01 \n", "65363 None 173186 None 1.01 \n", "65366 None 183475 None 1.00 \n", "65365 None 185328 None 1.00 \n", "65375 None 256150 None 1.00 \n", "\n", " delivery date price \n", "65315 \\r\\nJul 15\\r\\n 430619.0 \n", "65370 \\r\\nJul 8\\r\\n 1212120.0 \n", "65374 \\r\\nJul 13\\r\\n 1384207.0 \n", "65359 \\r\\nJul 18\\r\\n 750205.0 \n", "65367 \\r\\nJul 12\\r\\n 1013405.0 \n", "65368 \\r\\nJul 13\\r\\n 1110971.0 \n", "65363 \\r\\nJul 8\\r\\n 907494.0 \n", "65366 \\r\\nJul 12\\r\\n 1003607.0 \n", "65365 \\r\\nJul 8\\r\\n 989652.0 \n", "65375 \\r\\nJul 12\\r\\n 2594800.0 " ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_sorted.tail(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looks like it worked!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercises" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Question 1\n", "By default, the sort function sorts in ascending order (lowest to highest). Use Google-fu to figure out how to sort the data in descending order by carat." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Question 2\n", "What happens if we sort by shape instead? What sort order is used?\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Making the most of data frames" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So let's get down to some real data analysis.\n", "\n", "If we want to know what the columns in our data frame are (if, for instance, there are too many to fit onscreen, or we need the list of them to manipulate), we can do" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Index(['item', 'shape', 'carat', 'cut', 'color', 'clarity', 'polish',\n", " 'symmetry', 'depth', 'table', 'fluorescence', 'price per carat',\n", " 'culet', 'length to width ratio', 'delivery date', 'price'],\n", " dtype='object')" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So we see columns is an attribute, not a method (the giveaway in this case is that we did not have to use parentheses afterward, as we would with a function/method).\n", "\n", "What type of object is this?" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "pandas.indexes.base.Index" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(data.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And what can we do with an Index?" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['T',\n", " '__abs__',\n", " '__add__',\n", " '__and__',\n", " '__array__',\n", " '__array_priority__',\n", " '__array_wrap__',\n", " '__bool__',\n", " '__bytes__',\n", " '__class__',\n", " '__contains__',\n", " '__copy__',\n", " '__deepcopy__',\n", " '__delattr__',\n", " '__dict__',\n", " '__dir__',\n", " '__doc__',\n", " '__eq__',\n", " '__floordiv__',\n", " '__format__',\n", " '__ge__',\n", " '__getattribute__',\n", " '__getitem__',\n", " '__gt__',\n", " '__hash__',\n", " '__iadd__',\n", " '__init__',\n", " '__inv__',\n", " '__iter__',\n", " '__le__',\n", " '__len__',\n", " '__lt__',\n", " '__module__',\n", " '__mul__',\n", " '__ne__',\n", " '__neg__',\n", " '__new__',\n", " '__nonzero__',\n", " '__or__',\n", " '__pos__',\n", " '__pow__',\n", " '__radd__',\n", " '__reduce__',\n", " '__reduce_ex__',\n", " '__repr__',\n", " '__rfloordiv__',\n", " '__rmul__',\n", " '__rpow__',\n", " '__rtruediv__',\n", " '__setattr__',\n", " '__setitem__',\n", " '__setstate__',\n", " '__sizeof__',\n", " '__str__',\n", " '__sub__',\n", " '__subclasshook__',\n", " '__truediv__',\n", " '__unicode__',\n", " '__weakref__',\n", " '__xor__',\n", " '_add_comparison_methods',\n", " '_add_logical_methods',\n", " '_add_logical_methods_disabled',\n", " '_add_numeric_methods',\n", " '_add_numeric_methods_binary',\n", " '_add_numeric_methods_disabled',\n", " '_add_numeric_methods_unary',\n", " '_add_numericlike_set_methods_disabled',\n", " '_allow_datetime_index_ops',\n", " '_allow_index_ops',\n", " '_allow_period_index_ops',\n", " '_arrmap',\n", " '_assert_can_do_op',\n", " '_assert_can_do_setop',\n", " '_assert_take_fillable',\n", " '_attributes',\n", " '_box_scalars',\n", " '_can_hold_na',\n", " '_can_reindex',\n", " '_cleanup',\n", " '_coerce_scalar_to_index',\n", " '_coerce_to_ndarray',\n", " '_comparables',\n", " '_constructor',\n", " '_convert_can_do_setop',\n", " '_convert_for_op',\n", " '_convert_list_indexer',\n", " '_convert_scalar_indexer',\n", " '_convert_slice_indexer',\n", " '_convert_tolerance',\n", " '_data',\n", " '_dir_additions',\n", " '_dir_deletions',\n", " '_engine',\n", " '_engine_type',\n", " '_ensure_compat_append',\n", " '_ensure_compat_concat',\n", " '_evaluate_with_datetime_like',\n", " '_evaluate_with_timedelta_like',\n", " '_evalute_compare',\n", " '_filter_indexer_tolerance',\n", " '_format_attrs',\n", " '_format_data',\n", " '_format_native_types',\n", " '_format_space',\n", " '_format_with_header',\n", " '_formatter_func',\n", " '_get_attributes_dict',\n", " '_get_consensus_name',\n", " '_get_duplicates',\n", " '_get_fill_indexer',\n", " '_get_fill_indexer_searchsorted',\n", " '_get_level_number',\n", " '_get_names',\n", " '_get_nearest_indexer',\n", " '_groupby',\n", " '_has_complex_internals',\n", " '_id',\n", " '_infer_as_myclass',\n", " '_inner_indexer',\n", " '_invalid_indexer',\n", " '_is_numeric_dtype',\n", " '_isnan',\n", " '_join_level',\n", " '_join_monotonic',\n", " '_join_multi',\n", " '_join_non_unique',\n", " '_join_precedence',\n", " '_left_indexer',\n", " '_left_indexer_unique',\n", " '_make_str_accessor',\n", " '_maybe_cast_indexer',\n", " '_maybe_cast_slice_bound',\n", " '_maybe_update_attributes',\n", " '_mpl_repr',\n", " '_na_value',\n", " '_nan_idxs',\n", " '_outer_indexer',\n", " '_possibly_promote',\n", " '_reduce',\n", " '_reindex_non_unique',\n", " '_reset_cache',\n", " '_reset_identity',\n", " '_scalar_data_error',\n", " '_searchsorted_monotonic',\n", " '_set_names',\n", " '_shallow_copy',\n", " '_shallow_copy_with_infer',\n", " '_simple_new',\n", " '_string_data_error',\n", " '_to_embed',\n", " '_to_safe_for_reshape',\n", " '_typ',\n", " '_unpickle_compat',\n", " '_update_inplace',\n", " '_validate_for_numeric_binop',\n", " '_validate_for_numeric_unaryop',\n", " '_validate_index_level',\n", " '_validate_indexer',\n", " '_values',\n", " '_wrap_joined_index',\n", " '_wrap_union_result',\n", " 'all',\n", " 'any',\n", " 'append',\n", " 'argmax',\n", " 'argmin',\n", " 'argsort',\n", " 'asi8',\n", " 'asof',\n", " 'asof_locs',\n", " 'astype',\n", " 'base',\n", " 'copy',\n", " 'data',\n", " 'delete',\n", " 'diff',\n", " 'difference',\n", " 'drop',\n", " 'drop_duplicates',\n", " 'dtype',\n", " 'dtype_str',\n", " 'duplicated',\n", " 'equals',\n", " 'factorize',\n", " 'fillna',\n", " 'flags',\n", " 'format',\n", " 'get_duplicates',\n", " 'get_indexer',\n", " 'get_indexer_for',\n", " 'get_indexer_non_unique',\n", " 'get_level_values',\n", " 'get_loc',\n", " 'get_slice_bound',\n", " 'get_value',\n", " 'get_values',\n", " 'groupby',\n", " 'has_duplicates',\n", " 'hasnans',\n", " 'holds_integer',\n", " 'identical',\n", " 'inferred_type',\n", " 'insert',\n", " 'intersection',\n", " 'is_',\n", " 'is_all_dates',\n", " 'is_boolean',\n", " 'is_categorical',\n", " 'is_floating',\n", " 'is_integer',\n", " 'is_lexsorted_for_tuple',\n", " 'is_mixed',\n", " 'is_monotonic',\n", " 'is_monotonic_decreasing',\n", " 'is_monotonic_increasing',\n", " 'is_numeric',\n", " 'is_object',\n", " 'is_type_compatible',\n", " 'is_unique',\n", " 'isin',\n", " 'item',\n", " 'itemsize',\n", " 'join',\n", " 'map',\n", " 'max',\n", " 'memory_usage',\n", " 'min',\n", " 'name',\n", " 'names',\n", " 'nbytes',\n", " 'ndim',\n", " 'nlevels',\n", " 'nunique',\n", " 'order',\n", " 'putmask',\n", " 'ravel',\n", " 'reindex',\n", " 'rename',\n", " 'repeat',\n", " 'searchsorted',\n", " 'set_names',\n", " 'set_value',\n", " 'shape',\n", " 'shift',\n", " 'size',\n", " 'slice_indexer',\n", " 'slice_locs',\n", " 'sort',\n", " 'sort_values',\n", " 'sortlevel',\n", " 'str',\n", " 'strides',\n", " 'summary',\n", " 'sym_diff',\n", " 'symmetric_difference',\n", " 'take',\n", " 'to_datetime',\n", " 'to_native_types',\n", " 'to_series',\n", " 'tolist',\n", " 'transpose',\n", " 'union',\n", " 'unique',\n", " 'value_counts',\n", " 'values',\n", " 'view']" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir(data.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Oh, a lot.\n", "\n", "What will often be very useful to us is to get a single column out of the data frame. We can do this like so:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0 242.0\n", "1 243.0\n", "2 276.0\n", "3 278.0\n", "4 284.0\n", "5 287.0\n", "6 289.0\n", "7 289.0\n", "8 289.0\n", "9 293.0\n", "10 294.0\n", "11 301.0\n", "12 304.0\n", "13 304.0\n", "14 320.0\n", "15 322.0\n", "16 322.0\n", "17 328.0\n", "18 332.0\n", "19 334.0\n", "20 335.0\n", "21 336.0\n", "22 336.0\n", "23 339.0\n", "24 339.0\n", "25 339.0\n", "26 340.0\n", "27 344.0\n", "28 344.0\n", "29 345.0\n", " ... \n", "65346 615600.0\n", "65347 618498.0\n", "65348 622495.0\n", "65349 625741.0\n", "65350 639454.0\n", "65351 642772.0\n", "65352 654753.0\n", "65353 655899.0\n", "65354 662481.0\n", "65355 684911.0\n", "65356 699478.0\n", "65357 700352.0\n", "65358 734935.0\n", "65359 750205.0\n", "65360 784980.0\n", "65361 791635.0\n", "65362 896678.0\n", "65363 907494.0\n", "65364 965700.0\n", "65365 989652.0\n", "65366 1003607.0\n", "65367 1013405.0\n", "65368 1110971.0\n", "65369 1150413.0\n", "65370 1212120.0\n", "65371 1318034.0\n", "65372 1337035.0\n", "65373 1366679.0\n", "65374 1384207.0\n", "65375 2594800.0\n", "Name: price, dtype: float64" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.price" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "or" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0 242.0\n", "1 243.0\n", "2 276.0\n", "3 278.0\n", "4 284.0\n", "5 287.0\n", "6 289.0\n", "7 289.0\n", "8 289.0\n", "9 293.0\n", "10 294.0\n", "11 301.0\n", "12 304.0\n", "13 304.0\n", "14 320.0\n", "15 322.0\n", "16 322.0\n", "17 328.0\n", "18 332.0\n", "19 334.0\n", "20 335.0\n", "21 336.0\n", "22 336.0\n", "23 339.0\n", "24 339.0\n", "25 339.0\n", "26 340.0\n", "27 344.0\n", "28 344.0\n", "29 345.0\n", " ... \n", "65346 615600.0\n", "65347 618498.0\n", "65348 622495.0\n", "65349 625741.0\n", "65350 639454.0\n", "65351 642772.0\n", "65352 654753.0\n", "65353 655899.0\n", "65354 662481.0\n", "65355 684911.0\n", "65356 699478.0\n", "65357 700352.0\n", "65358 734935.0\n", "65359 750205.0\n", "65360 784980.0\n", "65361 791635.0\n", "65362 896678.0\n", "65363 907494.0\n", "65364 965700.0\n", "65365 989652.0\n", "65366 1003607.0\n", "65367 1013405.0\n", "65368 1110971.0\n", "65369 1150413.0\n", "65370 1212120.0\n", "65371 1318034.0\n", "65372 1337035.0\n", "65373 1366679.0\n", "65374 1384207.0\n", "65375 2594800.0\n", "Name: price, dtype: float64" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data['price']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The second method (but not the first) also works when the column name has spaces:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0 1.65\n", "1 1.46\n", "2 1.40\n", "3 1.52\n", "4 1.42\n", "5 1.95\n", "6 1.03\n", "7 1.34\n", "8 1.01\n", "9 2.02\n", "10 1.01\n", "11 1.35\n", "12 1.52\n", "13 1.00\n", "14 1.01\n", "15 1.11\n", "16 1.01\n", "17 1.08\n", "18 1.13\n", "19 1.15\n", "20 1.37\n", "21 1.35\n", "22 1.41\n", "23 1.09\n", "24 1.45\n", "25 1.10\n", "26 1.96\n", "27 1.30\n", "28 1.44\n", "29 1.35\n", " ... \n", "65346 1.00\n", "65347 1.47\n", "65348 1.49\n", "65349 1.59\n", "65350 1.01\n", "65351 1.47\n", "65352 1.01\n", "65353 1.51\n", "65354 1.13\n", "65355 1.17\n", "65356 1.01\n", "65357 1.01\n", "65358 1.01\n", "65359 1.00\n", "65360 1.01\n", "65361 1.21\n", "65362 1.37\n", "65363 1.01\n", "65364 1.33\n", "65365 1.00\n", "65366 1.00\n", "65367 1.01\n", "65368 1.01\n", "65369 1.01\n", "65370 1.20\n", "65371 1.01\n", "65372 1.01\n", "65373 1.01\n", "65374 1.00\n", "65375 1.00\n", "Name: length to width ratio, dtype: float64" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data['length to width ratio']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the result of this operation doesn't return a 1-column data frame, but a Series:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "pandas.core.series.Series" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(data['length to width ratio'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What you might be able to guess here is that a DataFrame is an object that (more or less) contains a bunch of Series objects named in an Index." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we can get multiple columns at once:" ] }, { "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", "
priceprice per carat
0242.0864
1243.01057
2276.0812
3278.0818
4284.01235
5287.01248
6289.0781
7289.01204
8289.01204
9293.0888
10294.01278
11301.0860
12304.01322
13304.01216
14320.01280
15322.0976
16322.01193
17328.01426
18332.01443
19334.01452
20335.0859
21336.01461
22336.01018
23339.01474
24339.01059
25339.01059
26340.0944
27344.01496
28344.01110
29345.01113
.........
65346615600.0101250
65347618498.0123700
65348622495.077715
65349625741.038295
65350639454.051862
65351642772.0121968
65352654753.074829
65353655899.0105450
65354662481.059629
65355684911.061372
65356699478.0133488
65357700352.0132894
65358734935.0122082
65359750205.0155322
65360784980.0104247
65361791635.060384
65362896678.080420
65363907494.0173186
65364965700.0133200
65365989652.0185328
653661003607.0183475
653671013405.0168340
653681110971.0169873
653691150413.0120336
653701212120.0144300
653711318034.0130112
653721337035.066420
653731366679.0110662
653741384207.0150621
653752594800.0256150
\n", "

65376 rows × 2 columns

\n", "
" ], "text/plain": [ " price price per carat\n", "0 242.0 864\n", "1 243.0 1057\n", "2 276.0 812\n", "3 278.0 818\n", "4 284.0 1235\n", "5 287.0 1248\n", "6 289.0 781\n", "7 289.0 1204\n", "8 289.0 1204\n", "9 293.0 888\n", "10 294.0 1278\n", "11 301.0 860\n", "12 304.0 1322\n", "13 304.0 1216\n", "14 320.0 1280\n", "15 322.0 976\n", "16 322.0 1193\n", "17 328.0 1426\n", "18 332.0 1443\n", "19 334.0 1452\n", "20 335.0 859\n", "21 336.0 1461\n", "22 336.0 1018\n", "23 339.0 1474\n", "24 339.0 1059\n", "25 339.0 1059\n", "26 340.0 944\n", "27 344.0 1496\n", "28 344.0 1110\n", "29 345.0 1113\n", "... ... ...\n", "65346 615600.0 101250\n", "65347 618498.0 123700\n", "65348 622495.0 77715\n", "65349 625741.0 38295\n", "65350 639454.0 51862\n", "65351 642772.0 121968\n", "65352 654753.0 74829\n", "65353 655899.0 105450\n", "65354 662481.0 59629\n", "65355 684911.0 61372\n", "65356 699478.0 133488\n", "65357 700352.0 132894\n", "65358 734935.0 122082\n", "65359 750205.0 155322\n", "65360 784980.0 104247\n", "65361 791635.0 60384\n", "65362 896678.0 80420\n", "65363 907494.0 173186\n", "65364 965700.0 133200\n", "65365 989652.0 185328\n", "65366 1003607.0 183475\n", "65367 1013405.0 168340\n", "65368 1110971.0 169873\n", "65369 1150413.0 120336\n", "65370 1212120.0 144300\n", "65371 1318034.0 130112\n", "65372 1337035.0 66420\n", "65373 1366679.0 110662\n", "65374 1384207.0 150621\n", "65375 2594800.0 256150\n", "\n", "[65376 rows x 2 columns]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[['price', 'price per carat']]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This actually does return a data frame. Note that the expression we put between the brackets in this case was a comma-separated list of strings (things in quotes), also enclosed in brackets. This is a type of object called a list in Python:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "list" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mylist = [1, 'a string', 'another string', 6.7, True]\n", "type(mylist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Clearly, lists are pretty useful for holding, well, lists. And the items in the list don't have to be of the same type. You can learn about Python lists in any basic Python intro, and we'll do more with them, but the key idea is that Python has several data types like this that we can use as *collections of other objects*. As we meet the other types, including tuples and dictionaries, we will discuss when it's best to use one or another. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Handily, `pandas` has some functions we can use to calculate basic statistics of our data:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The average price per carat is 6282.785364659814\n", "The standard deviation of price per carat is 7198.173546249848\n", "The coefficient of variation (std / mean) is thus 0.8728304929426245\n" ] } ], "source": [ "# here, let's save these outputs to variable names to make the code cleaner\n", "ppc_mean = data['price per carat'].mean()\n", "ppc_std = data['price per carat'].std()\n", "\n", "# we can concatenate strings by using +, but first we have to use the str function to convert the numbers to strings\n", "print(\"The average price per carat is \" + str(ppc_mean))\n", "print(\"The standard deviation of price per carat is \" + str(ppc_std))\n", "print(\"The coefficient of variation (std / mean) is thus \" + str(ppc_mean / ppc_std))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In fact, these functions will work column-by-column where appropriate:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "item 65376\n", "shape RD\n", "carat 20.13\n", "cut VG\n", "color J\n", "clarity VVS2\n", "polish VG\n", "symmetry VG\n", "depth 80\n", "table 555\n", "fluorescence Very Strong Blue\n", "price per carat 256150\n", "culet Very Small\n", "length to width ratio 3.12\n", "delivery date \\r\\nJul 8\\r\\n\n", "price 2.5948e+06\n", "dtype: object" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.max()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we might eventually want to take select subsets of our data, for which there are lots of methods described [here](http://pandas.pydata.org/pandas-docs/stable/indexing.html). \n", "\n", "For example, say we wanted to look only at diamonds between 1 and 2 carats. One of the nicest methods to select these data is to use the `query` method:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The mean for the whole dataset is 9495.346426823298\n", "The mean for the subset is 11344.487346603253\n" ] } ], "source": [ "subset = data.query('(carat >= 1) & (carat <= 2)')\n", "print(\"The mean for the whole dataset is \" + str(data['price'].mean()))\n", "print(\"The mean for the subset is \" + str(subset['price'].mean()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercises" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Question 1:\n", "Extract the subset of data with less than 1 carat and cut equal to Very Good (VG). (Hint: the double equals `==` operator tests for equality. The normal equals sign is only for assigning values to variables.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Question 2:\n", "Extract the subset of data with color other than J. (Hint, if you have a query that would return all the rows you *don't* want, you can negate that query by putting `~` in front of it.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Plotting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting is just fun. It is also, far and away, the best method for exploring your data." ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# this magic makes sure our plots appear in the browser\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# let's look at some distributions of variables\n", "data['price'].plot(kind='hist')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hmm. Let's fix two things:\n", "1. Let's plot the logarithm of price. That will make the scale more meaningful.\n", "2. Let's suppress the matplotlib.axes business (it's reflecting the object our plot command returns). We can do this by ending the line with a semicolon." ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZgAAAEACAYAAACODmB7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFztJREFUeJzt3X/wZXV93/HnC1ZAflaSstssAhJZBGMH12appdavwwQk\nToSklWySqUbRcQSLjdNMgOl094/OpDrVom1xEkX5EVOKJEasBIHBbxw76BKVAO4GtpOusuhurQQt\n4g8W3v3jnoWb5bv7vfvd7+ec/X7v8zFzh3M/95z7eZ/P93Bfe37cc1NVSJK02A4ZugBJ0vJkwEiS\nmjBgJElNGDCSpCYMGElSEwaMJKmJpgGT5MQkdyf5RpIHkvyrrn1Dku1JvtY9Xj+2zJVJtibZkuS8\nsfa1Se5P8nCSq8faD0tyU7fMPUlOarlOkqTJtN6D2QW8t6peDrwaeHeSl3WvfbCq1naP2wGSnAFc\nDJwBXABckyTd/B8BLqmqNcCaJOd37ZcAj1XVacDVwPsbr5MkaQJNA6aqdlTVfd30E8AWYHX3cuZY\n5ELgpqraVVXbgK3AuiSrgGOq6t5uvhuAi8aWub6bvgU4d9FXRJK033o7B5PkFOAs4Ctd07uT3Jfk\nY0mO69pWA4+MLfZo17Ya2D7Wvp3ngurZZarqaeDxJMe3WAdJ0uR6CZgkRzPau3hPtydzDXBqVZ0F\n7AA+sJjdLeJ7SZIWaEXrDpKsYBQuN1bVZwCq6rtjs3wU+Gw3/Sjw4rHXTuza9tY+vsy3kxwKHFtV\nj81Rhzddk6QFqKoF/cO9jz2YjwObq+pDuxu6cyq7/RrwYDd9K7C+uzLsJcBLgU1VtQP4fpJ13Un/\nNwOfGVvmLd30m4C791ZIVR1Ujw0bNgxew1Ko6WCty5qsaRrqOhBN92CSnAP8FvBAkq8DBVwF/GaS\ns4BngG3AOwGqanOSm4HNwFPApfXcGl4GXAccAdxW3ZVnwLXAjUm2At8D1rdcJ0nSZJoGTFX9T+DQ\nOV66fY623cv8PvD7c7R/FXjFHO0/YXRpsyTpIOI3+Qc0MzMzdAnPczDWBAdnXdY0GWua3MFa10Ll\nQI+xLRVJalrWVZIWSxLqID7JL0maQgaMJKkJA0aS1IQBI0lqwoCRJDVhwEiSmjBgJElNGDCSpCYM\nGElSEwaMJKkJA0aS1IQBI0lqwoCRJDVhwEiSmjBgJElNGDCSpCYMGElSEwaMJKkJA0aS1IQBI0lq\nwoCRJDVhwEiSmjBgJElNGDCSpCYMGElSEwaMJKkJA0aS1IQBswytWnUKSXp/rFp1ytCrLukgkqoa\nuoZeJKkpWldgiHUN0zLG0rRIQlVlIcu6ByNJasKAkSQ1YcBIkpowYCRJTRgwkqQmmgZMkhOT3J3k\nG0keSHJ51/6iJHckeSjJ55McN7bMlUm2JtmS5Lyx9rVJ7k/ycJKrx9oPS3JTt8w9SU5quU6SpMm0\n3oPZBby3ql4OvBq4LMnLgCuAu6rqdOBu4EqAJGcCFwNnABcA12R0zS3AR4BLqmoNsCbJ+V37JcBj\nVXUacDXw/sbrJEmaQNOAqaodVXVfN/0EsAU4EbgQuL6b7Xrgom76jcBNVbWrqrYBW4F1SVYBx1TV\nvd18N4wtM/5etwDntlsjSdKkejsHk+QU4Czgy8DKqtoJoxACTuhmWw08MrbYo13bamD7WPv2ru3v\nLFNVTwOPJzm+yUpIkia2oo9OkhzNaO/iPVX1RJI9v+69mF//3us3Tjdu3Pjs9MzMDDMzM4vYrSQt\nfbOzs8zOzi7KezW/VUySFcD/AP68qj7UtW0BZqpqZ3f46wtVdUaSK4Cqqvd1890ObAC+uXuern09\n8NqqetfuearqK0kOBb5TVSfMUYe3imnfs7eKkZaZg/1WMR8HNu8Ol86twG93028BPjPWvr67Muwl\nwEuBTd1htO8nWded9H/zHsu8pZt+E6OLBiRJA2u6B5PkHOCLwAOM/kldwFXAJuBm4MWM9k4urqrH\nu2WuZHRl2FOMDqnd0bW/CrgOOAK4rare07UfDtwIvBL4HrC+u0Bgz1rcg2nfs3sw0jJzIHsw3k15\nGTJgJC2Wg/0QmSRpChkwkqQmDBhJUhMGjCSpCQNGktSEASNJasKAkSQ1YcBIkpowYCRJTRgwkqQm\nDBhJUhMGjCSpCQNGktSEASNJasKAkSQ1YcBIkpowYCRJTRgwkqQmDBhJUhMGjCSpCQNGktSEASNJ\nasKAkSQ1YcBIkppYMXQBWk4OJ0nvva5ceTI7dmzrvV9J+5aqGrqGXiSpKVpXYIh1Ha7fafnbSn1L\nQlUt6F+OHiKTJDVhwEiSmjBgJElNGDCSpCYMGElSEwaMJKkJA0aS1IQBI0lqwoCRJDXRNGCSXJtk\nZ5L7x9o2JNme5Gvd4/Vjr12ZZGuSLUnOG2tfm+T+JA8nuXqs/bAkN3XL3JPkpJbrI0maXOs9mE8A\n58/R/sGqWts9bgdIcgZwMXAGcAFwTZ67sdVHgEuqag2wJsnu97wEeKyqTgOuBt7fcF0kSfuhacBU\n1ZeAv53jpbnua3MhcFNV7aqqbcBWYF2SVcAxVXVvN98NwEVjy1zfTd8CnLtYtUuSDsxEAZPkFYvc\n77uT3JfkY0mO69pWA4+MzfNo17Ya2D7Wvr1r+zvLVNXTwONJjl/kWiVJCzDpHsw1STYluXQsEBbq\nGuDUqjoL2AF84ADfb1z/94qXJM1pot+DqarXJDkNeBvw1SSbgE9U1Z3722FVfXfs6UeBz3bTjwIv\nHnvtxK5tb+3jy3w7yaHAsVX12N763rhx47PTMzMzzMzM7G/5krSszc7OMjs7uyjvtV+/B9N9iF8E\nfBj4AaM9hquq6k/3scwpwGer6hXd81VVtaOb/h3gF6vqN5OcCXwSOJvRoa87gdOqqpJ8GbgcuBf4\nHPDhqro9yaXAL1TVpUnWAxdV1fq91OHvwbTvebB+p+VvK/XtQH4PZqI9mCT/EHgr8AZGH/y/UlVf\nS/JzwD3AnAGT5I+BGeBnknwL2AC8LslZwDPANuCdAFW1OcnNwGbgKeDSsUS4DLgOOAK4bfeVZ8C1\nwI1JtgLfA+YMF0lS/ybag0nyF8DHgFuq6kd7vPYvq+rGRvUtGvdgeul5sH6n5W8r9e1A9mAmDZij\ngR91V2qR5BDgiKp6ciGdDsGA6aXnwfqdlr+t1Lc+fjL5LuCFY8+P7NokSZrTpAFzRFU9sftJN31k\nm5IkScvBpAHzwyRrdz9J8irgR/uYX5I05Sa6igz418Cnknyb0YH2VcCvN6tKkrTkTfw9mCQvAE7v\nnj5UVU81q6oBT/L30vNg/U7L31bqW/OryLpO/glwCmN7PVV1w0I6HYIB00vPg/U7LX9bqW99fNHy\nRuDngfuAp7vmYnRnY0mSnmfSczD/CDhzanYBJEkHbNKryB5kdGJfkqSJTLoH87PA5u4uyj/Z3VhV\nb2xSlSRpyZs0YDa2LEI6MIfz3K9r92flypPZsWNb7/1KS8X+XEV2MqPb59+V5Ejg0Kr6f02rW0Re\nRdZLz1PX77RsU5peze9FluQdjH7z/g+6ptXAny2kQ0nSdJj0JP9lwDmMfmSMqtoKnNCqKEnS0jdp\nwPykqn66+0mSFQxzTEKStERMGjB/keQq4IVJfgn4FPDZdmVJkpa6SX9w7BDgEuA8RmdUPw98bCmd\nNfckfy89T12/07JNaXr1ci+ypc6A6aXnqet3WrYpTa8+7kX2v5nj/+CqOnUhnUqSlr/9uRfZbkcA\nbwKOX/xyJEnLxYIPkSX5alW9apHracZDZL30PHX9Tss2penVxyGytWNPD2G0RzPp3o8kaQpNGhIf\nGJveBWwDLl70aiRJy4ZXkS1DHiLrr99p2aY0vfo4RPbefb1eVR9cSOeSpOVrf64i+0Xg1u75rwCb\ngK0tipIkLX2TfpP/i8Abdt+eP8kxwOeq6p81rm/ReIisl56nrt9p2aY0vZrfrh9YCfx07PlPuzZJ\nkuY06SGyG4BNST7dPb8IuL5NSZKk5WB/ftFyLfCa7ukXq+rrzapqwENkvfQ8df1Oyzal6dXHITKA\nI4EfVNWHgO1JXrKQDiVJ02HSk/wbGF1JdnpVrUnyc8Cnquqc1gUuFvdgeul56vqdlm1K06uPPZhf\nBd4I/BCgqr4NHLOQDiVJ02HSgPlp98//AkhyVLuSJEnLwaQBc3OSPwD+XpJ3AHcBH21XliRpqZso\nYKrqPwK3AH8CnA78u6r6z/Mtl+TaJDuT3D/W9qIkdyR5KMnnkxw39tqVSbYm2ZLkvLH2tUnuT/Jw\nkqvH2g9LclO3zD1JTppstSVJrc0bMEkOTfKFqrqzqn63qv5NVd054ft/Ajh/j7YrgLuq6nTgbuDK\nrp8zGd2h+QzgAuCajM5WA3wEuKSq1gBrkux+z0uAx6rqNOBq4P0T1iVJamzegKmqp4Fnxvc0JlVV\nXwL+do/mC3nuS5rXM/rSJowuIripqnZV1TZG9zlbl2QVcExV3dvNd8PYMuPvdQtw7v7WKElqY9Jv\n8j8BPJDkTroryQCq6vIF9HlCVe3slt+R5ISufTVwz9h8j3Ztu4DtY+3bu/bdyzzSvdfTSR5PcnxV\nPbaAuiRJi2jSgPnT7tHCYn6RYEHXakuSFt8+AybJSVX1rapazPuO7Uyysqp2doe//k/X/ijw4rH5\nTuza9tY+vsy3kxwKHLuvvZeNGzc+Oz0zM8PMzMyBrYkkLTOzs7PMzs4uynvt85v8Sb5WVWu76T+p\nqn++3x0kpwCfrapXdM/fx+jE/PuS/B7woqq6ojvJ/0ngbEaHvu4ETquqSvJl4HLgXuBzwIer6vYk\nlwK/UFWXJlkPXFRV6/dSh9/kb9/z1PU7LduUplfLX7Qcf9NT9/fNk/wxMAP8TJJvARuA/wB8Ksnb\ngG8yunKMqtqc5GZgM/AUcOlYIlwGXAccAdxWVbd37dcCNybZCnwPmDNcJEn92589mGenlyL3YHrp\neer6nZZtStPrQPZg5guYpxldNRbghcCTu18CqqqOXUinQzBgeul56vqdlm1K06vZIbKqOnRhJUmS\npt3+/B6MJEkTM2AkSU0YMJKkJgwYSVITBowkqQkDRpLUhAEjSWrCgJEkNWHASJKaMGAkSU0YMJKk\nJgwYSVITk/5ksqTnOby7c3W/Vq48mR07tvXer7S/9nm7/uXE2/X30rP99tTvtGzLGt6B3K7fQ2SS\npCYMGElSEwaMJKkJA0aS1IQBI0lqwoCRJDVhwEiSmjBgJElNGDCSpCYMGElSEwaMJKkJA0aS1IQB\nI0lqwoCRJDVhwEiSmjBgJElNGDCSpCYMGElSEwaMJKkJA0aS1MRgAZNkW5K/SvL1JJu6thcluSPJ\nQ0k+n+S4sfmvTLI1yZYk5421r01yf5KHk1w9xLpIkp5vyD2YZ4CZqnplVa3r2q4A7qqq04G7gSsB\nkpwJXAycAVwAXJMk3TIfAS6pqjXAmiTn97kSkqS5DRkwmaP/C4Hru+nrgYu66TcCN1XVrqraBmwF\n1iVZBRxTVfd2890wtowkaUBDBkwBdya5N8nbu7aVVbUToKp2ACd07auBR8aWfbRrWw1sH2vf3rVJ\nkga2YsC+z6mq7yT5+8AdSR5iFDrj9nx+QDZu3Pjs9MzMDDMzM4v59pK05M3OzjI7O7so75WqRf0M\nX1gRyQbgCeDtjM7L7OwOf32hqs5IcgVQVfW+bv7bgQ3AN3fP07WvB15bVe+ao486GNa1D6PTU0Os\nq/321e+0bMsaXhKqKvPP+XyDHCJLcmSSo7vpo4DzgAeAW4Hf7mZ7C/CZbvpWYH2Sw5K8BHgpsKk7\njPb9JOu6k/5vHltGkjSgoQ6RrQQ+naS6Gj5ZVXck+Uvg5iRvY7R3cjFAVW1OcjOwGXgKuHRsd+Qy\n4DrgCOC2qrq931WRJM3loDhE1gcPkfXSs/321O+0bMsa3pI7RCZJWv4MGElSEwaMJKkJA0aS1IQB\nI0lqwoCRJDVhwEiSmjBgJElNGDCSpCYMGElSEwaMJKkJA0aS1MSQPzgmaUEO725o2q+VK09mx45t\nvferpcu7KS9D3k3Zflv1Oy3/D+k53k1ZknTQMWAkSU0YMJKkJgwYSVITBowkqQkDRpLUhAEjSWrC\ngJEkNWHASJKaMGAkSU14L7JGvvSlL/Hggw/23u/xxx/fe5+SNBfvRdbIqlU/z/e/fzbJsb31CbBr\n1x/x1FM/ZNrukWW//fQ7LZ8Xes6B3IvMPZhGnnmm+PGP/z1waq/9HnXUbV3ASNKwPAcjSWrCgJEk\nNWHASJKaMGAkSU14kl/ShPypZu0fA0bShH7CEJdH79zZf6hpcXiITJLUhAEjSWpiWQRMktcn+esk\nDyf5vaHrkSQtg4BJcgjwX4DzgZcDv5HkZcNWNanZoQuYw+zQBezF7NAFLBGzQxcwh9mhC3ie2dnZ\noUuY08Fa10It+YAB1gFbq+qbVfUUcBNw4cA1TWh26ALmMDt0AXsxO3QBS8Ts0AXMYfYAlx9dvbaY\nj9e97nXzzrNq1SmLsO77x4A5+KwGHhl7vr1rk7Qs7L56bTEfG+adZ+fOb/aydsuZlyk3cthhL+Do\no9/OIYcctdd5fvzjhzjiiK8uar9PPvndRX0/aXr1/72fo446jo0bN/baZ0tL/nb9Sf4xsLGqXt89\nvwKoqnrfHvMt7RWVpIEs9Hb9yyFgDgUeAs4FvgNsAn6jqrYMWpgkTbklf4isqp5O8m7gDkbnlK41\nXCRpeEt+D0aSdHBaDleRPSvJiUnuTvKNJA8kuXwv8304ydYk9yU5a+iakrw2yeNJvtY9/m3jmg5P\n8pUkX+9q2rCX+focp3lr6nucxvo9pOvv1r283ts4TVrXEGOVZFuSv+r+hpv2Mk+vYzVfTQON03FJ\nPpVkS/e5cPYc8/S+Tc1X14LGqqqWzQNYBZzVTR/N6NzMy/aY5wLgc9302cCXD4KaXgvc2vNYHdn9\n91Dgy8C6Icdpwpp6H6eu398B/miuvocYpwnrGmKb+hvgRft4fYhtar6ahhin64C3dtMrgGOHHqcJ\n69rvsVpWezBVtaOq7uumnwC28PzvxFwI3NDN8xXguCQrB64JoNfrIavqyW7ycEYb057HSnsdpwlr\ngp7HKcmJwC8DH9vLLL2P04R1Qc9j1fW3r8+UIcZqvpp2z9OLJMcCr6mqTwBU1a6q+sEes/U+ThPW\nBfs5VssqYMYlOQU4C/jKHi/t+cXMR+npi5n7qAng1d3u8OeSnNlDLYck+TqwA7izqu7dY5bex2mC\nmqDncQL+E/C77P0+9UNtT/PVBf2PVQF3Jrk3yTvmeH2IsZqvJuh3nF4C/N8kn+gOM/1hkhfuMc8Q\n4zRJXbCfY7UsAybJ0cAtwHu6vYbBzVPTV4GTquosRvdV+7PW9VTVM1X1SuBE4OyePoAOtKZexynJ\nG4Cd3R5o6H+PYE4T1tX7NgWcU1VrGe1ZXZbkn/bQ53zmq6nvcVoBrAX+a1fXk8AVjfucxCR17fdY\nLbuASbKC0Qf5jVX1mTlmeRR48djzE7u2wWqqqid2Hx6qqj8HXpDk+JY1jfX9A+ALwOv3eKn3cZqv\npgHG6RzgjUn+BvhvwOuS3LDHPEOM07x1DbFNVdV3uv9+F/g0o/sEjut9rOaraYBx2g48UlV/2T2/\nhdEH+7ghtql561rIWC27gAE+Dmyuqg/t5fVbgTfDs3cBeLyqdg5Z0/jx1STrGF0+/lirYpL8bJLj\nuukXAr8E/PUes/U6TpPU1Pc4VdVVVXVSVZ0KrAfurqo37zFb79vTJHUNsE0d2e2lk+Qo4DzgwT1m\n63ubmremAbapncAjSdZ0TecCm/eYbYhtat66FjJWS/6LluOSnAP8FvBAdyy/gKuAkxndPuYPq+q2\nJL+c5H8BPwTeOnRNwL9I8i7gKeBHwK+3rAn4B8D1Gf3UwSHAf+/G5Z0MNE6T1ET/4zSngcdporro\nf6xWAp/O6JZMK4BPVtUdA4/VvDUxzDZ1OfDJJC9gdJXbWw+SbWqfdbGAsfKLlpKkJpbjITJJ0kHA\ngJEkNWHASJKaMGAkSU0YMJKkJgwYSVITBowkqQkDRpLUxP8H9C7mR4tY9G4AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#first, import numpy, which has the logarithm function. We'll also give it a nickname.\n", "import numpy as np\n", "\n", "# the apply method applies a function to every element of a data frame (or series in this case)\n", "# we will use this to create a new column in the data frame called log_price\n", "data['log_price'] = data['price'].apply(np.log10)\n", "data['log_price'].plot(kind='hist');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But we can do so much better!" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#let's pull out the big guns\n", "import matplotlib.pyplot as plt\n", "\n", "data['log_price'].plot(kind='hist', bins=100)\n", "plt.xlabel('Log_10 price (dollars)')\n", "plt.ylabel('Count');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What about other types of plots?" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# the value_counts() method counts the number of times each value occurs in the data['color'] series\n", "data['color'].value_counts().plot(kind='bar');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's a bit ugly. Let's change plot styles." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [], "source": [ "plt.style.use('ggplot')" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nIODmLVwAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n59gg8/gM88KhgIiIyBCNijUQERGxHiUQERHJihKIiIhkZVQ8SDjcPv74Y3bv3k15eTkAS5cu5cYb\nb8xzqy7fP9ULs7oVK1bg9XoxDAOn08nzzz+f7yZdlsHqvp06dYpXXnmFjo4Oxo0bx8qVK/F6vXlu\naeYGi81O1104HGbTpk10d3djGAbz589n4cKFtum/i+NbsGAB9fX1mfehaUPbt283P//883w3Y1gl\nEgnzscceM9vb2814PG4+9dRTZltbW76bNaxWrFhhRqPRfDdj2Pz444/m0aNHzSeffDL92rZt28zP\nPvvMNE3T/PTTT8333nsvX827LIPFZqfr7o8//jCPHj1qmqZpnj171nz88cfNtrY22/TfpeLLtA9t\nO4Vl2uzmsr+rF2YX5kXPB1ndYHXfvvvuO+bOnQvA7bffbtk+HCw2sM915/f708VbPR4PkyZNIhwO\n26b/BosvEokAmfWhLaewAL788ku++eYbrrnmGu6//35LDjMv9Hf1wuzCMAzWr1+Pw+Fg/vz5LFiw\nIN9NGnbd3d34/X4gdRF3d3fnuUXDy27XHUB7ezvHjh1jypQptuy/8/Fde+21HDlyJKM+tGwCWbdu\n3YDOM00TwzBYsmQJd955J4sXL8YwDD766CPeffddli9fnsfWylCsW7eOQCBAT08P69atIxQKUVNT\nk+9mjSjDMPLdhGFjx+uut7eXjRs38uCDD+LxeP7ydav338XxZdqHlk0gTz/99JC+b/78+bzwwgsj\n3JqRVwj1wgKBAABlZWXMnDmT1tZW2yUQv99PV1dX+uP5xUo7KCsrS39uh+sukUiwYcMG5syZQ21t\nLWCv/hssvkz70JZrIF1dXenPDxw4wOTJk/PYmuFh93phfX199Pb2Aql3Rd9//70t+u3idZ2bbrqJ\npqYmAJqamizdhxfHZrfrbvPmzYRCIRYuXJh+zU79N1h8mfahLUuZbNq0iV9++QXDMKisrGTZsmXp\neUsrO3ToEFu3bsU0Terq6mx1G297ezsvvvgihmGQSCSYPXu25eNrbGykpaWFaDRKeXk5DQ0N1NbW\n8vLLL9PZ2UllZSUrV64cdDF6tBsstsOHD9vmujty5Ahr167liiuuwDAMDMNg6dKlVFdX26L/LhXf\n3r17M+pDWyYQEREZebacwhIRkZGnBCIiIllRAhERkawogYiISFaUQEREJCtKICIikhUlEBERyYoS\niMgo1dTUxDPPPJPvZohckhKISB4kk8khfZ/Vi/WJvelJdJEshMNhtm7dypEjRzBNk1mzZrFo0SLe\neOMNjh07hmEYTJ8+nUceeSRdDnvFihXccccd7N27lxMnTrBt2zZ27NjB7t276enpYezYsdx7773M\nnDmT48ePs2rVKpLJJC6XC6fTydatW/MctchASiAiGUomk6xevZpp06axZMkSHA4HP//8M36/n/b2\ndqZOncqZM2fYsGEDV111FQ888ACQSiClpaWsXr0an8+Hy+Vi//791NTU4Pf7+fbbb3n99dd57bXX\n8Pv9NDU1sWfPHp577rk8RywyOE1hiWSotbWVrq4u7rvvPtxuN0VFRVx33XWMHz+eadOm4XQ68fl8\nLFq0iJaWlgHn1tfXEwwGcblcANxyyy3pYnW33norVVVVttsoTOzLsvuBiORLOBxm7NixOBwD3391\nd3enp7V6e3tJJpOUlpYO+J4Ld5UE+Prrr9m5cycdHR1AqpR9NBod2QBEhokSiEiGKioq6OzsJJlM\nDkgiH374IQ6Hg40bN+L1emlubmbLli0Dzr1wUbyzs5M333yTtWvXMmXKFABWrVqV3mNDC+gy2mkK\nSyRD1dXVBAIBPvjgA/r6+ojH4/z000/09vbi8XjweDxEIhF27Njxtz+nt7cXwzDw+Xwkk0n27NnD\nr7/+mv56eXk54XCY/v7+kQ5JJCsagYhkyOFwsHr1arZs2cKjjz6KYRjcdtttLF68mE2bNvHQQw8x\nYcIEZs+ezc6dO9PnXTyiCIVC3H333axZswaHw8GcOXMGbOF7ww03EAqFWLZsGQ6Hg7feeitnMYoM\nhe7CEhGRrGgKS0REsqIEIiIiWVECERGRrCiBiIhIVpRAREQkK0ogIiKSFSUQERHJihKIiIhk5f+e\n78jw6rAh5QAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# scatter plot the relationship between carat and price\n", "data.plot(kind='scatter', x='carat', y='price');\n", "\n", "# do the same thing, but plot y on a log scale\n", "data.plot(kind='scatter', x='carat', y='price', logy=True);" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data.boxplot(column='log_price', by='color');\n", "data.boxplot(column='log_price', by='cut');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Challenge Question:\n", "You can see from the above above that color and cut don't seem to matter much to price. Can you think of a reason why this might be?" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data.boxplot(column='carat', by='color');\n", "plt.ylim(0, 3);\n", "data.boxplot(column='carat', by='cut');\n", "plt.ylim(0, 3);" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nQrnSRGUZlba2Np5++mle/epXc/7553P77bej6/pJJcF93+fOO+/k6quvpqqqikKhgKZpyLLM3r17\naW1tZenSpXR1deH7Prt27aK9vZ1IJILjOOTzebq6umhubgYgHo+XjFrRu2ltbWXfvn20tLRgWdYk\nD6fIhg0b2LBhw6RjmUym7L9DcGaxGCcEAsFCpqzqr2w2SxAExONxbNvmZz/7GZZlsXnzZmpra8u6\n0W9+8xu++93vlozCu9/9bu655x4Mw6ChoYEbbrgBSZJ49NFH2bFjB7FYjI985CMYhsGuXbvYvn07\nuq5z4403kkqlOHz4MNu2bUOSJN73vvfR2tpKOp3mq1/9Ko7j8I53vKO0EPJEiGThwqWY7NX6evB7\nDp/wfHlJM86S5jlomeBEiET9wmamRP0JjYrv+3z961/n+uuvR9MWlrBZuYiOvXApDkzy//4C59/u\nOuH56v+9huCSK+agZYITIYzKwuaUq79kWWbnzp2TchgCgUAgEExHWdVfmzdv5t///d9xXffEJwsE\nAoHgrKWsRP1//dd/MTw8zIMPPkhVVdWkn91114lDDgKBQCA4OyjLqPzN3/zNbLdDIBAIBIuAsozK\n+vXrZ7sdAoFAIFgElL2dcGdnJ3v27CGTyUwSlLzyyitnpWECgUAgWHiUZVQeeugh7r33Xs477zye\neeYZXvGKV7Bz504uvPDCsm80nUrxAw88wJNPPkl9fT033ngjsiyflkrx0NAQd955J47jcOWVV3Lu\nueee2qciEAgEglOirOqvn/70p3z605/mk5/8JLqu88lPfpKPf/zjJemWciiqFN98882MjIywe/du\ndu/ezec//3laWlp44oknJqkU/+mf/im/+tWvAEoqxVdddRU/+clPAEoqxR/96Ee57777APiP//gP\n3vWud/GZz3yGH//4xyf7WQgEAoHgNCnLqIyOjrJu3Tog1NnyfZ8LLriAp556quwbTVUp7urqKuVq\nilv/VkKleM2aNUQiEQzDOKtVigUCgWA+KCv8lUwm6evro6GhgaVLl/Lkk0+SSCRKRuJkKKoUx2Kx\nkgDkREXiSqsUT6f/JRAIBILZoSyrcNlll9Hd3U1DQwNXXHEF//Iv/4Lrulx33XUndbOJKsUdHR0M\nDg4CoaKwaZolQwJCpVggEAgWImUZlTe84Q2lry+44AK+853v4LruSXkBU1WK29ra2LFjB5deeim7\ndu1izZo1QqVYcNKICYFAcGZRllF59tlnqa+vLwmIqapKX18fAwMDZSsBP/744xw4cIAf/OAHAFx1\n1VWsX7+eLVu2UFdXx+bNm1EUhYsvvpitW7eWVIoB3v72t/OFL3yhpFIMoYdx++23l1SKAS699NJJ\nKsUCgUAgmFvKkr7/8Ic/zM033zxJ5j6dTnPzzTfzla98ZVYbOBfMtVJqzgnoztg4fsCK6sii3kN+\nthEqxQsXoVI8/6Qtn/2DFu0pg6RRVt1WidPao35kZOS4fVNqa2sZHh4+qUYIQnoyNjuPZXn4xWGx\nh7xAIJg39g9a/HTPAPsHrROfXCZlGZXGxkaee+65Sceef/55GhoaKtaQs4mmhM55S2K8cXWN2ENe\nIBDMG+0pg8vW1dGeMip2zbJyKu94xzv4p3/6J970pjfR2NhIb28vDz/8MB/84Acr1pCzhZwT0JOx\nWZbQRdhLIBDMGzknIG05bGw0KzoWleWpbNq0ic985jPk83n++Mc/ks/nuemmm9i0aVPFGnK20JOx\n+UPX6KSwV84J6EgXSFs+HekCOeeEaS6BQCA4LXoyNnv6suzut9g9kK/YuFP26sW2tjba2toqctOz\nmaaEzqbmqklhr6KhWZU0OZDOsam5irZkZB5bKRAIFjtNCZ3BnMuBdJ7+rM1b2msrMu6c/JJ4wWlh\natJxD65oaJKGRspURZ5FIBDMOqYmsbHRJGmqOL5ZsXFnzozK0NAQt9xyC93d3Xzve99DlmWuvfZa\nVq5cCcAnPvEJYrHYWalSPNHQJA3hoQgEgrnB1CTaKxwVObnC5NMgkUiwdetW2tvbS8daWlrYunVr\nabHjYlYpLuZNRL5EIBDMJ7M9Fp3QqPi+z+c+9zkcxzmtG6mqimmak451d3ezdetWfvjDHwIsapXi\n6RL0lUIYLIFAUC4vNxZVYiw5YfhLlmX6+vooY+H9SXPHHXcQi8XYtm0bTz31FIlEYtZViudLULJN\nM9AjEVpqDBLRykYdDx/L8GxfAT0SYUNSaGEJBIKZma5YqEjR4JxOsVBZo9sVV1zBtm3beOc730kq\nlZr0s4nKwCdLUUV406ZNdHZ2cuGFF866SnGlBSVPRuagJQY4FpnTc/pKa12axte61OkB5zdEqNOD\ns04cUwhKCgTTM9PYNF2xUHFMSRrajAanXMoyKt/85jcBeOSRR4772fbt20/pxoVCAU3TkGWZvXv3\n0traOicqxZWmKHNw2bo6Lmo+3ojNBlNnE9N1EoFAcHZzMmNTJTyUImUJSvb398/4s/r6+rJu5Hke\nX/rSlzh48CArV67k3e9+N9u2bcMwDBoaGrjhhhuQJIlHH32UHTt2lFSKDcNg165dbN++vaRSnEql\nOHz4MNu2bSupFLe2tpJOpyepFJeroHw6onanI8h2qkz1VM5mhKDkwkUISs4uJzM2ncqYMpOgZFlG\npYjv+9OKSy50ZqNj55yAroxNf85l3YSHejIKxcJ4nBhhVBYuwqjMDRPHohVVEbpGCyVDczpjzGmp\nFGezWb7yla/wV3/1V3z4wx8G4MknnyyV8p7tTFcx0TlS4NljOe7f2TdJAfRkFIpPp2JMVIQJBGcv\nE9//iWPR8/25SarEE8eYSo0ZZRmVbdu2YZomX//610v70q9Zs4bf/va3p3XzxUDa8nnqaI7/fnGE\nJ3typQeiyRJ1psqlUxRAT0ah+OWqNE7EbJYwCwSCM5dDIw6Pd2f5fdcY3Rl70li0od6cpEo8cYyp\n1JhRVqJ+165dfPOb3ywZFICqqipGRkZO6+aLgf2DFkEQsKwmwq8PDpE0FLK2x4qaKMurmORWFl3N\nlKGRtl4qAZvJBT2dBPzpGCSBQLBwOTBUwCp4SBJ0Dtuc12CyvAoSukrncJ4VNVHSlkNU1SeNMZUa\nM8ryVEzTPK5UdWBgYNHlVk6F9pSBD7hegKkp9IzZ/HTPAJ3D+VJlVpHiTGD/oDVpRlCpGcJE97XY\nWUQuRiA4u1BkCTcIUCSZB3b3l8aizuE8P90zwO7+3LRK6ZXK35blqVx88cX88z//M+9617sIgoB9\n+/bxox/9iL/4i784rZsvBpKGzLqUwaGRPElDY3VthGpdmXbTm5mEIys1Q6hkWaBAIFiYnJOMckgB\nSZJZVtVYGouKG3KtqImyvFqfVim9EmNHWUblsssuQ9d17rnnHjzP46677uLP//zPeetb31r2jaYT\nlHzggQd48sknqa+v58Ybb0SW5QUpKNkYV2iMv1QHvqzqxB9rQJjML1aAVcIInI5xEpVmAsHiYOp4\nBGHu98BQHkNXSERkGuMzK6V3pAunNQ6UFf6SJIm3vvWt3H777Xz/+9/n9ttvZ/PmzZNWtZ+IqYKS\no6Oj7N69m89//vO0tLTwxBNPLGpBSZgc/pqNPepPJ+QlEvsCweJl/6DF77sy/HJfetp3vDh2pC3n\ntMeBslfrPffcc3zjG9/gH//xH/nGN77Brl27TupGUwUlX3zxRdavXw/Axo0b2bdv34IVlCy3FE+R\nZVKxCBFNZl2DOakC7OWuMRflwSKxLxAsbGYaJw4OO9gBbGpO8NqWahK6OuN4UolxoCyj8rOf/Yx/\n/dd/JR6P88pXvpJEIsEdd9zBz372s1O+cTabLRmZieKRlRaUnAvKneXvHbB4/PAoP90zCMD6uiim\nJpFzAnb15vjtoemvMRdehEjsCwQLm5m2Kn9+wOKfHznCkOXy7NEMHcP5GceTSowDZeVUfv7zn7Nl\nyxZaWlpKx/7sz/6ML3zhC7ztbW87pRubplnS7rIsC9M0S4YEZk9QcjZUistVIF6dctBlGUkOMCOR\n0n0PH8uQLgSsX1pFW2PNcdeYTYVjgUCwOJhpq/JlCY33XbiUpKGyJKFTb6o0mrMXlSh7hFqyZMmk\n7xsbG0/rxm1tbezYsYNLL72UXbt2sWbNmjkRlKy0SjGEs4FCwWb30Xwp8T5R9TNtOTQldJrjKlLg\n4/gBDdGX7lunB7TXauFDnkHFuFIKx4sNoVIsEEzW+QLYny7g+AFLYjoBDqtTEZbEdGqjyqwX4yif\n+9znPneikwzD4Be/+AUtLS1EIhF6e3v5/ve/zxve8AZWrFhBEAQEQfCyiXvP8/jiF79IZ2cnu3bt\nYtWqVQD827/9G7Ztc/nll6MoCoqicM8999DT08NVV12Fpmkkk0nuuusudu/ezTXXXINpmjQ3N/O1\nr32N3//+91x99dXU1NTQ0tLCt7/9bf73f/+Xv/zLvyzb8J2uUTk0EkqvPHcsS2NcJ2moHBoJXdEA\nied7x6iKqiQiCmO2x/Kqye6lpkgkDRVNEaGnkyWRSJDJZJA6O/B3PXnC8+V150P7+jlomeBEFJ+d\n4PTZ2RvKr9THdLwgYOexLF0jBQDaklGaEhqGVtlxZqYJXVmCkldeeWVZNzlVGfz55nRF7SaKRC6J\n6aQtp+ShTPRUejI2vz00yjn1JhsbTSEmWQGEoOTCRQhKVo5iybCuyjQndAYth76cy1Ndo/x5Wy0r\nqiMVH09mEpQsK/z11a9+tSKNWKzk3YB0zqU9ZZRK8l7VXMVQziVpaKU1KElDY3lNlJ7RAilTnbQ2\nZaoRORkDJBAIzl6KoS9DV+jLFBjMOqyvNxnJeyyJR1BliZ29OZ4YNzDr62Z3n6myjEq5e6acjeSc\ngGePZfnlvjRv31DHxkaTTc1V9OZcfvb8AG9Zk+Si5jimJtGVsTk4ZLGmLoYP7B54KQczdUVrU0Ln\nnHqTvrECPVMM0Om2V3hAAsHCp/gu9+ZcHtwzwP/dUI8syzzRNYoiS1iOTyqmkXcDhvIutYaGJkvH\n/X6lx4K52VVqEdM5UkCRJV6/upYl4yGupKFRb6pc3J4E4KmeLM8cyzOad7GcADcI2DVl8ePUFa0A\nGxtN1jXEaEro5JyAfekCv+nKkrbC0ulTWb8iFjkKBIuDzpECz/fl0BWJi1cnSZkadabKhoY4Q3mX\njkGLP3ZniKoSTQmd9pTB0YxbGj9maywQ9amnwEQLDzBouezrz6JI4ZqZA1KB/QMWaxtj9Gcdukfy\nWI7Pa1urWNdgsjSh0RBTWddglq5RrA/vSBcmeSxFD6UjXWB3X45fHxjmXec1cFFz7JT0esQiR4Fg\n4TJ17IlqCoNZl1RM5fkBC9f16Ri0uKiliiVxHUOTcf2Ag0N5RvIef+gaJfKKRi5qjs3aWCCMyikw\ncTAHiKoy5y5N0J91SJoae46NsaYxzqG0RXu9SWtNhIgiI0vQn7X55b50KbaZc4JS+d+K6siMD7op\noeMD9XF92r0QykXsZy8QLFyKY88FzVUcHXORJbDcgKOjDgNZm03L4qiqTDrrUBVRaE9GiaoSqiyR\nsX1WJ43S+DFbY8FJGZWBgQHS6TRr1qypeEMWEk0JnfObEgSESfojI3maEhHqYxq2G3D+0gR1MRXP\nC6jWZc5rDB/ifx/M8EjnCBuXxPF8SivpDw0X6M/avLm9FgmmjXGamsSaZIQ1EzrB2WggRE5IcLaS\ncwIC4PymBN2jDoHvU2NoxHQfTZYwNJnDGYcX+rKc0xDj6Z6wXPui5vikcePlrl+Jd6ssozIwMMBX\nvvIVOjs7Afj+97/P7373O5555hk+8IEPnPLN+/v7+fSnP01zczOqqnLTTTdVXLm4knSPurw4lCem\nKxiaxJNdoyypMlhVG3ockiTxbG+GC5oSpC2PvjGb+pha2t+k3lR5dUs1BAE5x6djqMDu/ixtSZO1\nDSaWG/DowWHeuLpm1io0yu04Z+rgLeT9BWcTU8ecZ3sy1JgRqqMK/dkALwhXQw9ZLsuqItRHZALP\nRCNgXWOcjkGL5dV66V2ZuPyhWCRUpFLvVlmJ+m9961tccMEF3HvvvaXdH8877zx27tx5yjcucv75\n57N161ZuuummiikXf+xjHyspF1eS5/pzPNI5zH++MIgmS+OJdYW4rhCLKJiaTFvSZEVCw9Bkag2V\nIAh4ujfcZrjf8tBkGMm7KLLEsOWiSjL7B3OYqoShSixJ6GiyRNry+f2EpHyl6Bwp8Mv9Q3SOL4ya\niTM1oS9yQoKzialjzgXNVdTHNHKOT31MRVdkDFVmSULH9QMOD9v89vAw8YiKDGxcEpskWrurN8fT\nPdMrpM/pzo8dHR1cfvnlk7S1Jup0nQ7PPfccW7du5cEHH6yYcnFtbe0kvbBKsbw6/NDf1FbLskRo\n/WUkBvIevu/j+gH1MRU7kDgyHO5dMGR5PN2dGa8KU4goMvUxnSCA/QM5WmujrG+IkTQ0liV0zl8S\nY1lCZ8+gxX07+9jdbx1X9XU6aPJLhuvlOFMHbyF8KTibmDjmmKpCR7rAsOUS02Qs22cwZxOPKMhA\nTA8nspvX1mF7AY92juBB6V3pydj0jRVYlYxOUkgvUql3q6zwV3V1NceOHZu0grKrq4u6urrTunlt\nbS133HEHqqpy2223kc/nqa6uBiqnXFxJqnWVLmxWTJBZGc67tCY0+iwPVZJIxlQUGaqiKgM5h+aq\nCH/SWkMAuH7oppq6jOP51BoaILGvP0dVVEGXpVK4qd5Uef2qGmK6XKr6uuK8BhpMdVrXdSozha+W\nJfRS3ublzj8b8zUCwZlC75jH7v4ca1IGeq1E0tD4Q88YLQkNHxjO+2iKxJqUweGMQ40uk865PNE1\nymtbqoGAGkNFl+XSpltJQ6MhHmFVbZSkMXurScoyKm9729u49dZbufzyy/F9n8cee4yf/OQnXH75\n5ad3c/Wl27/yla+cFeXiqZyKSnEm73J42OLFoQL/uS9NVJXJehGGLA8zotBneVi2xzP9OXzgHect\nYWk8wHYDqqIKRzM2XSMFNjXHSURCo5O2XOJRFcv1WZEyGbMD/tA1yvrGGOc3JdA1nTX1MlFNYY2m\nUm3omJrCzt48/Vmb+LooG5Izt/vwsQzP9hXQI5FJ5yWAxmT55wsEgrlh4sRuz6DFgSELJImUqdI/\nmKc6qtKVcZAIiKoKNYbC4YzDsoSG5wcossRrW6qpiSrYXkBDTMNyfDoGxkqVqgfSOVKmStKYvQlj\nWUblTW96E4lEgoceeohUKsUjjzzClVdeyatf/erTunk+ny95HC+88AKXXHIJjz32WEWVi6dysirF\nOSdgZ2+OX3eO8LY1Sd7SnmS04DHYm+XQkMWrmqvQZYgaKhsaYySiCgMZC1WRUBSJTN5j30CONXUm\nKiBL4zFHCbIFh+qoRu9YgXTWpbla57edw/i+T/dwnuU1UY4M5zmn3iSdLXBkyGNFrUFjzCQu+6V2\nT+eVxGWf5rhCJPB4+tDACRPudXrA+Q0R6vRgQYn8CZViwUIn5wR0ZWyOjNgM5Rwyto+uhFv+DllO\nqHruBpiqREtCoyfrkDIUujMOrQmNvA99WZdg3LAcHi5g6jLn1BuAxIYliVJkYi5C2mWXFG/atIlN\nmzZV9OZ79uxh+/btaJrGunXraGtrY926dWzZsoW6ujo2b96MoihcfPHFbN26lVgsxkc+8hEA3v72\nt/OFL3wBXde58cYbgdDruP3225Ekife9730VaWNPxmak4LGu3iSd93C8AFWRsAse7fUxIoqEIskM\nWi4RVWas4PHvewd59ysacbwAVwlYWWvQPO62Zl2fprhG75hNdVSlxlDJOT7La1UMVeacepPmap24\nJjOcd1leE2VFTZSkGc5SDg1b9GQclsRfmm1MV7WRthwOpEMP70A6d8KKjtkKd52pVWQCwZlC50iB\nIcujxlBRZJmBnENMU2iIa0QUieG8R50R5k2OZByaExoDlsfShAbAkOUgE1Ab08gUXMZsjz39OV7b\nUsV/d6S5bF1daTuOuaAsleJvf/vbvO51r+Occ84pHXvhhRd4/PHHufbaa2ezfXPCdEqpacvn2GgB\nF3B8OJp1MGSJghfOIrpHCzRXRzA1GUWSGMq7GKqM5fqMFTxWp6JYjs9o3sPxA3rHbF6zLM7B8U5x\ncKhAz0iBtY0xZECRwvxMIqJw0bI4eTfUFBvMOSyvjrCiJsqhkTxpy6MmqnDeBJHJ6QbunBPQOVJA\nlSXcMnIws8VUhYBKI1SKFy5nm0px2vLpGS0wYof5kLgi4QEjto8uS4w5HqYqM2p7OD4kowqjBY+I\nqpCKyhwdc2iKa3RmHBKaguf7jNk+SxIaw5bLQNZhSUJHkiSqIgrNCZ3O4TztKYOkIVf8XZxJpbis\nbM1vfvMbVq9ePenYqlWreOyxx067YWcqu/stDgzbHB62OZoN45b1MZWIImNoMi01UTRZQldkAgJ0\nRUaSJWw3wNAVdMD2AhJRlagqs6L2pcICDaiPabSmDGzHQ1ckJEkiqsmsSRr0ZGwOj4Tik7WGRkfa\n4rn+HI8fHiUynpzrydilmcd0VRumJqHLEk91jaLL0rx5CWdqFZlAMJekLZ/n+3Lk/QBTl8k7Pv2W\nR1/OJanL5D2fiCLjeAFLYxo1EQXLDaiOqlRHZXoyDvGIyqGMw/KEhqlJxHSFhphKpuAxmHPR1fAd\nPzJkUR2RaYwrXNQcKyXl5+pdLCv8JUnSpMoqCCutZqPC6kxBUyRaa3Rcwg8p7wVElLC6K215JHSZ\nYxkHCYhoCqriE5El4hEFRQIXcL0A1/Pwg4ARy2WpqdIU10jbPqoEyYhCxvawvQA/gPMbYmRslz90\njdJcY5CxPaK6TFSVx0NiVZPk9SfOOKbzVs6EAV1UkQnOVnJOwOGMje+EY6cTQGD7ZB2fOlNDV6Dg\nBhzKOJiaQgChfH3ORZMlag0FgLG8x/KExpgb0JLQGC74xHSZXMFjaDzsHtcVkjGVdSmDlmp92nd+\nrt7FsjyVtWvXct99900q3b3//vtZu3btrDZuPrH9gDE3IAJk3YCsHf7txUeiKRK1pkoqqmAqof6X\n5QbIEjxzNIsKVEUV8n5AfVwjaYTxz54xh2pdJu+GkgtBAP1Zh+G8w/P9OWw/4PymBClTpakqSo2u\nsKQqggQlg5I0tGn3op66WHE6D+ZUlI0FAsHJ0Tvm8YeeLEeGC4x5AVk/oNZQiKgSrQkNVYGujEPW\n8ak1FKqiMsmIzJDlkDJVqqIKw5bHcN7HR+JAxiHnBhwdcwiCgOG8x9HRAo1xjaqIQtpyqI0qJA15\n3tdxleWpXHfdddxyyy1cf/311NXVMTAwQG1tLZ/61Kdmu33zQu+YR0oP7W0ARFUJedz+ukCDEZYR\na5KEO37OaMEjqkrocrHqIvRuUuOdwxi/XoOpMmR5GJqMIoGhyehKKPjmB/Dg3jSb14Y1v3nHI+v6\nPNU1Sq2hsSplcHiGpPtUr2SqmmnxayFzIhDMHnvTDr7j4hBOKiMo5ANI5xx8wFBkjjkeBdenJaHh\nEk5UD2UcqqMKSUOjO+NgqjKaLFFcGbEqoTHqBtRHNQ5mHGzHQ1MkMrZHg6kzVnDn74+eQllGJZVK\nceutt9LR0cHg4CD/f3tnHh9VeTX+791mn8lOAgkJxEALZXFFVFRqrbXqq9Ui2lZbraI/sfrpom9f\n60qtttblVRB9q9atdWkttdpqF6u1aIstWlQQFZJASFiyTUgms97t98dNBhISiDBJZsjz/Xz4MLlz\n7/Oce+/c59znnPOcU1RURE1NTZ8V9gcL4bjFmh1RSoMaMo7/wwVpe6UCzg/GJdMSMyj2yCRwFE3K\nglaSW5UAACAASURBVIRh0btY3aNKmJYzI+hIGORrLhRZwq3JRJKOY18CmqNODZaAS6Ey3013ysKr\nOtc24JKZNT5Id8LAp8rMnhAc0tS2fybl3s/ZYBITCHKZ/uXDW+J62sTVljDxqI5vpMAtUx/RKfWp\n6bQpccNGlWwKghqdSQtFhm4bin0qXUmTSNJkQlBjZ9xEkhxLhgR0pJxxZVPEwDYtKkIuOuImf90Q\nZuGscXxhSkHWPNNDDimWZXlMZCde2xKn0KvS/x3exrm54CgZWZHw9Az8as/3SdNCkSWMHvdTyrAx\nLZuAWyHRszFlWI4D363SlTAoDmgUGhrhuIFu2bTHTVydScqCbpKGTThmEomnCLg1mnbGmTbOP6Sp\nbX/lIRSJQLB/9JbrnZTvoTNlYOi7/Mu14QS6aePRZBQZXKqMokgkLZsUzgyjLWGi21DiVUCSMG2b\n9qiOJMtoNuimTcilEvKoeGWI6BYlXoVw0iLolokkTDrjJju6kxT7VPI9GjWFjjUk36MM+wr5T8qg\nSuU73/kO//u//wvAFVdcMWgDDz647zDOkeSJJ56gvr6eyZMnf+Jw54/COh5VYqAMW1K//y3Ao+wa\n3JMW+DWZxojO5J74ca9LpjvhTHUDPeavcMKkPKgRjjkOtpX1nRw/OQ9VkQlqMi5ZSieiDMd1XApM\n68kNFo7rQ1YM/Wcuuxf7EuYvgWBPNu3UiQ9gRkoCQU2mPbrLX9mWMLGRCLhloroFpkUq6VglupMW\neV6NHd06tg1eTaHM66SlVyTI96rkeVQURWJnzCDkUWiK6GgSyD6VpGljWhaq7CgcRZYo8mtMKnDT\nlTKpa42lMw8fXeEfqcszZAZVKpdffnn681VXXTUiwhwomzZtIplMsmTJEh555BHq6+uprq4e0rHN\n3Sa14ThBTabEo+x1XxPHDKb02LlUIGnb2D0qp3dW050w8WgK0ZSZ3jfkVuhKmLgVGU2ROHRCkIRu\n0Z3Q8akuqgucQl2RpMVR5RZVeR5KA448mUitIMxfgrHE7r7FLRGDrV1JxnsHfr53t0bsjgp0JC2i\nhoVp2ZiAR4YCr0Y06SxMbOvJQG7aoCiOwz3frWBLThRoS9ykyKvgVmXaos4LpWLZBFwKKcNOv4gC\naB6F1rhJnqbg06Q+a8xiuk2pT83q53dQpdIb2WVZFq+99hqXX345mqYNtntWsHHjRmbNmgXsynI8\nFKWyceNGtihlVAeHdn4STthcyrBAVbBwFIyN42sJJ0yKPQoBt0JHwiSoyaRM5y1mU10tR06bStyG\n9phBVb4LjyITTZlUhtyUh5xb4tMUSgMHloJk48aNTJkypc+24QgrHKif4WKwvja2hpk0Qn1lU5u5\nIOOBttk/NHcgtjXUM6Fq8Gd9czgBwHivQhJn4GuK6LhkJ0gmYVjke1V29ixi7tItFJy0SpbtmLX8\nmkzH1k2UTz4ECdge0dFkaIpY+DQZCYkSj4wJSChIOGNFXIaEbhFQZboNm/F+5xnvfTm1VImoBW1R\nnVnjfOkxIFef3336VGRZ5v333x80QWM2EY1GKS0tBZyMxr0p8fdFbW0tgRkDrw4dCBnnrcalylg4\nTjS/5tg+vZpMR9zARmF7t86nCr3UFDrKqqFTp3PrJvyHTWd6Xl8FVpWXeYVdW1s7IoP9SPWzt742\ntmVeqQzHeWW6zVyQcV9thuMWDZ1J3BKkcHyW/dkeNRjvV9keN4kbFnluhc6kmf6+buNGEoUTBxfA\ntJ20FbtR6tdIGBa6aZPXo1DyPCqRpMHEoIZhgWnZSLKEX3ae+bqmTVRPdhaCVw3yErr7PMgGXDJY\nmkxDROfTxV7aYzouVaamoH/ob998hbn6/A7JUX/66afz61//moULF/bJLJxt+Hy+dPbieDyO37+n\nvXGgLMVutzsdQrwvbKAlbuLXZAzTRvZoHF8RIujZ87rM7ff3jCDUjQ8xo2KANMHDgNvtHpGEiyPV\nz0j3JRgZNrbH2RBOUOBW02/vfVAk8twK9RGdfJfC+KDG9qjRx7LQ7laGbGnYHf9uz30o4BwfUp3/\nNRnYre5Q/9fq7XEnrcqnijxpf+feg2gcpTE5P7stPgfKkDTEn/70J3bu3MlLL71EKBTq8102Oeqn\nTp3KX//6V+bOncv777/PZz/72T32GShLcTKZRNZULH2Xk673BzO71LvHD6Xv0YAeJ6IPTcZkMjli\nWYBHqq/RPKdeBSOPK8N11Q37PF4eNwGrow3Crfvet7sLpe7DoQlWWIJZcGD1hcYqU4q8uFR5rzMV\noM+LX68JqZfBhnIbiBg2nQmDQ0v9af/k/tLgV5le6iiH6bttH85U8rnGkBJKrl+/ftDveis1ZguP\nP/44mzZtYtKkSVx88cWjLY5AIBCMKYakVA52IpHIiL1pB4PBEemrNpzkvZYks8e5hz10eKTOaaC+\nejPdDocMudBmLsjY2+aahrY+4eyZzFI8Ur/B0fytZ1s/g2UpHpL5yzAMVqxYwT/+8Q86OjooKCjg\n2GOP5ZxzzsHlyt7QtrHMhKALl9spuiUQZAMinH1sMCSl8vDDD7Nt2zYuvvhiSkpKaG1t5fnnnycc\nDrN48eLhllGwH/g0ic8UjtxblUCwL0TG6rHBkJTK6tWrWbZsWTqaqqKigilTpuTMokiBQCAQjAxD\niqPNz88nmUz22ZZKpSgoKBgWoQ6ElStXcuutt7JkyRI6OjpGW5wRIRPp7HMlJX4kYYy6nJm6Vplo\nJxuuh0CwO0OaqZxwwgncfvvtnHrqqRQVFdHe3s6f//xnTjjhBNatW5feb8aMGcMm6FAIh8OsX7+e\nG2+8cVTlGG76F+QaKJ19TLfZsiNCscseUgLKXEmJv2VnfNTlzNS12lc7AxVe67+9LTr610Mg2J0h\nKZVXXnkFgOeff36P7b3fSZLE/fffn2HxPhnvvfcelmVx6623UlFRwUUXXZQTmQB6GWwQ6U//wajX\nAVro1agNJ9N1Uz5J9FeuOFEr872kRlnOTF2rvdXAGexlAfrd/9L8vV6Pof6mBIJMMSSlsnz58uGW\nIyN0dnZiGAY33ngjTz31FKtXr2bOnDmjLVYfIgmDjeEkek+dlUl5zmCxLZIiZdm8ty2SHkQGGxD6\nD0a9DtDdMxB/0uivXHGiBj3qqMuZqWu1txo4vS8LsycEsXGUw0Blovd2PWK6zdrmGB80R/lMqZ+Z\npT58mkRMt9ncmUSTJcqFshFkmOzNubIf+Hy+9GLMGTNmUF9fv8c+A6VpcblcI5b64+PWGB+0Jomm\nDCJJk8A0DwDvtSQ5ojzIcYd4qMz3EvSobNkR4b2WJC63m88U7pIvCJQOkOmlRvPicrvTx090uUil\nUn32iSQMtuyMp/cZjKHuB4zo9RvJvnZnX2/8mZgRDPSy4JIlVjd1Ie02WxmqUtsWSdHSnWRyoZeW\n7iTbfI4C2hZJ8be6nZQFXUgw6kpacHBxUCmVqVOn8tprrwGwefNmxo0bt8c+A6VpSaVSwx562zvo\nFAa9lAdVbFQ8qkyxyyZh2FQEFEKqTaFXSqd9KXbZzB7nJiBbrGloG9KAVeknffxAi5p6ZzOpfdjg\nh7ofjO6CsJFSMPvyfwzVz9LrWB/oXvo0KW267P0+6FIpC3oIuvb+qA6k1HqVU/9aPBOCLj57SD6a\nLGW9uVOQexxUSmXSpElomsaSJUsIBoOcccYZoy1Smm2RFP9s6KKy0KC5K8HmziQnTsoDYEc0xeqt\nEQzgsN1MFP3rys+eEMTVMxD032eob8eDDVL928qU3yAXbPoDydg/0GFv121zZxJVltKlnvfmYF+/\nYyfvb+3kM6V+phR590hEWNuR5M8bwnxhaiGzxnnYvDPBK7VhfJpMaWDwgkwDKbXdZzS756byaRLT\niz2ZuXgjjDJI3rakoqKY/QpsiXxso8JBpVQALrzwwtEWIU1vGdIpRV4mBF1UF/nY0Z2kLOTGkpx6\nKtsiKTRZoiLPzeZwnNLdTBT/bOjiUyU+phR5mT0hSDRl8dctnZxcU8D0Ys9+RSENNkj1bytTfoNc\niCobSMb+gQ6DXbfNnUl+/1HY8X+MDwzoG9u9n9aoTlWBlw9aoiRNeHd7F3MqQszqeZlIGRY+l+LU\n6sFJtnjap4pxqTLhuDVo2dhcCbQ4YMKtpH7y/SHt6vqfO0AolREnewobH2SE4xZvb+tmxbpWNrbH\n8WkSsgzbulIYlo0qS5QGNCYEXZQHXUwt9nJIoZegS6U2nKTQq/GpEh8t3UmnrLAs0RbTKfBqaPKe\nDtv+xHSbD3ZE9li/MKXIy1nTiplS1Ld2w3ANSrkw2A0kY6FXoyrfTaHXSVM+2HXTZInqQg9FfhcJ\nw+KfDV3EUlZ61tJLTLexgAKvgt8t0xE30RSnemBHwnm5AKgu8HDkhADVBR5iuk17XCdpWvzqvRY2\ntscHPYfel4BsnQ0Kxg5ZOVOJRCKsWbOGjo4OzjrrLMLhMLZtU1RUNNqi7UHvbKQs6KI+nKC60MOO\nSArdguZIks9NKaTApxLTbWwbCn0aHlWmxO/C55JJGM7A0ZEw+bg5Sly3aNyZ4MiJQQp9KkGPQqFX\noz2uU5XvpirfTXm/qK+B2NyZZOXmCMdWBvGpu0xmhV55wLrWwxX9lQtRZb0yhuMWa5tjabNUw84k\nPtUmHJco9GoU+VQ8qmN2rO1IkjIsJobcTAy5aYvqWLZNRb6HzR0JKvLc1FpJvKoTYbUtkmLtjigJ\nEypCLvI8Ki5F4ojyQB/fRly36EyaRFImG9tTNOxM4lYlvjC1sEeuXbPfwWYtAsFoknW/yvXr1/Pt\nb3+bN954gxUrVgCwY8cOHn744VGWbGDWt8Z55r0W1rbGefw/O1jfGueFD9vwumQq8jxMzHPxTlMX\n2yIpQi6ZkFtFUySSusVfazt4b0eUNduibA7HqSr00pU0OKTEh2nB79a3kzJgQ3uclz4O05VwKt1t\n7uy7gnqgldmaLFEWdJMyLFb39C/YOx+2x3n2/RbWtcTpSJiUBVTCMYOXN4RZsyPKyk2drGmO8X5z\njD9uCPOvxgjrW2NMLfLi1RT+WruTlGlT5HNmH3/cEOatxgibOx3H/KwyP3Mmhijxq0wu9FARdDO9\n2MOU3WYY61pjPLx6G2tb49SGE0wq9FAacDG7zE+hV2Zju/P72tusRSAYTbJupvL444/z7W9/m5kz\nZ6brodTU1FBXVzfKkg2M3yVzck0hsm1z7uxSPl3sxaNIuCSJfzdFmF+dT1nIS0y3ieoWcd0krisU\n+FRmjQ/S1p2iNOgi4FKQJWiP6hR4FDpiBh5Vpitp0JUwCLhUOhIm65pjtMd0/mtaYdrZOpBPoDzo\nQlJULNPYwxQjcOjvUA9pCnMm5qHK8NzaVg6bEKQ1qjMx30tHTGd8nocPdkQp9KkcPTEP07aJJA3+\ns70bn0thSpGXPI+CS5UJWDbzJuXRlTDQZAmfJjGl0J2OXhvMUV5V4OZrh5YR0mTwaRR4FN5u6qLY\np1LodQ9qhhMIsoWsUyqtra3MnDmzzzZVVTFNc5AjRpeqPDcuCTZFdKrzXcQNk8adCZAkFFliZ8Jg\nXXOUpG4xa0IARZYwLIikLOIpk+6UxY4dUaYUO2sJiv1uDBO6UyY1xT6nHrdXRVEkQm4FK8+F3y2n\n/SowsE/Ap0m4VIV/NIQ5qiIkbO0D0KuMP1MWJJYySRo2zd1JykMujpoYoiLkIuRRKPSqtMcMtkcS\nFPk0XIpMV0Lnna0RjqrMoz6cwO9W8GkKigS//M8OTqzO5zPjfARdCp0JM+1k31tIMUBl0EVn3KRb\nt5hW5GV8QEXa7d4OZr4UCLKFrDN/VVRU8O677/bZtnbtWiorK0dJor1T6JXpSFqsrOvgrcYI3SmL\nkqCbSNLg0yU+Qm6Fo8qDfPaQ/B67vIZPkyj2KiQNk6oCD9PG+TAsm6Bb460tnUSSBgGPSjTpLJB0\nKxJ+TcWwbLAlKvOdt9xec9fu6xt2N4FV5nv3UDa5kjhyOOg993DcYn1bgrhuUxbysDNu8MKH7UgS\nVBf60BQJTXZSDyVNi/qOBH6XwsQ8DyV+jQKfyviQm7mVeRR5FKoKPEwIuikPuQh5Vc6YVszUYi/l\nQRfxlMlvP2hNm6t6c5cNZo70aRJHl/v43KQAhxRowgEvyDmyTqlceOGFLFu2jPvvv59UKsVDDz3E\nAw88wAUXXDDaog1Ic7eJIsMR5UEmF3jZEUnxztYu8r0aIbeCbsGG9hiNO5PkaxLRpElIk2mNGqiK\njEuRaOiZ2fhdCnMr8ygOaAQ1BdO2KfFprNrShSLZxHSTIq/COJ/K2/0Gpt637t5tMd1my854WqH0\nKpL++40VwnGLfzV1s3JTJxvb4/y1toNVTV3UtSfY2pVkfnU+qiKhKGDb4NMUJKDIq1Ee8uDVZPI9\nKl26RWfCYHVjF2VBje6UhaZIWD39vL8tykctUVy9Jq9+5qqBFL1AcDCRdeavqVOncuedd/LGG2/g\n8XgoLi7m9ttvz8rIL4D3WqIYpo1p23g1mc4EzJmYR55bpjGSYkLARXWBF01x3jQVRSJqgkuRMG0Z\nSYKKPDcFHpW2mMHkQjf/aeqiIt/Lju4UU0t8zCgLUBTQCBoqXlWiyKvtMTD1N4Htvs4C6JMTbCwO\nahvb46zZFmFaaYCAS2Hm+CCqBCkTJGySpoUqSWiyhCRLlAQ0TMtGliViKROXotARNyjyqMQMmxll\nATa0xin2ayQNG02GbV1Jqgs9zCjzDWquyobcZQLBcJJ1SkXXdUKhEGeddVZ6m2EY6LqOpmmjKNku\ndnfwhtwqcd0CScKlSKiqTLlfJWLYuGWJpGmzsS3G5CIfKTe4VBndsLABn0tBU2Ty3BJtMYPpJV5K\nfCpqRYiUZTMh5MGy4YPmbrZ1aVQXeflgR2zAhYT9Q3f7J5Qci4pk9/s0Kd9DOGGSNEz+0diFbdlM\nLwuQMk3GBzW2RnTcqkTQVomlTAxTIuhWUCQbywa3KtOVsCgNyrREkxR5HXNkvldFQUK3LCaENCbl\nCVOVYGyTdeavH/3oR3skgqyvr+e2227b57Gtra0sWrSIJUuWDGn//aV3tfva5hhu1Xm7DboVulMW\nxR6FDeEELtVxyGuyRE2JnyKfiguIGxYFbhlVlojrJinDoi1mENNN6sKJdPipJkvI2HhViVnjgxR4\nVHyqPORILp8m8ZmyID5N6mOXH0vmr95zre1Isr41hmlaBD0aE/M8FPpduBWJfI9CZ8KiKqjRGNHJ\n0yR8moxtQ8qw6UyYlAY0upMmfo+CBwi6FWRJYnxQI+SSObTMw1ETfEwv9giFIhjzZJ1S2bJlC1Om\nTOmzraamhoaGhiEdP3v2bG6++Wauv/764RDPWcQIHNKz2t2wwK1KRJImxW6ZuGmjWzYewKfJdCVN\nfKrExta+6wriuolXlZEl8KoSJT4NSZL43Qft1HYkCblUCr0apgWReAq/S6FpZzxtq99fxpL5q/dc\noymLf27pAkXGMC38LoXSgIamSLhVmYhuIgPjfBpNUR1wIvda4waWbeORIKZbjPOpoEg0dyUo8atU\n5u1aiCoQCByyzvzl8/no7OwkPz8/va2zsxO3e2h26HXr1nHzzTczZ84cTj/99IzK1tCps641zpZw\nnHmT8kh5XWgydCYsZ6W1BQndIq5bPTUwLIp9Km5FosCnErfAo0js1C1K/Y7JJeCW6U6auDUZn0uh\nLOiiM2EQSZm8UhvmnM+UMG2cf49Ms/tLLqxwzxROBgGNlqhBZb6HArdCwrAIuGV2xgwiCROvJlPg\nUohb0B7TKfapxA0bv0umRJbYmTQo8ruImjZ/3BDmjE8XpZWymJVkN5KqotR9OLSdRfLJjJF1SuXo\no4/mvvvu4+KLL6a0tJTm5maeeOIJjjnmmH0eW1BQwNKlS1FVlZ/+9KfMnDkzo6HI61rjvLqxg5Om\nFNASM/igOcoxE4MYlo0mS1iWTZ5bwa24SQEeVSZl2HSnLAq8KpLsKJW4bgESeR7HLu91yYRjBknD\notjvIhzTOaTQy/zqAsYHXJSHnNu0e6ZZwb4Jxy1Wb+0m5FEYH3QhS5DvUUnqFrplU+BTae3WGRfQ\naI3qVAY1WuImblWipVun2K9RFnARdMt0pyxsGzoTJoeXiYWHOUGki9R9S4a0q0g+mTmyTqmcf/75\nPPnkk/zgBz9A13VcLhfz58/nK1/5yj6PVdVdp3P44YfT2Ni4h1I5kCJdFcE4J1bnM96v8VZjF7PL\n/CQNC68m050yCXgUEkkbSZJwA1HDojio0RozSOgWxYrCtpTF5KCGAeyI6E5+L7eGZYNXU8hzq2iq\nTEw3+fPGDvK8Lj5dXjDk67c7I1XQKhuLdMV0m7e3R9kaSTC+Z3+/JrMlojMxqOHVZLZGdCYHNdqS\njkmsJW6S51Vojuj4NZnatjhNnQl804uoLnCTMEJUFwjFLhDsjaxTKi6Xi0svvZRLLrmESCRCMBgc\ncp35RCKBx+MsDPz444/54he/uMc++1Okq7dmhkVvKLBNdaEXlyKhSBIp08avKcR7kkYaPaWCPYrE\nzoRJwK3QHjMo9jhrH2KmDRJIssTzH7Rxck0BkaRJWUBjfbMT+qu6JI6fFKLAI+13AayRKp6VjUW6\ntkVSpEyL0qCHqGGTp8k0dutUBTUaIjrVQQ2fKtOpWximRZ5bpTOhoyScCL2qfDdBj8ZnSn1pU1dV\nXnZEHwoE2UxWKJWWlpZ0lcbm5uY+38XjuxzcpaWle23nww8/5Fe/+hWapjFt2jRqamoOWLaYbvN+\nc4y/1XcypyKIYdpEUxYBl0LCsCnxyuxMGOR7NXTDQlPAsh0lmDBtinwqNuB3KekFcqoi0RE3KfAo\nfK6mALcqMy7gIt+j9nGiyzAmHOrDgYFMiU8jblioErQnLcYFdimU9oSJadsENQXddKK8AHQbDMMk\nqpucUFMyYspSIDhYyAqlcs011/Dkk08CcPXVVw+6369+9au9tnPYYYdx2GGHZVS2bZEU4YTJ9FI/\nZX6Vpm4djyrh12Ra4yadSQuvKiNhk7JtArJCwt5VgU4GorqNYdnIQNAl0xbVmeDX2BE30WQZy7L5\n+dvb+frhZXxu8q4377HiUM80zd0mteE41UENCZm4bpPvcUxfVUGN5oSJV5FIWTYpQJElFBkSBuR7\nFN7bHqe6MDcrIwoEo01WKJVehQL7Vhwjj0zQreCSIWrY+F0Kcd3CsGyKvQoa0Nito6kSeR6FtqhO\nhV8jCbhkSJo2CcPErTrR29GUxTi/4xD291T6C3lUzplRQkWemJVkgveao0wOOqaqqG4hSxJRw6bI\nq9ISNxnvVTCAlGkTSViATYFLoUuycElwZHlQhAoLBPtJVq1TsSyLq666Cl3XR1sUwHnj/SgcJ98l\no8oyAVUimjLxuhQCboW2mIkFuFXHn6IABR6VpqiBG0hZ4FckPIpMQneMXybglaEraVDgVZkQdDEx\n5OYzJV4mioEsI4Q8KlHDZkfcpNCr0K2b5KkS7XGD8V6FcNJCBrp0ixKPTHdPCPi8iQFmlnqZNU4s\nYhQI9pesUiqyLCPLMqnU6K/2Dsct3t0RpdSnogDbo46i023IUyViSQtNhphhU+iRSZkWMd3GpUgU\n+5wJoE+VaUuYaKqMR5GwAQWIWTClyMPEoIuaQjeFXllkos0QMd3Gr0okTCe8uzWqM86nsT1mMM6n\n0pG0CLplNvf4VrZGdUKajAljIsuAQDDcZJVSATjttNO49957Wb9+PTt27KC5uTn9byRZ3xonz6M4\nqTp0C58qEbegyKOwPWogy47D3adKxA0n2itPc3J4GRYkgaRhEfIopHSLaSU+Eja0dutIEiKlxzBR\n25HEBAIumdYe31VzTGe8TyWhWyRNCwsIuRS6emaPIY9CS8wQQRECQQbICp/K7jz66KMAvP/++3t8\nN5L+Fk2R8KsSBs6CN2zwyBAzQO4pkGVbjlaOGTZeVSZu4aT1UCCStNBkCQ04rtLJUrsjKuFzyXhV\noUyGi2jKIqhJRAybEr8zEyn0qHQbNroNZT7HrxJyK7TGdCp7IsI+XewVSn4MM9TV93rpBAjkjYBE\nuUvWKZVscdSnLJsgEl1JC1mW8KoyzXEDVZIIuGRSpo1LkzAB3TAJ+TR2xg3y3CqtUYNSv0p73EiH\nEYOTXFJVlD5VGwWZxcZGRiJPk6jvMXGlcCptmj3rhxKGRaHXKd8M8MWa0OgJLMgOhrj6Xrn+bqFU\n9kHWmb96CYfD1NbWEg6HR6X/IpfMjphBYU/p3va4QZlXJdrj1A265LRzPuRR6Eo6EV6qKmHYNknL\nJmWaJIxdaqU86OLwipCILBpG5J6Fsg0RnQlBDRNoiugUuWRMyyZq2FQFNdriJn5Vocgv7oVAkEmy\nbqbS1tbG0qVL2bBhA4FAgO7ubqZOncpVV11FSUnJiMjQ3O1EdRl27zoTZ7GjiRO9FVAktkcN/G6F\nqEXPYkiZhAHdCZOqAjcFLpWuhElV3q71Dj5N4jOFI7f6fCwSUiUnnFuViSctohIUuBTaEiZFXhVN\nlejQneivmkIPpQFltEUWCA4qsm6msnz5cqqrq3n88cd55JFHePzxx6murmb58uUjJsP61piTCt2v\nErNsJwmkYTnlZT0KrQkTjyqTNCxUGYp9Kq1xkxKPjFuRqAy6KA0ofHZyUAxaI0g47swKd0R0xveE\nEvtUmW7dJORRsGwb3YSKoIvPTgqIeyMQDANZp1Tq6+u54IIL0jm8PB4PF1xwwR6Fu4aTSQVO300R\nHY8s0Z00KeoJE25PmOT1DFBeTUY3bCevl1chCcws9QmH7yixtsVJ6VMVdBaf6razAHVCQEsX3Ap5\nVJHDSyAYRrJOqUyZMoXa2to+2+rq6pg6deqQ2/jDH/7ATTfdtN8ybGh3BievKhNOWJQFNdpjRvpi\nuXBWY5uWU5lRU2WSBlSFxFqT0USVwQZ0YGtPSpaupEW4J89XVaGXTxcKhSIQDCdZ51MpLS3lc5jU\nGQAAHdpJREFUxz/+MYcffjhFRUW0t7ezZs0a5s2b1ycy7LzzzhvweMMwaGhoGHJm4/7EdJs8z67L\nokgQjjv2+CSgSc5K7HyvSjRlEcGmOs+drnkiGD1cqoyEU7K50KPQkTCRJAnLhjxNFgpFIBgBsm6m\nous6Rx99NJqm0dXVhaZpzJkzh1QqRXt7e/rfYLz22mvMnz9/v/uv7UgS6llHEjcs8twyXk0mljLp\nTlqoivO3E5xqU+hThELJErw9v2YJZ21RsUehM2VS6lWctwOBQDDsZN1ouHjx4n3u8+abbw643TRN\n1q9fzymnnIJt2/vVf1y3CKrO4rmgJhMzbDoTBuMDGknTxoNEOO4MVDHJccoLsgMZJ5NBUJWJKBZt\nCZMyvzM7EWuDBIKRIeuUylB4+OGHmTdv3h7bV65cOeD23dl35ccYgLPWxLTI8ygE3QqtMYOgWyWh\nO9UBO3WLiXkeSgs/2cK5bKySmCv9DKUvFajv8ac0RXSKPQoJGyYJ5S8QjAg5qVQGm4Vs27aNhoYG\n/vKXv9DY2Mif/vQnTj311D777KvyY8qyAQnbcsr7pgyb7qRJScB54+1K2BgmjPO7mJynfOI1J6NZ\nJTHX+xmor/4KxgDcMnTrFiGXEzIsasoLBCNHTiqVwZzwX/va19Kfb7755j0Uyr6I6TZFLscwb9g2\nkgUoMoU+je6kiYxEoU+lPOASaxyyjNoWR9HsjJtOzq+e+vMCgWBkyTpHfaZYsmTfeXz6836zE0oc\nt5y09T63QkdcxwZUWcLC8fcKhZJ9/GdrV/pzR9ygzK85CT5HUSaBYCxy0CqV/SHak6fL25PWviWq\nMy6gIQOGaePRZDQRRZSVFPc45Au8ClHDxis799GliZ+4QDCS5OQTV1xcPCztlnqdGUhDxJmd+HtW\nzOuWo1B8sogiylb8Pb/k5m6d8qCTzh6clCwCgWDkyDqfymDFuDRNIz8/H1mWufvuu4elbxlnRXa+\nR8GynfDiPI+CG4haYEqSyDCc5eg2uIGyHn+KyHAgEIwsWadUrr766kG/k2WZI444gksvvZT8/Pxh\n6V8CEoaNy7LwqDKWBXGciLNZ40QUUbajStCpW+RpMrKWdT9vQY5jy/KQinkBUFiCWTA8VpVsJuue\nussvv5wPPviAc889l+LiYtra2lixYgVTp05l+vTpPPXUUzzyyCNcc801w9J/W8LEtCxCXmedQ6lX\noSNpURTIukslGIDd5yUiLYsg40Q6Sd17y5B2df3PHTAGlUrW+VR+/etfc/nll1NWVoaqqpSVlXHp\npZeyYsUKysvLWbx4MR9+OMQ3hf2g0KMQdKskLRsbp35KnlsWK+dzgIaITqFXJU845wWCUSPrnj7b\ntmltbe2zra2tDctyIrM8Hg+maWa8395aHN2GRThuoMgS+R4FBSjxu4RtPgeoDGo0xwwAYfoSCEaJ\nrHvyTjvtNH74wx8yf/58ioqKCIfD/O1vf+O0004D4D//+c8nSoM/VNa1xCn2yMhI+DWZcMwk5HZ0\nrliXkhvsiJmEemYpwvQlEIwOWadUzjrrLKqqqli1ahWbNm0iPz+fK664gkMPPRSAOXPmMGfOnIz3\nq/boDZ8q0RK3qO6JHpKFKSVnSJkWflfW/aQFgjFFVj6Bhx56aFqJjBRyT+qXpm4nCWG3aRNQRBbi\nXKLAo7AzYRAKiFmKQDBaZJ1SMQyD3/72t6xcuZKOjg4KCgo44YQTOOecc1DVvYvb2NjIQw89hCzL\nlJWVccUVVwy5394aKoVeFd20iSZMAn5V+FJyiLaEmZ5hCgSC0SHrlMovf/lL6urqWLRoESUlJbS2\ntrJixQpisRgXXXTRXo8tLy/n1ltvBeCBBx6gvr6e6urqT9R/S8xwBiaXMHvlGi4JduoW+cJkKRCM\nGlmnVN566y3uvPPOdErzCRMmMHnyZK699tp9KhVZ3jWYaJpGUVHRJ+q7I2nhVXe1kecVb725hKLI\n2CKDpEAwqmSdUtnfio29vP322zzzzDOMHz9+wGJOgxXpAihwy9RHdMDx2n+6vOCAZBmIbCpolWv9\nDNbXxrCT5ytuWIwX5i+BYFTJOqVyzDHHcMcdd7BgwYI+K+rnzp07pOOPPPJIjjzySB599FHeeecd\njjrqqD7fD1akC2BzRKfUt+uSDEfhKVGkK7N9BYNBPg7H+/hSjBGRRCAQDETWKZULLriAFStW8POf\n/5yOjg4KCws59thjWbBgwT6PNQwj7cz3+XzpGchQKfaqtMUMPEENsTIld5jUb3YiwooFgtEjK56+\ndevW9fm7dzZh23a6yuNHH33EjBkz9trOu+++yx/+8AckSaKsrIzZs2d/MkF6Ar2EQskt+rvlDykQ\nJjCBYLTICqXy4IMPDri9V6H0Kpf7779/r+30mr72l5aYQWXPW69w0gsEggNBUtUxmdE4K5TK8uXL\nR1uENL0XpDyUFZdGIBDkKpEuUvcNraz5wZTRWAT0CwQCgSBjCKUiEAgEgowhbDz90IFi4U/JORJ2\n3wJdgtxBiUaw33wFuye0f29IU6aNgESCA0Eold0xbTSEPyUXiesWmiyySucklon+0q8hHtvnrsp3\nhuajEIweYvQUHBTsTJpMCGoiq7QgJxkoUiypqChmv6W8ORAlJpSK4KDANm3cILJKC3KTIUaK5UKU\nmFAqPZSF3ER0i7KQe7RFEXxCykJuYrZMWUj4wnIVZVINdjw+2mJkPbmw9kWyDzSDo0AgEAgEPQiv\nJvDrX/9a9JUD/eytr+GQIRfazAUZh6vNkWx/pPsZyb4y3Y9QKgKBQCDIGEKpCAQCgSBjKLfccsst\noy1ENjBu3DjRVw70s7e+hkOGXGgzF2QcrjZHsv2R7mck+8pkP8JRLxAIBIKMIcxfAoFAIMgYQqkI\nBAKBIGMIpSIQCASCjCGUikAgEAgyxphM01JfX8+GDRuIRqP4/X6mTJnCIYccMqx9btmyhcbGRkpL\nS6mpqRnWvsYCo3EP95dEIpGW0+PxZGWbuSDj7tTX11NUVEQwGOSdd97B5XIxe/bsjPYxEH/60584\n9dRTh7WP4RwrOjo6KCgowLZtVq9ezdatWxk3bhxz585FUZSM9DHmor8ef/xxDMNg5syZ+Hw+4vE4\n77//PoqicPHFF2e0r9tuu43rr7+el156ibVr13L44Yfz8ccfU1RUxFe/+tWM9mVZFv/+97/ZsGED\nsVgMn8/H1KlTOeqoozL2Y+mld6AAeOedd9IPwNy5c5GkzCV0HOycPvzwQ0zTzOg93LJlC88++yzx\neBzbtpEkCa/Xy3nnnUdVVdV+tblu3TpWrFiB1+vF6/USj8eJx+OcffbZzJo1KyvazAUZ+/Pggw9i\n2zaaptHZ2UlhYSE+n4/Ozk4uv/zyA26/l5tuuin9e+4dJhsbG6msrGTJksym4B+psWLJkiXcfPPN\nPPbYY7hcLmbMmMHmzZupq6vju9/9bmY6sccYN9100yfafiDccsst6bZN00xvv+GGGzLe19KlS+0X\nXnjBrqurs7dv327X19fbL7zwgn3fffdlvK/e83rqqafshx56yF6zZo39zDPP2MuXL89oP4Od0yWX\nXDLg/gdyD2+88UY7HA732dbe3m7feOON+93mDTfcYCcSiT7b4vH4Ad3/TLeZCzL2Z/f7/N3vfjf9\nufd3mSl+//vf2/fff7+9bt269Lbbbrsto330MlJjxQ9/+MM+//fvPxOMOfNXdXU1Dz30ELNmzUq/\nRa1du5bJkydnvK+mpibuv/9+mpubMQwDl8up9aHresb7am1t5aqrruqzbfLkydx0000Z76uXjz/+\nOP3Gduihh5LpdbSDndNLL700LPfQHmDSPtC2oaJpGg0NDUydOjW9bcuWLWja/mdTznSbuSBjfyzL\nSn/+yle+kv58IPdqIM444wwMw+C1117jlVdeYd68eRltf3dGaqw48cQT+b//+z+KiopYunQp06dP\nZ8uWLVRXV2esjzFn/gLYtGkTGzduJBqNpk0qw6FUWltb058LCgpQVZVEIsGHH37IYYcdltG+Xnzx\nRdavX8/06dPx+XzEYrH032eeeWZG+7rooouorKxk69atLF26FL/fj2VZXHfdddxxxx0Z62dv5zRz\n5syM3sPGxkZ+9atfEY1GsSwLSZIIBAIsXLiQysrK/Wqzo6OD3/3ud2zZsgXLspBlmaqqKs4880wK\nCwuzos1ckLE/jY2NlJeXI8u74owMw+Ddd9/lyCOPPOD2B8I0TVauXMm2bdv42te+lvH2R3KsCIfD\nvPfee3R2dqafnUmTJmWs/TGpVA5Wurq6qKurSw+0NTU1tLS0jEhgQDKZpLGxMeN9rV+/nqamJvx+\nP16vl5qaGpqbm5kyZUpG+xEIBJlBKJWDhN1NArtz2223ceONN+ZkX08++SSdnZ0oikJXVxeLFy8m\nFAqlnY2ZJBwO8/zzz9PU1JR+u66oqOBLX/oSRUVF+9XmcDj/M91mLsgoyC3GnE/lYOXrX//6gG/v\nDQ0NOdtXXV1d2mfT0NDAPffcw4UXXpjRPnq5//77+epXv9pnplVbW8vy5cv32y/1yCOP8O1vf7uP\nySccDnPvvffywx/+MCvazAUZBbmFUCoHCeXl5Vx77bX4fL4+22+99dac7cuyLAzDQFVVqqqquOaa\na1i2bBlNTU0Z7QcglUoxceLEPtsqKipIpVIZ72s4jAOZbjMXZBRkJ8L8dZDQ0dFBMBhEVfu+J5im\nmfF1KiPVV21tLSUlJeTl5aW3WZbFqlWrOO644zLWD+xaW+F2u/F4PMTjcXRd5+yzz2bmzJn71eZw\nOP8z3WYuyJhprrzySq644gpmzJgx2qIAzsz/rrvuGtGU+sOJUCoCwW6kUilisRherxe32z3a4giG\ngWxTKgcbwvwlEOCkFHnllVf6rN6fMmUKn//85/F6vfvV5nA4/zPdZi7IeLDSe20ONoRSEQiA++67\nj+OPP57LL788vSZm7dq13HffffzP//zPfrU5HM7/TLeZCzIOF4Zh8Mtf/pJVq1YhSRJz587lggsu\nSJt1X3jhBV5++WUkSWLhwoX87Gc/Y+nSpZSWlg7a5gMPPICmaTQ3N7Nx40aqq6u58sorKS4uBuC8\n887jm9/8Ji+//DKWZbFs2TLOO++8dLupVIpnn32Wf/3rX8RiMSorK7nhhhvQNI0NGzbwi1/8gqam\nJkpKSrjooouYPn36iFyrT8LBpyYFgv2gu7ubuXPnEggEkGWZQCDA0UcfTTQa3e82h8P5n+k2c0HG\n4WLFihXU1tZy1113ceedd1JXV8dvf/tbAN59911efvllbrrpJpYuXcoHH3ww5HbffPNNFixYwM9/\n/nOqqqpYunRpn+/ffvttbr/9du655549jn3yySfZtGkTt912G48++ihf+9rXkCSJcDjMHXfcwZe/\n/GUee+wxLrzwQu6++24ikciBXYRhQMxUBALgC1/4AkuWLKGyshKv10ssFqOpqYlTTjllv9s8//zz\n+clPfrKH8/+8887LmjZzQcbh4s033+SSSy4hGAwCsGDBAh5++GEWLlzIqlWrmD9/PuXl5QCce+65\nvPnmm0Nq9/DDD+fTn/404FyLiy66iHA4nA6xPvvss9MJWXfHtm1ef/11br/9dvLz8wHSqW7eeOMN\nDjvsMA499FAAZs6cSXV1NWvWrOGEE044gKuQeYRSEaR5/fXXee2118bkWoJ58+ZxzDHHsH379rRP\nZfz48QcUzTZjxgxmzJiRUed/ptvMBRkzjSRJ2LZNR0dH2iwFUFJSQkdHB+BEOO5eSmH3/fbF7n4j\nj8dDIBDoo1QGS1UTiUTQdX1A81prayurVq3inXfeSW8zTTMrgw2EUhkjDNUpmMnU9bmEZVmsXr06\no6UDhsP5n+k2c0HG4UCSJAoLC2lra6OiogJwBu6CggIA8vPzCYfD6f3b2tqG3HZ7e3v6cyKRoLu7\nu48iGewZCwaDuFwumpub9wi9Li4u5sQTT+Syyy4bshyjhVAqOUJ7ezuPPfYYH330EbZtc9xxx3H6\n6afzs5/9jIaGBiRJYtasWVx66aXpRYlXXnklp5xyCm+++Sbbtm3jF7/4BS+++CKvvvoqXV1dFBcX\nc9555zFnzhy2bt3Kww8/jGVZfP3rX0dRFB577LFRPuuRY/ny5VRWVjJv3rx0jZa1a9eyfPlyrr76\n6v1qczic/5luMxdkzDS9qyiOPfZYVqxYkc7Qu2LFirQp6dhjj+XBBx/k+OOPp7i4mBUrVgy5/TVr\n1vDxxx9zyCGH8OyzzzJ16tQhJdKUJIn58+fzxBNP8K1vfYu8vDxqa2uprq7m+OOP5wc/+AHvvfce\nM2fOxDAMamtrKSsry0iSzkwilEoOYFkWP/nJT5g5cyZXX301sixTV1cHOPbZ6dOnE4vFuPvuu3nu\nuef4xje+kT72n//8J9dddx3BYBBZlikrK+PWW28lPz+fVatWsWzZMpYtW0Z5eTmLFi3ib3/7W8YL\nEOUCw1E6oNf53ztD7HX+v/zyy1nTZi7ImGl6ZwoLFiwgHo9z7bXXAnDMMcdwzjnnAE4phy9+8Yss\nWbIEWZb58pe/zMqVK4eUvn/evHk899xzbNiwgerq6j1+V3vjwgsv5JlnnuG6664jmUxSVVXF9ddf\nT1FREddeey2//OUvue+++1AUhUMOOYRFixbtxxUYXsTixxxgw4YN3HnnnfzsZz/bqwlr9erV/OY3\nv0mnn7/yyis599xzmT9//qDH/Pd//zcLFy7kyCOP5PXXXx+zSmWwNPvTpk3jrLPO2q8233zzTV55\n5ZU9nP+f+9znOP7447OizVyQMRvYunUr11xzDU899dRen8EHHniAoqKirAtKGEnETCUHaG9vp7i4\neI8fc2dnZ9oklkgksCyLQCDQZ5/+i83+/ve/89JLL6XrNyQSiawMSxxpzjzzTObPn09dXR319fWU\nlpayYMGCA0rlPxzO/0y3mQsyjhb//ve/Ofzww0kkEjz11FMcccQRB+VixUwjlEoOUFRURFtb2x7O\n9meeeQZZlrnnnnvw+XysXr2aRx99tM+xuzsF29raeOihh7j55pvToYr//d//nbYxj1UnPeyqEb5t\n2zY2btxIMBjkj3/84wHVCB8O5380GsXv91NRUcE777zD+vXrKS0tZe7cuft1/3JBxtHir3/9Kw88\n8ACKojBt2jQuvfRSAL73ve/1cdz3pvfPRlPUaCCUSg5QU1NDQUEBTz/9NOeeey6yLFNfX08ikcDn\n8+HxeAiHw7z44ot7bSeRSCBJEsFgEMuy+Pvf/05jY2P6+7y8PNrb29OZgccShmEAztvpzTffjCzL\nnHLKKQdUH2Y4nP933XUXN998M08//TTRaJSjjjqKjz76iDVr1rB48eKDUsbR4gc/+MGA2+++++5B\njxnOksO5gpjL5QCyLPP973+f7du3s3jxYq644gpWrVrFggULqK+v5+KLL+aOO+7g6KOP7nNc/7fC\niooKzjjjDK6//nouu+wyGhsb04u0wFlfUFFRwWWXXZZ+Kxsr9K8R3suB1AhvbW3lrLPOorq6mrKy\nMiZPnsyZZ575icJTB+Pjjz9m0aJFHHrooZx//vm0tLQctDIKcgvhqBcIGJ4a4YM5/6dPn86ZZ565\nX21edNFFVFZWsnXrVpYuXYrf78eyLK677rp0gEY2yFhVVUVTU1NGZBTkFkKpCATDSFdXF3V1dUSj\nUXw+HzU1NbS0tBxQAEB/kskkjY2N+93m+vXraWpqwu/34/V6qampobm5ecDqnkNly5Yt6ezEvTI2\nNDSkfXmCgxdh/hIIhoneaLzZs2dz7LHHcuihhxIIBHjmmWcOqM3+/zRN2+82n3zySV599VVqa2t5\n4403qKmpIRQK8fTTT++3jE8++SQvvPACL774Ij/5yU/o6urC7XYf0HkLcoex5Y0VCEaQr3/96wO+\n7Tc0NGRNm3V1del1SQ0NDdxzzz1ceOGF+y3fcLUpyB2EUhEIhony8nKuvfbadNqcXm699dasadOy\nrHS0X1VVFddccw3Lli2jqalpv2UcjjYFuYPwqQgEw0RHRwfBYHCP8GzTNPd7DUim26ytraWkpIS8\nvLz0NsuyWLVqFccdd9x+yTgcbQpyB6FUBAKBQJAxhKNeIBAIBBlDKBWBQCAQZAyhVAQCgUCQMYRS\nEQj2wkcffcR3vvOd0RZDIMgZhKNeIBDsN0uWLOH444/npJNOGm1RBFmCmKkIBINgWdZoi7BPhlPG\nXDh/QfYhZiqCMcWVV17J5z//eVauXMnOnTs56qijWLRoEaqqsn79epYtW8app57KSy+9xKxZszjp\npJNYtmwZDz74IOAUTOstjGbbNscddxzf/OY3AXjttdf4/e9/T2dnJzU1NVx22WUUFxfvIUNrayvf\n+ta3WLRoEc899xwAZ5xxBv/1X/8FOPU5XnjhBV599VVisRgzZ85k0aJF+P3+9LGXX345v/nNbxg3\nbhy33HLLHn2sXr2a5557jubmZvLy8rjkkkuYPXs2r7/+Oi+88ALhcJhQKMRZZ53FySefDDDg+V98\n8cUsW7aM2tpaLMti6tSpXHbZZRQWFvLss8/yu9/9DlVVURSFE088MX0tBGMYWyAYQyxevNj+3ve+\nZ7e3t9vd3d32DTfcYD/77LO2bdv2Bx98YJ9//vn2U089Zeu6bqdSKfuDDz6w/9//+3+2bdu2aZr2\nNddcYz/xxBN2Mpm0dV23P/roI9u2bfvf//63ffXVV9tbt261TdO0V6xYYd9www0DytDS0mIvXLjQ\nvu++++xkMmk3NDTYl1xyib127Vrbtm37pZdesq+//no7HA7buq7bDz30kH3vvff2Ofb++++3k8mk\nnUql9mh/48aN9je+8Y10e+Fw2N66datt27b9n//8x25ubrZt27bXr19vX3DBBfamTZsGPf9IJGL/\n61//slOplB2Px+177rnH/ulPf5ru65ZbbrFfffXVA7ongoMLYf4SjDlOPfVUCgsL8fv9nHPOOfzj\nH/9IfyfLMgsXLkRVVTRN63NcbW0tO3fu5IILLsDlcqGqKp/61KcAp0rgl770JSZMmIAsy3zpS19i\n8+bNe61Lcu655+JyuaisrGT+/Pm8+eabALzyyiucf/756RT8CxYs4K233upjjlq4cCEul2sPGcGZ\nMZ100knMmDEDcFL5T5gwAYDDDjuMcePGATBt2jRmzZrFhx9+OOj5BwIB5syZg6ZpeDwezj777D77\nCwT9Ebm/BGOOoqKi9OeSkhI6OjrSf4dCoUGrXra3t1NcXDxgnfLW1lYef/xxnnzyyT7bw+HwgCaw\ngeTorcLZ1tbGXXfd1afImqqqdHZ2DnjsQHIefvjhA363Zs0afvOb37B9+3Zs2yaVSlFVVZX+vv/5\np1IpHn/8cd577z2i0Si2bZNIJNIldAWC/gilIhhztLe3pz+3trZSUFAwpOOKiopoa2vDsqw9FEtx\ncTHnnHPOJyon29bWlp5BtLW1peUoLi7miiuuGLD2yO7FxPYmZ3Nz8x7bDcPgnnvu4aqrruLII49E\nlmXuvPNO7L24VX//+9+zfft2fvzjHxMKhdi8eTPf//73hVIRDIowfwnGHH/+858Jh8N0d3fz/PPP\nc+yxxw7puJqaGgoKCnj66adJJpPous7HH38MwMknn8zzzz+fzsQbi8V466239treihUrSKVSNDY2\n8vrrr6eTLZ588sk888wzadNZV1cXb7/99pDP76STTuJvf/sb69atw7ZtwuEw27ZtwzAMDMMgGAwi\nyzJr1qzh/fff32tb8Xgcl8uF1+ulu7s7HVjQS15enigTLOiDmKkIxhzHHXccP/rRj+jo6OCoo47i\nnHPOGdJxsizz/e9/n0cffZTFixcjSRLz5s3jU5/6FHPmzCGZTHLvvffS1taGz+dj1qxZzJ07d9D2\npk+fzlVXXQXAmWeeycyZMwE47bTTANIy5uXlceyxx3LkkUcOSc6amhoWL17ME088QUtLC/n5+Vxy\nySVMmDCBiy++mHvuuQfDMDjiiCP22ebpp5/O0qVLueSSSygsLOSMM87oo+BOO+00li9fzl/+8hdO\nOOEELrrooiHJKDh4ESHFgjHFlVdeyRVXXJF2Yo8GvWHBzzzzzID+GYEglxG/aIFAIBBkDKFUBGMK\n4VwWCIYXYf4SCAQCQcYQMxWBQCAQZAyhVAQCgUCQMYRSEQgEAkHGEEpFIBAIBBlDKBWBQCAQZAyh\nVAQCgUCQMf4/SMBmSHXfd8YAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from pandas.tools.plotting import scatter_matrix\n", "\n", "column_list = ['carat', 'price per carat', 'log_price']\n", "scatter_matrix(data[column_list]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Final thoughts:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are lots and lots and lots of plotting libraries out there. \n", "- [Matplotlib](http://matplotlib.org/) is the standard (and most full-featured), but it's built to look and work like Matlab, which is not known for the prettiness of its plots. \n", "- There is an unofficial port of the excellent [ggplot2](http://ggplot2.org/) library from R to [Python](http://ggplot.yhathq.com/). It lacks some features, but does follow ggplot's unique \"grammar of graphics\" approach.\n", "- [Seaborn](http://stanford.edu/~mwaskom/software/seaborn/) is what the cool kids seem to be using right now. ggplot-quality results, but with a more Python-y syntax. Focus on good-looking defaults relative to Matplotlib with less typing and swap-in stylesheets to give plots a consistent look and feel.\n", "- [Bokeh](http://bokeh.pydata.org/en/latest/) has a focus on web output and large or streaming datasets.\n", "- [plot.ly](https://plot.ly) has a focus on data sharing and collaboration. May not be best for quick and dirty data exploration, but nice for showing to colleagues.\n", "\n", "## Very important:\n", "Plotting is lots of fun to play around with, but almost no plot is going to be of publication quality without some tweaking. Once you pick a package, you will want to spend time learning how to get labels, spacing, tick marks, etc. right. All of the packages above are very powerful, but inevitably, you will want to do something that seems simple and turns out to be hard.\n", "\n", "Why not just take the plot that's easy to make and pretty it up in Adobe Illustrator? **Any plot that winds up in a paper will be revised many times in the course of revision and peer review. Learn to let the program do the hard work.** You want code that will get you 90 - 95% of the way to publication quality.\n", "\n", "Thankfully, it's very, very easy to learn how to do this. Because plotting routines present such nice visual feedback, there are lots and lots of examples on line with code that will show you how to make gorgeous plots. Here again, documentation and StackOverflow are your friends!" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# Case Study 2: Time allocation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's practice some of what we learned by analyzing data from a very simple survey.\n", "\n", "I asked members of CCN and Neurobiology to answer the following question:\n", "![survey image](qualtrics.png)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": true }, "outputs": [], "source": [ "dat = pd.read_csv('data/time_alloc.csv')" ] }, { "cell_type": "code", "execution_count": 41, "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", "
Start DateEnd DateProgressDuration (in seconds)FinishedRecorded DateResponse IDRecipient Last NameRecipient First NameRecipient EmailExternal ReferenceLocationLatitude - Location LatitudeLocationLongitude - Location LongitudeDistributionChannel - Distribution ChannelQ1_1 - Experimental designQ1_2 - PilotingQ1_3 - Data collectionQ1_4 - Data analysisQ1_5 - Writing resultsQ1_6 - Review process
08/30/16 10:418/30/16 10:4310082True8/30/16 10:43R_1kO0775KprWgA91NaNNaNNaNNaN35.995407-78.901901anonymous5540301010
18/30/16 8:428/30/16 8:4410099True8/30/16 8:44R_2P4C0IepjotM86vNaNNaNNaNNaN52.51669313.399994anonymous1242438166
28/30/16 4:478/30/16 4:51100252True8/30/16 4:51R_6gGZesX5RTFq0MhNaNNaNNaNNaN52.51669313.399994anonymous1110759103
38/29/16 19:238/29/16 19:26100161True8/29/16 19:26R_3iCkovXNWsaIlmcNaNNaNNaNNaN35.946594-78.797699anonymous201020202010
48/29/16 18:138/29/16 18:15100105True8/29/16 18:15R_1I5jOg0c96ZUMsHNaNNaNNaNNaN35.995407-78.901901anonymous40251010105
\n", "
" ], "text/plain": [ " Start Date End Date Progress Duration (in seconds) Finished \\\n", "0 8/30/16 10:41 8/30/16 10:43 100 82 True \n", "1 8/30/16 8:42 8/30/16 8:44 100 99 True \n", "2 8/30/16 4:47 8/30/16 4:51 100 252 True \n", "3 8/29/16 19:23 8/29/16 19:26 100 161 True \n", "4 8/29/16 18:13 8/29/16 18:15 100 105 True \n", "\n", " Recorded Date Response ID Recipient Last Name \\\n", "0 8/30/16 10:43 R_1kO0775KprWgA91 NaN \n", "1 8/30/16 8:44 R_2P4C0IepjotM86v NaN \n", "2 8/30/16 4:51 R_6gGZesX5RTFq0Mh NaN \n", "3 8/29/16 19:26 R_3iCkovXNWsaIlmc NaN \n", "4 8/29/16 18:15 R_1I5jOg0c96ZUMsH NaN \n", "\n", " Recipient First Name Recipient Email External Reference \\\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", "\n", " LocationLatitude - Location Latitude \\\n", "0 35.995407 \n", "1 52.516693 \n", "2 52.516693 \n", "3 35.946594 \n", "4 35.995407 \n", "\n", " LocationLongitude - Location Longitude \\\n", "0 -78.901901 \n", "1 13.399994 \n", "2 13.399994 \n", "3 -78.797699 \n", "4 -78.901901 \n", "\n", " DistributionChannel - Distribution Channel Q1_1 - Experimental design \\\n", "0 anonymous 5 \n", "1 anonymous 12 \n", "2 anonymous 11 \n", "3 anonymous 20 \n", "4 anonymous 40 \n", "\n", " Q1_2 - Piloting Q1_3 - Data collection Q1_4 - Data analysis \\\n", "0 5 40 30 \n", "1 4 24 38 \n", "2 10 7 59 \n", "3 10 20 20 \n", "4 25 10 10 \n", "\n", " Q1_5 - Writing results Q1_6 - Review process \n", "0 10 10 \n", "1 16 6 \n", "2 10 3 \n", "3 20 10 \n", "4 10 5 " ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dat.head()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Index(['Start Date', 'End Date', 'Progress', 'Duration (in seconds)',\n", " 'Finished', 'Recorded Date', 'Response ID', 'Recipient Last Name',\n", " 'Recipient First Name', 'Recipient Email', 'External Reference',\n", " 'LocationLatitude - Location Latitude',\n", " 'LocationLongitude - Location Longitude',\n", " 'DistributionChannel - Distribution Channel',\n", " 'Q1_1 - Experimental design', 'Q1_2 - Piloting',\n", " 'Q1_3 - Data collection', 'Q1_4 - Data analysis',\n", " 'Q1_5 - Writing results', 'Q1_6 - Review process'],\n", " dtype='object')" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dat.columns" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(96, 20)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dat.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's just pull out the data we care about, the columns that start with ```'Q1_'```:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['Q1_1 - Experimental design', 'Q1_2 - Piloting', 'Q1_3 - Data collection', 'Q1_4 - Data analysis', 'Q1_5 - Writing results', 'Q1_6 - Review process']\n" ] } ], "source": [ "cols_to_extract = [c for c in dat.columns if 'Q1_' in c]\n", "print(cols_to_extract)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we want to shorten the column names to just the descriptive part:" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['Experimental design', 'Piloting', 'Data collection', 'Data analysis', 'Writing results', 'Review process']\n" ] } ], "source": [ "col_names = [n.split(' - ')[-1] for n in cols_to_extract]\n", "print(col_names)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, make a reduced dataset in which we drop the first row and get the columns we want. Set the column name to the \n", "description we extracted:" ] }, { "cell_type": "code", "execution_count": 46, "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", "
Experimental designPilotingData collectionData analysisWriting resultsReview process
05540301010
11242438166
21110759103
3201020202010
440251010105
\n", "
" ], "text/plain": [ " Experimental design Piloting Data collection Data analysis \\\n", "0 5 5 40 30 \n", "1 12 4 24 38 \n", "2 11 10 7 59 \n", "3 20 10 20 20 \n", "4 40 25 10 10 \n", "\n", " Writing results Review process \n", "0 10 10 \n", "1 16 6 \n", "2 10 3 \n", "3 20 10 \n", "4 10 5 " ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dat_red = dat[cols_to_extract]\n", "dat_red.columns = col_names\n", "dat_red.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we can figure out the average percent time allocated to each aspect of a project:" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Experimental design 14.500000\n", "Piloting 10.729167\n", "Data collection 25.239583\n", "Data analysis 26.135417\n", "Writing results 14.197917\n", "Review process 9.197917\n", "dtype: float64" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dat_red.mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And we can visualize this with a box plot:" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nMcbs27ev3D5f2ePK+uabb8yQIUPMuXPnjDHGZGZmGmOMmTRpklm3bp0xxpj333/fPPTQQ8aY8vt4\n6X5WWFh4BDzqAAANb0lEQVRo7rrrLpOenm6MMWbTpk0mPj7eGGPMuHHjzPbt240xxuTn55u8vLyL\n6iz795w5c8ySJUuMMcb861//MqNGjXKtt7731/p6D4z5Zbvn5eWZO+64w/V+REZGml27dhljjJk/\nf7557bXXjDE1a1vi4+Nd2/69994z8+bNM8YYc+ONN5qCggJjzC9tRtnn3XHHHebMmTPl/r8uDR48\n2Jw6dcqsWrXKrFq1yixatMjs3r3bfP7552b8+PHGmJLt2qtXL1dbZswv709V+1Nl+82XX35pRo8e\nbQoKCkx2draJjo4u13aXuvA48vLLL5sNGzYYY0reg+joaJObm2vmzJljNm7caIwpadvy8/PLtWXG\nGLN8+XKzePFi13JL25+BAwe63u/K2nSrlLa/RUVFJi4uznzyySfGGGP27Nljpk+fbowxxul0mkmT\nJpkDBw6YI0eOmLvvvtv1/GHDhpnTp0+Xe23vvfeea7/Mz883Y8aMMSdPnjSbNm0y8+fPN8YYM3bs\nWHPXXXe5XvuePXsuqq2yY/zdd99tZs2a5XpcZW3TlClTzFtvveV6DVlZWZd87Kzos+Euj/RY/epX\nv1JiYuJF9w8YMECbN2/WrFmzXElfKplwdOjQoZKkkSNHKi4uTjk5OTp06JAeffRRV+9OUVGR6zm3\n3357pesfOHCgJKlLly4KDw9XRESEJOm3v/2tUlJSdPr0aR07dkx/+MMfZIxRUVGRevfu7Xr+bbfd\nJqmk23n79u0VruPUqVOaMmWKfv75ZxUVFaljx45VbpN///vfrlMNN998s1q2bClJ2rt3r44cOaKx\nY8fKGKP8/HyFhYVp4MCBOnnypJ577jndfPPNuvHGG8st79tvv1WnTp3061//WpI0fPhwrV692vX/\nt9xyi/z9/RUSEqLw8HCdPXtWbdu2rbLG2srPz5fdbpck9e3bV3feeWelj/38889d3y6vvPJKdejQ\nQd9//32167j11lslSVdddZXS0tIkSQcPHnTtD+Hh4erfv39tXoZHlO7jhYWFmj17tpKSkuTn56cf\nfvihwsfX5HF79+7V7bffrlatWkmSa5/74osv9Oqrr0qSRo0apZdeeqnSur777jt98803rsmAnU6n\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10, 5))\n", "sns.boxplot(data=dat_red)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0, 100)" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n8v777xvPu1PO4OBgY1kvv/wyCxcuJDIyEicnJ1auXGnahq0FluqD/v37s2XLFkaMGEGbNm0qOLdX\n9b7MnDmzRrolIiKC1atXM2LECMAweL322msUFRUhhCAmJgYXF5cK16xatcr4EfnII4+YRJ9WR4cO\nHcjLyyMyMtJ4LCgoCKVSSbNmzaq8rqxtqnueqqJr164MHjyYyMhIvL29CQoKuqsdKmPGjBksX76c\niIgIhBA88MADrFu3jr1797Jz504UCgU+Pj689NJLKBQKZs6cSXR0NH5+frRt27bSMseNG8cLL7yA\nr68vsbGx1er0+lL+eQoODiYoKIjdu3cTGRnJtWvXeOqppwCDsfrPf/4TT09P2rdvT3FxMX5+fnh7\ne99V5tixY0lOTja6eHh6ehqX6sLCwjh+/DgBAQH4+/uTn59fpWFV1Rh/5ztQlW5auHAhixcv5ptv\nvkGhULBkyRK6d+9e47FTq9Xe892oVVuLRrBeUtmuMYl7U1JSYpx2Xbp0KYGBgWbbZdLQKWuLvLw8\nxo0bxxdffIGXl5e1xZKQMBv79u3j0KFDVjVQGypl+kCpVDJhwgTeeuutGhllEuahqY3xDcrHqiqs\nPdPSWPnqq6/Yvn07Go2GTp06MX78eGuLZDWmTZtGYWEhWq2WGTNmSEaVRJPmrbfe4scff2T9+vXW\nFqVBsnjxYq5du2acmZSMKuvS1Mb4RjFjJSEhISEhISHRGJByBUpISEhISEhImAjJsJKQkJCQkJCQ\nMBGSYSUhISEhISEhYSIkw0pCQkJCQkJCwkRIhpWEhISEhISEhImQDCsJCQkJCQkJCRPx/wECFso3\npqnnvwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10, 5))\n", "sns.violinplot(data=dat_red)\n", "plt.ylim([0, 100])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And we might want to know how these covary (bearing in mind that the values have to sum to 100):" ] }, { "cell_type": "code", "execution_count": 51, "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", "
Experimental designPilotingData collectionData analysisWriting resultsReview process
Experimental design1.000000-0.057772-0.394450-0.418189-0.149596-0.007290
Piloting-0.0577721.000000-0.116101-0.062659-0.332602-0.215466
Data collection-0.394450-0.1161011.000000-0.181762-0.395939-0.344578
Data analysis-0.418189-0.062659-0.1817621.000000-0.146576-0.340260
Writing results-0.149596-0.332602-0.395939-0.1465761.0000000.375177
Review process-0.007290-0.215466-0.344578-0.3402600.3751771.000000
\n", "
" ], "text/plain": [ " Experimental design Piloting Data collection \\\n", "Experimental design 1.000000 -0.057772 -0.394450 \n", "Piloting -0.057772 1.000000 -0.116101 \n", "Data collection -0.394450 -0.116101 1.000000 \n", "Data analysis -0.418189 -0.062659 -0.181762 \n", "Writing results -0.149596 -0.332602 -0.395939 \n", "Review process -0.007290 -0.215466 -0.344578 \n", "\n", " Data analysis Writing results Review process \n", "Experimental design -0.418189 -0.149596 -0.007290 \n", "Piloting -0.062659 -0.332602 -0.215466 \n", "Data collection -0.181762 -0.395939 -0.344578 \n", "Data analysis 1.000000 -0.146576 -0.340260 \n", "Writing results -0.146576 1.000000 0.375177 \n", "Review process -0.340260 0.375177 1.000000 " ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dat_red.corr()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Plot.ly\n", "We can also use the `plotly` library to get web-ready interactive graphics." ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.12.9\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import plotly\n", "print(plotly.__version__) # version 1.9.4 required\n", "plotly.offline.init_notebook_mode() # run at the start of every notebook\n", "import plotly.plotly as py\n", "import cufflinks as cf\n", "cf.set_config_file(offline=True, world_readable=True, theme='ggplot')" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dat_red.iplot(kind='box')" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dat_red.T.iplot(mode='marker')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [Root]", "language": "python", "name": "Python [Root]" }, "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.5.2" } }, "nbformat": 4, "nbformat_minor": 0 }