{ "metadata": { "name": "", "signature": "sha256:807cc8e73cc9d0b828d2705e90968cf10cf8b5fe8db24a9ba477bcaab99ca0cf" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Pandas in a Hurry\\*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\\*A Python version of Derren Barken's *R in a Hurry*.\n", "\n", "Prepared and presented by Jaime Fernandez ([`jaime.frio@gmail.com`](mailto:jaime.frio@gmail.com)) at the *2015 San Diego Data Science Fun Conference*.\n", "\n", "The latest version of this notebook and accompanying data files can be found at [`https://github.com/jaimefrio/data_science_fun_conference_2015`](https://github.com/jaimefrio/data_science_fun_conference_2015)" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Table of Contents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [The Fastest Pandas Tutorial of the West](#The-Fastest-Pandas-Tutorial-of-the-West)\n", " - [Pandas `Series` Objects](#Pandas-Series-Objects)\n", " - [Pandas `DataFrame` Objects](#Pandas-DataFrame-Objects)\n", "* [Pandas by Example: the STAR Dataset](#Pandas-by-Example:-The-STAR-Dataset)\n", " - [How many students took each test by grade?](#How-many-students-took-each-test-by-grade?)\n", " - [How do English scores vary by grade?](#How-do-English-scores-vary-by-grade?)\n", " - [What's the effect of income on 7th grade math scores?](#What's-the-effect-of-income-on-7th-grade-math-scores?)\n", " - [What's the effect of spending on 7th grade math scores?](#What's-the-effect-of-spending-on-7th-grade-math-scores?)\n", " - [What's the effect of spending and income on 7th grade math scores?](#What's-the-effect-of-spending-and-income-on-7th-grade-math-scores?)\n", "* [Placeholder](#Placeholder-second-hour)\n", " - [Project 1. Run the Pandas code above on your own](#Project-1.-Run-the-Pandas-code-above-on-your-own)\n", " - [Project 2. Run the data munging code](#Project-2.-Run-the-data-munging-code)\n", " - [Project 3. Analyze subgroup data like gender, ethnicity...](#Project-3.-Analyze-subgroup-data-like-gender,-ethnicity...)\n", " - [Project 4. Analyze data by geographical latitude](#Project-4.-Analyze-data-by-geographical-latitude)\n", " - [Project 5. Analyze data at the district or school level](#Project-5.-Analyze-data-at-the-district-or-school-level)\n", " - [Project 6. Analyze data longitudinally](#Project-6.-Analyze-data-longitudinally)\n", "* [Appendix. When You Munge Upon a STAR](#Appendix.-When-You-Munge-Upon-a-STAR)\n", " " ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "The Fastest Pandas Tutorial of the West" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pandas ([read the docs!](http://pandas.pydata.org/index.html)) is the **Python Data Analysis Library**. It provides\n", "\n", "> \"high-performance, easy-to-use data structures and data analysis tools for the Python programming language.\"\n", "\n", "Before we get to use it, we need to import it." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import pandas as pd" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And since we are at it let's import some more modules that we will be needing." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "import statsmodels.api as sm\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pandas has two main objects, the `Series` and the `Dataframe`." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Pandas `Series` Objects" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A `Series` ([read the docs!](http://pandas.pydata.org/pandas-docs/dev/generated/pandas.Series.html)) is a glorified Numpy array:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = pd.Series(np.random.randn(5), name='random numbers')\n", "a" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "0 0.624188\n", "1 0.818221\n", "2 2.075770\n", "3 -0.981804\n", "4 0.368029\n", "Name: random numbers, dtype: float64" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "# Series can be sliced\n", "a[-3:]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "2 2.075770\n", "3 -0.981804\n", "4 0.368029\n", "Name: random numbers, dtype: float64" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "# Series can be indexed by position\n", "a[3]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "-0.98180410052244071" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "# Series can be indexed with arrays of indices\n", "a[[1, 3, 2]]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "1 0.818221\n", "3 -0.981804\n", "2 2.075770\n", "Name: random numbers, dtype: float64" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "# Series can be indexed with boolean arrays\n", "a[[True, False, False, True, True]]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "0 0.624188\n", "3 -0.981804\n", "4 0.368029\n", "Name: random numbers, dtype: float64" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "# Series can have labels as indices\n", "a.index = list('abcde') # list('abcde') --> ['a', 'b', 'c', 'd', 'e']\n", "a" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "a 0.624188\n", "b 0.818221\n", "c 2.075770\n", "d -0.981804\n", "e 0.368029\n", "Name: random numbers, dtype: float64" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "# Indexing with numbers (and slicing) still works\n", "a[2]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "2.0757697852523171" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "# But we can also index with labels...\n", "a['c']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "2.0757697852523171" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "# ...and arrays of labels\n", "a[['c', 'b', 'a']]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "c 2.075770\n", "b 0.818221\n", "a 0.624188\n", "Name: random numbers, dtype: float64" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "# Operations on Series align on the index (i)\n", "a[-3:]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 12, "text": [ "c 2.075770\n", "d -0.981804\n", "e 0.368029\n", "Name: random numbers, dtype: float64" ] } ], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "# Operations on Series align on the index (ii)\n", "a[:3]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ "a 0.624188\n", "b 0.818221\n", "c 2.075770\n", "Name: random numbers, dtype: float64" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "# Operations on Series align on the index (iii)\n", "a[-3:] + a[:3]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "a NaN\n", "b NaN\n", "c 4.15154\n", "d NaN\n", "e NaN\n", "Name: random numbers, dtype: float64" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "# Compare to the same result for the underlying numpy array\n", "a.values[-3:] + a.values[:3]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "array([ 2.69995774, -0.16358345, 2.44379836])" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "# A Series makes a great look-up table\n", "gp_lut = pd.Series(data=[4, 3, 2, 1, 0], index=list('ABCDF'))\n", "gp_lut" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "A 4\n", "B 3\n", "C 2\n", "D 1\n", "F 0\n", "dtype: int64" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "my_grades = ['A', 'B', 'B', 'A', 'A']\n", "my_points = gp_lut[my_grades]\n", "my_points" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "A 4\n", "B 3\n", "B 3\n", "A 4\n", "A 4\n", "dtype: int64" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "# Series have lots of numerical evaluation methods\n", "my_gpa = my_points.mean()\n", "my_gpa" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "3.6000000000000001" ] } ], "prompt_number": 18 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Pandas `DataFrame` Objects" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A `DataFrame` ([read the docs!](http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.html)) is a two-dimensional table of heteregenous data. It is conceptually very similar to a dictionary of `Series` objects with a common index." ] }, { "cell_type": "code", "collapsed": false, "input": [ "students = pd.DataFrame({'name' : ['Peter', 'Paul', 'Mary',\n", " 'Peter', 'Paul', 'Mary'],\n", " 'subject' : ['English', 'English', 'English',\n", " 'Math', 'Math', 'Math'],\n", " 'grade' : [85.0, 76.0, 92.0, 77.0, 68.0, 87.0]})\n", "students" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
gradenamesubject
0 85 Peter English
1 76 Paul English
2 92 Mary English
3 77 Peter Math
4 68 Paul Math
5 87 Mary Math
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ " grade name subject\n", "0 85 Peter English\n", "1 76 Paul English\n", "2 92 Mary English\n", "3 77 Peter Math\n", "4 68 Paul Math\n", "5 87 Mary Math" ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "# We can get the column names\n", "students.columns" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ "Index(['grade', 'name', 'subject'], dtype='object')" ] } ], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "# We can get a single Series indexing by column name...\n", "students['name']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ "0 Peter\n", "1 Paul\n", "2 Mary\n", "3 Peter\n", "4 Paul\n", "5 Mary\n", "Name: name, dtype: object" ] } ], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "# ...or as an attribute\n", "students.name" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 22, "text": [ "0 Peter\n", "1 Paul\n", "2 Mary\n", "3 Peter\n", "4 Paul\n", "5 Mary\n", "Name: name, dtype: object" ] } ], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "# We can get a subset of columns indexing with an array of labels\n", "students[['subject', 'grade']]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
subjectgrade
0 English 85
1 English 76
2 English 92
3 Math 77
4 Math 68
5 Math 87
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 23, "text": [ " subject grade\n", "0 English 85\n", "1 English 76\n", "2 English 92\n", "3 Math 77\n", "4 Math 68\n", "5 Math 87" ] } ], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "# To get a subset of rows, slicing and indexing still work\n", "students[-3:]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
gradenamesubject
3 77 Peter Math
4 68 Paul Math
5 87 Mary Math
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ " grade name subject\n", "3 77 Peter Math\n", "4 68 Paul Math\n", "5 87 Mary Math" ] } ], "prompt_number": 24 }, { "cell_type": "code", "collapsed": false, "input": [ "# But we can give boolean indexing an interesting twist\n", "students[students.name == 'Mary']" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
gradenamesubject
2 92 Mary English
5 87 Mary Math
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 25, "text": [ " grade name subject\n", "2 92 Mary English\n", "5 87 Mary Math" ] } ], "prompt_number": 25 }, { "cell_type": "markdown", "metadata": {}, "source": [ "But enough of pandas in the void, lets look at our dataset." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Pandas by Example: The STAR Dataset" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "STAR is California's Standarized Testing and Reporting Program. You can get more information from the [STAR website](http://star.cde.ca.gov/) or from [Wikipedia](http://en.wikipedia.org/wiki/California_Standardized_Testing_and_Reporting_%28STAR%29_Program).\n", "\n", "We are specifically going to look at the 2013 data. You can download the raw data for this tutorial from here:\n", "\n", "[`http://www3.cde.ca.gov/starresearchfiles/2013/p3/ca2013_1_csv_v3.zip`](http://www3.cde.ca.gov/starresearchfiles/2013/p3/ca2013_1_csv_v3.zip)\n", "\n", "Getting that data to a usable state, augmenting it with additional information, like income or sprending per student by county, is far from trivial. If we were to do that now, it would consume the whole tutorial. So we have done the ugly job for you, and you can download the clean version of the data from here:\n", "\n", "[`star_2013_clean_wide.csv`](https://raw.githubusercontent.com/jaimefrio/data_science_fun_conference_2015/master/star_2013_clean_wide.csv)\n", "\n", "This cleaning up of the data, *munging* it as data scientist refer to it, is an extremely important part of a data scientist job. Going over the process we followed to clean-up this data is covered in the [appendix](http://127.0.0.1:8888/notebooks/pandas_in_a_hurry.ipynb#Appendix.-When-You-Munge-Upon-a-STAR). Not as sexy as fitting models tot he data, but equally important.\n", "\n", "But enough talking, let's start having fun with the cleaned-up data..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Importing a CSV file couldn't be easier with pandas' `read_csv` ([read the docs!](http://pandas.pydata.org/pandas-docs/dev/generated/pandas.io.parsers.read_csv.html)) function. It has dozens of optional configuration parameters, but the defaults work like a charm on properly formatted data." ] }, { "cell_type": "code", "collapsed": false, "input": [ "data = pd.read_csv('star_2013_clean_wide.csv')\n", "data" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
County.CodeCounty.NameTest.IdTest.NameGradeStudents.TestedMean.Scale.ScoreCount.Test.GradePct.Test.GradePopulationper.capita.incomemedian.household.incomemedian.family.incomeSpendADAttendSpend.Per.ADA
0 1 Alameda 7 CST English-Language Arts 2 16814 372.1 464896 0.036167 1494876 34937 70821 87012 1814932885 193906 9360
1 1 Alameda 8 CST Mathematics 2 16802 398.4 464515 0.036171 1494876 34937 70821 87012 1814932885 193906 9360
2 1 Alameda 8 CST Mathematics 3 16198 411.1 443961 0.036485 1494876 34937 70821 87012 1814932885 193906 9360
3 1 Alameda 7 CST English-Language Arts 3 16126 357.2 441572 0.036520 1494876 34937 70821 87012 1814932885 193906 9360
4 1 Alameda 7 CST English-Language Arts 4 15390 387.0 428906 0.035882 1494876 34937 70821 87012 1814932885 193906 9360
5 1 Alameda 8 CST Mathematics 4 15532 405.8 433012 0.035870 1494876 34937 70821 87012 1814932885 193906 9360
6 1 Alameda 8 CST Mathematics 5 15146 411.6 432775 0.034997 1494876 34937 70821 87012 1814932885 193906 9360
7 1 Alameda 7 CST English-Language Arts 5 15077 378.4 429498 0.035104 1494876 34937 70821 87012 1814932885 193906 9360
8 1 Alameda 32 CST Science - Grade 5, Grade 8, and Grade 10 L... 5 15107 380.6 431142 0.035040 1494876 34937 70821 87012 1814932885 193906 9360
9 1 Alameda 7 CST English-Language Arts 6 15277 374.9 434374 0.035170 1494876 34937 70821 87012 1814932885 193906 9360
10 1 Alameda 8 CST Mathematics 6 15332 380.3 436563 0.035120 1494876 34937 70821 87012 1814932885 193906 9360
11 1 Alameda 7 CST English-Language Arts 7 14551 378.4 431187 0.033746 1494876 34937 70821 87012 1814932885 193906 9360
12 1 Alameda 9 CST Algebra I 7 2239 431.6 37803 0.059228 1494876 34937 70821 87012 1814932885 193906 9360
13 1 Alameda 8 CST Mathematics 7 12326 370.2 393811 0.031299 1494876 34937 70821 87012 1814932885 193906 9360
14 1 Alameda 9 CST Algebra I 8 11006 354.2 276039 0.039871 1494876 34937 70821 87012 1814932885 193906 9360
15 1 Alameda 13 CST Algebra II 8 31 458.9 680 0.045588 1494876 34937 70821 87012 1814932885 193906 9360
16 1 Alameda 7 CST English-Language Arts 8 14549 373.9 435491 0.033408 1494876 34937 70821 87012 1814932885 193906 9360
17 1 Alameda 29 CST History - Social Science Grade 8 8 15421 363.3 459125 0.033588 1494876 34937 70821 87012 1814932885 193906 9360
18 1 Alameda 28 CST General Mathematics 8 2143 308.4 145549 0.014724 1494876 34937 70821 87012 1814932885 193906 9360
19 1 Alameda 11 CST Geometry 8 1732 428.0 29035 0.059652 1494876 34937 70821 87012 1814932885 193906 9360
20 1 Alameda 32 CST Science - Grade 5, Grade 8, and Grade 10 L... 8 14552 404.5 436071 0.033371 1494876 34937 70821 87012 1814932885 193906 9360
21 1 Alameda 10 CST Integrated Math 1 9 121 298.8 980 0.123469 1494876 34937 70821 87012 1814932885 193906 9360
22 1 Alameda 20 CST Biology 9 9473 377.0 228962 0.041374 1494876 34937 70821 87012 1814932885 193906 9360
23 1 Alameda 21 CST Chemistry 9 186 364.3 5365 0.034669 1494876 34937 70821 87012 1814932885 193906 9360
24 1 Alameda 24 CST Integrated/Coordinated Science 1 9 905 321.4 33944 0.026662 1494876 34937 70821 87012 1814932885 193906 9360
25 1 Alameda 22 CST Earth Science 9 1651 328.8 133961 0.012324 1494876 34937 70821 87012 1814932885 193906 9360
26 1 Alameda 23 CST Physics 9 754 312.8 14112 0.053430 1494876 34937 70821 87012 1814932885 193906 9360
27 1 Alameda 25 CST Integrated/Coordinated Science 2 9 124 323.0 1351 0.091784 1494876 34937 70821 87012 1814932885 193906 9360
28 1 Alameda 18 CST World History 9 597 320.1 35087 0.017015 1494876 34937 70821 87012 1814932885 193906 9360
29 1 Alameda 11 CST Geometry 9 6613 353.4 144063 0.045904 1494876 34937 70821 87012 1814932885 193906 9360
...................................................
3700 58 Yuba 22 CST Earth Science 10 290 327.0 30649 0.009462 71817 20046 46617 52775 99237214 11710 8474
3701 58 Yuba 15 CST Summative High School Mathematics 10 19 353.3 24757 0.000767 71817 20046 46617 52775 99237214 11710 8474
3702 58 Yuba 21 CST Chemistry 10 166 358.8 136209 0.001219 71817 20046 46617 52775 99237214 11710 8474
3703 58 Yuba 13 CST Algebra II 10 201 335.9 131448 0.001529 71817 20046 46617 52775 99237214 11710 8474
3704 58 Yuba 9 CST Algebra I 10 259 285.9 104567 0.002477 71817 20046 46617 52775 99237214 11710 8474
3705 58 Yuba 7 CST English-Language Arts 10 931 332.0 455362 0.002045 71817 20046 46617 52775 99237214 11710 8474
3706 58 Yuba 20 CST Biology 10 238 343.3 228138 0.001043 71817 20046 46617 52775 99237214 11710 8474
3707 58 Yuba 11 CST Geometry 10 274 296.1 156167 0.001755 71817 20046 46617 52775 99237214 11710 8474
3708 58 Yuba 11 CST Geometry 11 151 287.1 78308 0.001928 71817 20046 46617 52775 99237214 11710 8474
3709 58 Yuba 19 CST U.S. History 11 895 325.7 447386 0.002001 71817 20046 46617 52775 99237214 11710 8474
3710 58 Yuba 20 CST Biology 11 186 330.3 99776 0.001864 71817 20046 46617 52775 99237214 11710 8474
3711 58 Yuba 7 CST English-Language Arts 11 899 324.9 440115 0.002043 71817 20046 46617 52775 99237214 11710 8474
3712 58 Yuba 9 CST Algebra I 11 187 281.3 49868 0.003750 71817 20046 46617 52775 99237214 11710 8474
3713 58 Yuba 13 CST Algebra II 11 199 302.4 122079 0.001630 71817 20046 46617 52775 99237214 11710 8474
3714 58 Yuba 21 CST Chemistry 11 121 342.4 133804 0.000904 71817 20046 46617 52775 99237214 11710 8474
3715 58 Yuba 15 CST Summative High School Mathematics 11 153 322.6 124304 0.001231 71817 20046 46617 52775 99237214 11710 8474
3716 58 Yuba 22 CST Earth Science 11 187 326.8 42331 0.004418 71817 20046 46617 52775 99237214 11710 8474
3717 58 Yuba 23 CST Physics 11 91 363.8 56726 0.001604 71817 20046 46617 52775 99237214 11710 8474
3718 58 Yuba 18 CST World History 11 40 300.3 16163 0.002475 71817 20046 46617 52775 99237214 11710 8474
3719 58 Yuba 18 CST World History 13 874 329.1 474255 0.001843 71817 20046 46617 52775 99237214 11710 8474
3720 58 Yuba 25 CST Integrated/Coordinated Science 2 13 14 302.3 3742 0.003741 71817 20046 46617 52775 99237214 11710 8474
3721 58 Yuba 20 CST Biology 13 876 340.6 556893 0.001573 71817 20046 46617 52775 99237214 11710 8474
3722 58 Yuba 22 CST Earth Science 13 875 328.9 206991 0.004227 71817 20046 46617 52775 99237214 11710 8474
3723 58 Yuba 23 CST Physics 13 92 363.6 80833 0.001138 71817 20046 46617 52775 99237214 11710 8474
3724 58 Yuba 28 CST General Mathematics 13 585 299.5 190615 0.003069 71817 20046 46617 52775 99237214 11710 8474
3725 58 Yuba 13 CST Algebra II 13 431 320.6 286737 0.001503 71817 20046 46617 52775 99237214 11710 8474
3726 58 Yuba 21 CST Chemistry 13 287 351.9 275452 0.001042 71817 20046 46617 52775 99237214 11710 8474
3727 58 Yuba 15 CST Summative High School Mathematics 13 172 326.0 149987 0.001147 71817 20046 46617 52775 99237214 11710 8474
3728 58 Yuba 11 CST Geometry 13 695 307.8 407658 0.001705 71817 20046 46617 52775 99237214 11710 8474
3729 58 Yuba 9 CST Algebra I 13 1495 319.4 711705 0.002101 71817 20046 46617 52775 99237214 11710 8474
\n", "

3730 rows \u00d7 16 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ " County.Code County.Name Test.Id \\\n", "0 1 Alameda 7 \n", "1 1 Alameda 8 \n", "2 1 Alameda 8 \n", "3 1 Alameda 7 \n", "4 1 Alameda 7 \n", "5 1 Alameda 8 \n", "6 1 Alameda 8 \n", "7 1 Alameda 7 \n", "8 1 Alameda 32 \n", "9 1 Alameda 7 \n", "10 1 Alameda 8 \n", "11 1 Alameda 7 \n", "12 1 Alameda 9 \n", "13 1 Alameda 8 \n", "14 1 Alameda 9 \n", "15 1 Alameda 13 \n", "16 1 Alameda 7 \n", "17 1 Alameda 29 \n", "18 1 Alameda 28 \n", "19 1 Alameda 11 \n", "20 1 Alameda 32 \n", "21 1 Alameda 10 \n", "22 1 Alameda 20 \n", "23 1 Alameda 21 \n", "24 1 Alameda 24 \n", "25 1 Alameda 22 \n", "26 1 Alameda 23 \n", "27 1 Alameda 25 \n", "28 1 Alameda 18 \n", "29 1 Alameda 11 \n", "... ... ... ... \n", "3700 58 Yuba 22 \n", "3701 58 Yuba 15 \n", "3702 58 Yuba 21 \n", "3703 58 Yuba 13 \n", "3704 58 Yuba 9 \n", "3705 58 Yuba 7 \n", "3706 58 Yuba 20 \n", "3707 58 Yuba 11 \n", "3708 58 Yuba 11 \n", "3709 58 Yuba 19 \n", "3710 58 Yuba 20 \n", "3711 58 Yuba 7 \n", "3712 58 Yuba 9 \n", "3713 58 Yuba 13 \n", "3714 58 Yuba 21 \n", "3715 58 Yuba 15 \n", "3716 58 Yuba 22 \n", "3717 58 Yuba 23 \n", "3718 58 Yuba 18 \n", "3719 58 Yuba 18 \n", "3720 58 Yuba 25 \n", "3721 58 Yuba 20 \n", "3722 58 Yuba 22 \n", "3723 58 Yuba 23 \n", "3724 58 Yuba 28 \n", "3725 58 Yuba 13 \n", "3726 58 Yuba 21 \n", "3727 58 Yuba 15 \n", "3728 58 Yuba 11 \n", "3729 58 Yuba 9 \n", "\n", " Test.Name Grade \\\n", "0 CST English-Language Arts 2 \n", "1 CST Mathematics 2 \n", "2 CST Mathematics 3 \n", "3 CST English-Language Arts 3 \n", "4 CST English-Language Arts 4 \n", "5 CST Mathematics 4 \n", "6 CST Mathematics 5 \n", "7 CST English-Language Arts 5 \n", "8 CST Science - Grade 5, Grade 8, and Grade 10 L... 5 \n", "9 CST English-Language Arts 6 \n", "10 CST Mathematics 6 \n", "11 CST English-Language Arts 7 \n", "12 CST Algebra I 7 \n", "13 CST Mathematics 7 \n", "14 CST Algebra I 8 \n", "15 CST Algebra II 8 \n", "16 CST English-Language Arts 8 \n", "17 CST History - Social Science Grade 8 8 \n", "18 CST General Mathematics 8 \n", "19 CST Geometry 8 \n", "20 CST Science - Grade 5, Grade 8, and Grade 10 L... 8 \n", "21 CST Integrated Math 1 9 \n", "22 CST Biology 9 \n", "23 CST Chemistry 9 \n", "24 CST Integrated/Coordinated Science 1 9 \n", "25 CST Earth Science 9 \n", "26 CST Physics 9 \n", "27 CST Integrated/Coordinated Science 2 9 \n", "28 CST World History 9 \n", "29 CST Geometry 9 \n", "... ... ... \n", "3700 CST Earth Science 10 \n", "3701 CST Summative High School Mathematics 10 \n", "3702 CST Chemistry 10 \n", "3703 CST Algebra II 10 \n", "3704 CST Algebra I 10 \n", "3705 CST English-Language Arts 10 \n", "3706 CST Biology 10 \n", "3707 CST Geometry 10 \n", "3708 CST Geometry 11 \n", "3709 CST U.S. History 11 \n", "3710 CST Biology 11 \n", "3711 CST English-Language Arts 11 \n", "3712 CST Algebra I 11 \n", "3713 CST Algebra II 11 \n", "3714 CST Chemistry 11 \n", "3715 CST Summative High School Mathematics 11 \n", "3716 CST Earth Science 11 \n", "3717 CST Physics 11 \n", "3718 CST World History 11 \n", "3719 CST World History 13 \n", "3720 CST Integrated/Coordinated Science 2 13 \n", "3721 CST Biology 13 \n", "3722 CST Earth Science 13 \n", "3723 CST Physics 13 \n", "3724 CST General Mathematics 13 \n", "3725 CST Algebra II 13 \n", "3726 CST Chemistry 13 \n", "3727 CST Summative High School Mathematics 13 \n", "3728 CST Geometry 13 \n", "3729 CST Algebra I 13 \n", "\n", " Students.Tested Mean.Scale.Score Count.Test.Grade Pct.Test.Grade \\\n", "0 16814 372.1 464896 0.036167 \n", "1 16802 398.4 464515 0.036171 \n", "2 16198 411.1 443961 0.036485 \n", "3 16126 357.2 441572 0.036520 \n", "4 15390 387.0 428906 0.035882 \n", "5 15532 405.8 433012 0.035870 \n", "6 15146 411.6 432775 0.034997 \n", "7 15077 378.4 429498 0.035104 \n", "8 15107 380.6 431142 0.035040 \n", "9 15277 374.9 434374 0.035170 \n", "10 15332 380.3 436563 0.035120 \n", "11 14551 378.4 431187 0.033746 \n", "12 2239 431.6 37803 0.059228 \n", "13 12326 370.2 393811 0.031299 \n", "14 11006 354.2 276039 0.039871 \n", "15 31 458.9 680 0.045588 \n", "16 14549 373.9 435491 0.033408 \n", "17 15421 363.3 459125 0.033588 \n", "18 2143 308.4 145549 0.014724 \n", "19 1732 428.0 29035 0.059652 \n", "20 14552 404.5 436071 0.033371 \n", "21 121 298.8 980 0.123469 \n", "22 9473 377.0 228962 0.041374 \n", "23 186 364.3 5365 0.034669 \n", "24 905 321.4 33944 0.026662 \n", "25 1651 328.8 133961 0.012324 \n", "26 754 312.8 14112 0.053430 \n", "27 124 323.0 1351 0.091784 \n", "28 597 320.1 35087 0.017015 \n", "29 6613 353.4 144063 0.045904 \n", "... ... ... ... ... \n", "3700 290 327.0 30649 0.009462 \n", "3701 19 353.3 24757 0.000767 \n", "3702 166 358.8 136209 0.001219 \n", "3703 201 335.9 131448 0.001529 \n", "3704 259 285.9 104567 0.002477 \n", "3705 931 332.0 455362 0.002045 \n", "3706 238 343.3 228138 0.001043 \n", "3707 274 296.1 156167 0.001755 \n", "3708 151 287.1 78308 0.001928 \n", "3709 895 325.7 447386 0.002001 \n", "3710 186 330.3 99776 0.001864 \n", "3711 899 324.9 440115 0.002043 \n", "3712 187 281.3 49868 0.003750 \n", "3713 199 302.4 122079 0.001630 \n", "3714 121 342.4 133804 0.000904 \n", "3715 153 322.6 124304 0.001231 \n", "3716 187 326.8 42331 0.004418 \n", "3717 91 363.8 56726 0.001604 \n", "3718 40 300.3 16163 0.002475 \n", "3719 874 329.1 474255 0.001843 \n", "3720 14 302.3 3742 0.003741 \n", "3721 876 340.6 556893 0.001573 \n", "3722 875 328.9 206991 0.004227 \n", "3723 92 363.6 80833 0.001138 \n", "3724 585 299.5 190615 0.003069 \n", "3725 431 320.6 286737 0.001503 \n", "3726 287 351.9 275452 0.001042 \n", "3727 172 326.0 149987 0.001147 \n", "3728 695 307.8 407658 0.001705 \n", "3729 1495 319.4 711705 0.002101 \n", "\n", " Population per.capita.income median.household.income \\\n", "0 1494876 34937 70821 \n", "1 1494876 34937 70821 \n", "2 1494876 34937 70821 \n", "3 1494876 34937 70821 \n", "4 1494876 34937 70821 \n", "5 1494876 34937 70821 \n", "6 1494876 34937 70821 \n", "7 1494876 34937 70821 \n", "8 1494876 34937 70821 \n", "9 1494876 34937 70821 \n", "10 1494876 34937 70821 \n", "11 1494876 34937 70821 \n", "12 1494876 34937 70821 \n", "13 1494876 34937 70821 \n", "14 1494876 34937 70821 \n", "15 1494876 34937 70821 \n", "16 1494876 34937 70821 \n", "17 1494876 34937 70821 \n", "18 1494876 34937 70821 \n", "19 1494876 34937 70821 \n", "20 1494876 34937 70821 \n", "21 1494876 34937 70821 \n", "22 1494876 34937 70821 \n", "23 1494876 34937 70821 \n", "24 1494876 34937 70821 \n", "25 1494876 34937 70821 \n", "26 1494876 34937 70821 \n", "27 1494876 34937 70821 \n", "28 1494876 34937 70821 \n", "29 1494876 34937 70821 \n", "... ... ... ... \n", "3700 71817 20046 46617 \n", "3701 71817 20046 46617 \n", "3702 71817 20046 46617 \n", "3703 71817 20046 46617 \n", "3704 71817 20046 46617 \n", "3705 71817 20046 46617 \n", "3706 71817 20046 46617 \n", "3707 71817 20046 46617 \n", "3708 71817 20046 46617 \n", "3709 71817 20046 46617 \n", "3710 71817 20046 46617 \n", "3711 71817 20046 46617 \n", "3712 71817 20046 46617 \n", "3713 71817 20046 46617 \n", "3714 71817 20046 46617 \n", "3715 71817 20046 46617 \n", "3716 71817 20046 46617 \n", "3717 71817 20046 46617 \n", "3718 71817 20046 46617 \n", "3719 71817 20046 46617 \n", "3720 71817 20046 46617 \n", "3721 71817 20046 46617 \n", "3722 71817 20046 46617 \n", "3723 71817 20046 46617 \n", "3724 71817 20046 46617 \n", "3725 71817 20046 46617 \n", "3726 71817 20046 46617 \n", "3727 71817 20046 46617 \n", "3728 71817 20046 46617 \n", "3729 71817 20046 46617 \n", "\n", " median.family.income Spend ADAttend Spend.Per.ADA \n", "0 87012 1814932885 193906 9360 \n", "1 87012 1814932885 193906 9360 \n", "2 87012 1814932885 193906 9360 \n", "3 87012 1814932885 193906 9360 \n", "4 87012 1814932885 193906 9360 \n", "5 87012 1814932885 193906 9360 \n", "6 87012 1814932885 193906 9360 \n", "7 87012 1814932885 193906 9360 \n", "8 87012 1814932885 193906 9360 \n", "9 87012 1814932885 193906 9360 \n", "10 87012 1814932885 193906 9360 \n", "11 87012 1814932885 193906 9360 \n", "12 87012 1814932885 193906 9360 \n", "13 87012 1814932885 193906 9360 \n", "14 87012 1814932885 193906 9360 \n", "15 87012 1814932885 193906 9360 \n", "16 87012 1814932885 193906 9360 \n", "17 87012 1814932885 193906 9360 \n", "18 87012 1814932885 193906 9360 \n", "19 87012 1814932885 193906 9360 \n", "20 87012 1814932885 193906 9360 \n", "21 87012 1814932885 193906 9360 \n", "22 87012 1814932885 193906 9360 \n", "23 87012 1814932885 193906 9360 \n", "24 87012 1814932885 193906 9360 \n", "25 87012 1814932885 193906 9360 \n", "26 87012 1814932885 193906 9360 \n", "27 87012 1814932885 193906 9360 \n", "28 87012 1814932885 193906 9360 \n", "29 87012 1814932885 193906 9360 \n", "... ... ... ... ... \n", "3700 52775 99237214 11710 8474 \n", "3701 52775 99237214 11710 8474 \n", "3702 52775 99237214 11710 8474 \n", "3703 52775 99237214 11710 8474 \n", "3704 52775 99237214 11710 8474 \n", "3705 52775 99237214 11710 8474 \n", "3706 52775 99237214 11710 8474 \n", "3707 52775 99237214 11710 8474 \n", "3708 52775 99237214 11710 8474 \n", "3709 52775 99237214 11710 8474 \n", "3710 52775 99237214 11710 8474 \n", "3711 52775 99237214 11710 8474 \n", "3712 52775 99237214 11710 8474 \n", "3713 52775 99237214 11710 8474 \n", "3714 52775 99237214 11710 8474 \n", "3715 52775 99237214 11710 8474 \n", "3716 52775 99237214 11710 8474 \n", "3717 52775 99237214 11710 8474 \n", "3718 52775 99237214 11710 8474 \n", "3719 52775 99237214 11710 8474 \n", "3720 52775 99237214 11710 8474 \n", "3721 52775 99237214 11710 8474 \n", "3722 52775 99237214 11710 8474 \n", "3723 52775 99237214 11710 8474 \n", "3724 52775 99237214 11710 8474 \n", "3725 52775 99237214 11710 8474 \n", "3726 52775 99237214 11710 8474 \n", "3727 52775 99237214 11710 8474 \n", "3728 52775 99237214 11710 8474 \n", "3729 52775 99237214 11710 8474 \n", "\n", "[3730 rows x 16 columns]" ] } ], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "# A closer look at the available columns\n", "data.columns" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 27, "text": [ "Index(['County.Code', 'County.Name', 'Test.Id', 'Test.Name', 'Grade', 'Students.Tested', 'Mean.Scale.Score', 'Count.Test.Grade', 'Pct.Test.Grade', 'Population', 'per.capita.income', 'median.household.income', 'median.family.income', 'Spend', 'ADAttend', 'Spend.Per.ADA'], dtype='object')" ] } ], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "# What are the unique test names?\n", "data['Test.Name'].unique()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 28, "text": [ "array(['CST English-Language Arts', 'CST Mathematics',\n", " 'CST Science - Grade 5, Grade 8, and Grade 10 Life Science',\n", " 'CST Algebra I', 'CST Algebra II',\n", " 'CST History - Social Science Grade 8', 'CST General Mathematics',\n", " 'CST Geometry', 'CST Integrated Math 1', 'CST Biology',\n", " 'CST Chemistry', 'CST Integrated/Coordinated Science 1',\n", " 'CST Earth Science', 'CST Physics',\n", " 'CST Integrated/Coordinated Science 2', 'CST World History',\n", " 'CST Summative High School Mathematics', 'CST Integrated Math 2',\n", " 'CST U.S. History', 'CST Integrated/Coordinated Science 4',\n", " 'CST Integrated Math 3', 'CST Integrated/Coordinated Science 3'], dtype=object)" ] } ], "prompt_number": 28 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "How many students took each test by grade?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Which introduces us to the `pivot_table` ([read the docs!](http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.pivot_table.html)) method of `DataFrame`s." ] }, { "cell_type": "code", "collapsed": false, "input": [ "data.pivot_table(values='Students.Tested', index='Test.Name',\n", " columns='Grade', aggfunc='sum')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Grade23456789101113
Test.Name
CST Algebra I NaN NaN NaN NaN NaN 37803 276039 243349 104555 49846 711671
CST Algebra II NaN NaN NaN NaN NaN NaN 680 32400 131448 122079 286737
CST Biology NaN NaN NaN NaN NaN NaN NaN 228962 228138 99753 556867
CST Chemistry NaN NaN NaN NaN NaN NaN NaN 5365 136209 133804 275452
CST Earth Science NaN NaN NaN NaN NaN NaN NaN 133961 30649 42316 206974
CST English-Language Arts 464896 441572 428906 429498 434374 431187 435491 463195 455237 439972 NaN
CST General Mathematics NaN NaN NaN NaN NaN NaN 145549 45052 NaN NaN 190615
CST Geometry NaN NaN NaN NaN NaN NaN 29035 144063 156167 78308 407658
CST History - Social Science Grade 8 NaN NaN NaN NaN NaN NaN 459125 NaN NaN NaN NaN
CST Integrated Math 1 NaN NaN NaN NaN NaN NaN 125 980 5965 6318 13486
CST Integrated Math 2 NaN NaN NaN NaN NaN NaN NaN 236 1432 3364 5102
CST Integrated Math 3 NaN NaN NaN NaN NaN NaN NaN 61 153 530 769
CST Integrated/Coordinated Science 1 NaN NaN NaN NaN NaN NaN NaN 33944 4401 7963 46386
CST Integrated/Coordinated Science 2 NaN NaN NaN NaN NaN NaN NaN 1351 1413 955 3742
CST Integrated/Coordinated Science 3 NaN NaN NaN NaN NaN NaN NaN 11 46 874 952
CST Integrated/Coordinated Science 4 NaN NaN NaN NaN NaN NaN NaN 18 NaN NaN 43
CST Mathematics 464515 443961 433012 432775 436563 393811 NaN NaN NaN NaN NaN
CST Physics NaN NaN NaN NaN NaN NaN NaN 14112 9902 56726 80833
CST Science - Grade 5, Grade 8, and Grade 10 Life Science NaN NaN NaN 431142 NaN NaN 436071 NaN 451253 NaN NaN
CST Summative High School Mathematics NaN NaN NaN NaN NaN NaN NaN 809 24757 124304 149987
CST U.S. History NaN NaN NaN NaN NaN NaN NaN NaN NaN 447253 NaN
CST World History NaN NaN NaN NaN NaN NaN NaN 35087 422893 16163 474237
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 29, "text": [ "Grade 2 3 \\\n", "Test.Name \n", "CST Algebra I NaN NaN \n", "CST Algebra II NaN NaN \n", "CST Biology NaN NaN \n", "CST Chemistry NaN NaN \n", "CST Earth Science NaN NaN \n", "CST English-Language Arts 464896 441572 \n", "CST General Mathematics NaN NaN \n", "CST Geometry NaN NaN \n", "CST History - Social Science Grade 8 NaN NaN \n", "CST Integrated Math 1 NaN NaN \n", "CST Integrated Math 2 NaN NaN \n", "CST Integrated Math 3 NaN NaN \n", "CST Integrated/Coordinated Science 1 NaN NaN \n", "CST Integrated/Coordinated Science 2 NaN NaN \n", "CST Integrated/Coordinated Science 3 NaN NaN \n", "CST Integrated/Coordinated Science 4 NaN NaN \n", "CST Mathematics 464515 443961 \n", "CST Physics NaN NaN \n", "CST Science - Grade 5, Grade 8, and Grade 10 Life Science NaN NaN \n", "CST Summative High School Mathematics NaN NaN \n", "CST U.S. History NaN NaN \n", "CST World History NaN NaN \n", "\n", "Grade 4 5 \\\n", "Test.Name \n", "CST Algebra I NaN NaN \n", "CST Algebra II NaN NaN \n", "CST Biology NaN NaN \n", "CST Chemistry NaN NaN \n", "CST Earth Science NaN NaN \n", "CST English-Language Arts 428906 429498 \n", "CST General Mathematics NaN NaN \n", "CST Geometry NaN NaN \n", "CST History - Social Science Grade 8 NaN NaN \n", "CST Integrated Math 1 NaN NaN \n", "CST Integrated Math 2 NaN NaN \n", "CST Integrated Math 3 NaN NaN \n", "CST Integrated/Coordinated Science 1 NaN NaN \n", "CST Integrated/Coordinated Science 2 NaN NaN \n", "CST Integrated/Coordinated Science 3 NaN NaN \n", "CST Integrated/Coordinated Science 4 NaN NaN \n", "CST Mathematics 433012 432775 \n", "CST Physics NaN NaN \n", "CST Science - Grade 5, Grade 8, and Grade 10 Life Science NaN 431142 \n", "CST Summative High School Mathematics NaN NaN \n", "CST U.S. History NaN NaN \n", "CST World History NaN NaN \n", "\n", "Grade 6 7 \\\n", "Test.Name \n", "CST Algebra I NaN 37803 \n", "CST Algebra II NaN NaN \n", "CST Biology NaN NaN \n", "CST Chemistry NaN NaN \n", "CST Earth Science NaN NaN \n", "CST English-Language Arts 434374 431187 \n", "CST General Mathematics NaN NaN \n", "CST Geometry NaN NaN \n", "CST History - Social Science Grade 8 NaN NaN \n", "CST Integrated Math 1 NaN NaN \n", "CST Integrated Math 2 NaN NaN \n", "CST Integrated Math 3 NaN NaN \n", "CST Integrated/Coordinated Science 1 NaN NaN \n", "CST Integrated/Coordinated Science 2 NaN NaN \n", "CST Integrated/Coordinated Science 3 NaN NaN \n", "CST Integrated/Coordinated Science 4 NaN NaN \n", "CST Mathematics 436563 393811 \n", "CST Physics NaN NaN \n", "CST Science - Grade 5, Grade 8, and Grade 10 Life Science NaN NaN \n", "CST Summative High School Mathematics NaN NaN \n", "CST U.S. History NaN NaN \n", "CST World History NaN NaN \n", "\n", "Grade 8 9 \\\n", "Test.Name \n", "CST Algebra I 276039 243349 \n", "CST Algebra II 680 32400 \n", "CST Biology NaN 228962 \n", "CST Chemistry NaN 5365 \n", "CST Earth Science NaN 133961 \n", "CST English-Language Arts 435491 463195 \n", "CST General Mathematics 145549 45052 \n", "CST Geometry 29035 144063 \n", "CST History - Social Science Grade 8 459125 NaN \n", "CST Integrated Math 1 125 980 \n", "CST Integrated Math 2 NaN 236 \n", "CST Integrated Math 3 NaN 61 \n", "CST Integrated/Coordinated Science 1 NaN 33944 \n", "CST Integrated/Coordinated Science 2 NaN 1351 \n", "CST Integrated/Coordinated Science 3 NaN 11 \n", "CST Integrated/Coordinated Science 4 NaN 18 \n", "CST Mathematics NaN NaN \n", "CST Physics NaN 14112 \n", "CST Science - Grade 5, Grade 8, and Grade 10 Life Science 436071 NaN \n", "CST Summative High School Mathematics NaN 809 \n", "CST U.S. History NaN NaN \n", "CST World History NaN 35087 \n", "\n", "Grade 10 11 \\\n", "Test.Name \n", "CST Algebra I 104555 49846 \n", "CST Algebra II 131448 122079 \n", "CST Biology 228138 99753 \n", "CST Chemistry 136209 133804 \n", "CST Earth Science 30649 42316 \n", "CST English-Language Arts 455237 439972 \n", "CST General Mathematics NaN NaN \n", "CST Geometry 156167 78308 \n", "CST History - Social Science Grade 8 NaN NaN \n", "CST Integrated Math 1 5965 6318 \n", "CST Integrated Math 2 1432 3364 \n", "CST Integrated Math 3 153 530 \n", "CST Integrated/Coordinated Science 1 4401 7963 \n", "CST Integrated/Coordinated Science 2 1413 955 \n", "CST Integrated/Coordinated Science 3 46 874 \n", "CST Integrated/Coordinated Science 4 NaN NaN \n", "CST Mathematics NaN NaN \n", "CST Physics 9902 56726 \n", "CST Science - Grade 5, Grade 8, and Grade 10 Life Science 451253 NaN \n", "CST Summative High School Mathematics 24757 124304 \n", "CST U.S. History NaN 447253 \n", "CST World History 422893 16163 \n", "\n", "Grade 13 \n", "Test.Name \n", "CST Algebra I 711671 \n", "CST Algebra II 286737 \n", "CST Biology 556867 \n", "CST Chemistry 275452 \n", "CST Earth Science 206974 \n", "CST English-Language Arts NaN \n", "CST General Mathematics 190615 \n", "CST Geometry 407658 \n", "CST History - Social Science Grade 8 NaN \n", "CST Integrated Math 1 13486 \n", "CST Integrated Math 2 5102 \n", "CST Integrated Math 3 769 \n", "CST Integrated/Coordinated Science 1 46386 \n", "CST Integrated/Coordinated Science 2 3742 \n", "CST Integrated/Coordinated Science 3 952 \n", "CST Integrated/Coordinated Science 4 43 \n", "CST Mathematics NaN \n", "CST Physics 80833 \n", "CST Science - Grade 5, Grade 8, and Grade 10 Life Science NaN \n", "CST Summative High School Mathematics 149987 \n", "CST U.S. History NaN \n", "CST World History 474237 " ] } ], "prompt_number": 29 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "How do English scores vary by grade?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are going to use a very powerful feature of `DataFrame`s, the `groupby` ([read the docs!](http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.groupby.html)) method.\n", "\n", "The section of the docs on the split-apply-combine philosophy of Group By operations ([read the docs!](http://pandas.pydata.org/pandas-docs/dev/groupby.html)) is well worth a careful read." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# First, keep the English test rows only\n", "english = data[data['Test.Name'] == 'CST English-Language Arts']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 30 }, { "cell_type": "code", "collapsed": false, "input": [ "english_grade = english.groupby('Grade')['Mean.Scale.Score'].aggregate(np.mean)\n", "english_grade" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 31, "text": [ "Grade\n", "2 355.771930\n", "3 343.361404\n", "4 370.684211\n", "5 363.074138\n", "6 361.592982\n", "7 366.333333\n", "8 362.998276\n", "9 360.000000\n", "10 344.621053\n", "11 340.910526\n", "Name: Mean.Scale.Score, dtype: float64" ] } ], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "english_grade.plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 32, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nrkJggg==\n", "text": [ "" ] } ], "prompt_number": 32 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wait a minute! Was that calculation correct?\n", "\n", "Not really! What we have is the average accross *counties*, not accross *students*. Lets try to fix that." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# We add a new calculated column to our dataframe\n", "english['Weighted.Score'] = english['Mean.Scale.Score'] * english['Pct.Test.Grade']\n", "# Then group by grade and plot the aggregated sum of this column\n", "english.groupby('Grade')['Weighted.Score'].aggregate(np.sum).plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 33, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 33 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "What's the effect of income on 7th grade math scores?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Keep the relevant rows only\n", "math_7th = data[(data['Test.Name'] == 'CST Mathematics') &\n", " (data['Grade'] == 7)]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 34 }, { "cell_type": "code", "collapsed": false, "input": [ "math_7th.plot(x='median.family.income', y='Mean.Scale.Score', kind='scatter')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 35, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 35 }, { "cell_type": "markdown", "metadata": {}, "source": [ "What's with the outlier? Let's try to figure it out..." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Let's peek at the offending row\n", "math_7th[math_7th['Mean.Scale.Score'] < 300]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
County.CodeCounty.NameTest.IdTest.NameGradeStudents.TestedMean.Scale.ScoreCount.Test.GradePct.Test.GradePopulationper.capita.incomemedian.household.incomemedian.family.incomeSpendADAttendSpend.Per.ADA
2918 46 Sierra 8 CST Mathematics 7 27 259.5 393811 0.000069 3277 26137 50308 56469 4739373 354 13391
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 36, "text": [ " County.Code County.Name Test.Id Test.Name Grade \\\n", "2918 46 Sierra 8 CST Mathematics 7 \n", "\n", " Students.Tested Mean.Scale.Score Count.Test.Grade Pct.Test.Grade \\\n", "2918 27 259.5 393811 0.000069 \n", "\n", " Population per.capita.income median.household.income \\\n", "2918 3277 26137 50308 \n", "\n", " median.family.income Spend ADAttend Spend.Per.ADA \n", "2918 56469 4739373 354 13391 " ] } ], "prompt_number": 36 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Only 27 students tested, that doesn't seem like very many. Let's see how it compares to other counties." ] }, { "cell_type": "code", "collapsed": false, "input": [ "math_7th.plot(x='Students.Tested', y='Mean.Scale.Score',\n", " kind='scatter', logx=True)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 37, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 37 }, { "cell_type": "markdown", "metadata": {}, "source": [ "So Sierra seems to be a legit outlier. Let's remove it from our analysis." ] }, { "cell_type": "code", "collapsed": false, "input": [ "math_7th = math_7th[math_7th['County.Name'] != 'Sierra']\n", "math_7th.plot(x='median.family.income', y='Mean.Scale.Score', kind='scatter')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 38, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nnwAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "# Let's fit a linear model to our data\n", "y = math_7th['Mean.Scale.Score'] # response\n", "X = math_7th['median.family.income'] # predictor\n", "X = sm.add_constant(X) # Add a constant term to the predictor\n", "# The actual fitting happens here\n", "est = sm.OLS(y, X)\n", "est = est.fit()\n", "est.summary()" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
OLS Regression Results
Dep. Variable: Mean.Scale.Score R-squared: 0.298
Model: OLS Adj. R-squared: 0.285
Method: Least Squares F-statistic: 22.93
Date: Thu, 26 Feb 2015 Prob (F-statistic): 1.35e-05
Time: 22:58:08 Log-Likelihood: -212.31
No. Observations: 56 AIC: 428.6
Df Residuals: 54 BIC: 432.7
Df Model: 1
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
coef std err t P>|t| [95.0% Conf. Int.]
const 332.0775 6.059 54.808 0.000 319.930 344.225
median.family.income 0.0004 8.87e-05 4.788 0.000 0.000 0.001
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Omnibus: 0.749 Durbin-Watson: 1.990
Prob(Omnibus): 0.688 Jarque-Bera (JB): 0.280
Skew: 0.142 Prob(JB): 0.869
Kurtosis: 3.197 Cond. No. 2.84e+05
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 39, "text": [ "\n", "\"\"\"\n", " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: Mean.Scale.Score R-squared: 0.298\n", "Model: OLS Adj. R-squared: 0.285\n", "Method: Least Squares F-statistic: 22.93\n", "Date: Thu, 26 Feb 2015 Prob (F-statistic): 1.35e-05\n", "Time: 22:58:08 Log-Likelihood: -212.31\n", "No. Observations: 56 AIC: 428.6\n", "Df Residuals: 54 BIC: 432.7\n", "Df Model: 1 \n", "========================================================================================\n", " coef std err t P>|t| [95.0% Conf. Int.]\n", "----------------------------------------------------------------------------------------\n", "const 332.0775 6.059 54.808 0.000 319.930 344.225\n", "median.family.income 0.0004 8.87e-05 4.788 0.000 0.000 0.001\n", "==============================================================================\n", "Omnibus: 0.749 Durbin-Watson: 1.990\n", "Prob(Omnibus): 0.688 Jarque-Bera (JB): 0.280\n", "Skew: 0.142 Prob(JB): 0.869\n", "Kurtosis: 3.197 Cond. No. 2.84e+05\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] The condition number is large, 2.84e+05. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n", "\"\"\"" ] } ], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "# Let's plot the regression line on top of the data\n", "x_ = np.array([X.min(), X.max()])\n", "y_ = est.predict(x_)\n", "math_7th.plot(x='median.family.income', y='Mean.Scale.Score', kind='scatter')\n", "plt.plot(x_[:, 1], y_, 'r-')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 40, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nwyfydDmInvAAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 40 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "What's the effect of spending on 7th grade math scores?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "math_7th.plot(x='Spend.Per.ADA', y='Mean.Scale.Score', kind='scatter')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 41, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 41 }, { "cell_type": "code", "collapsed": false, "input": [ "# Let's fit a linear model to our data\n", "y = math_7th['Mean.Scale.Score'] # response\n", "X = math_7th['Spend.Per.ADA'] # predictor\n", "X = sm.add_constant(X) # Add a constant term to the predictor\n", "# The actual fitting happens here\n", "est = sm.OLS(y, X)\n", "est = est.fit()\n", "est.summary()" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
OLS Regression Results
Dep. Variable: Mean.Scale.Score R-squared: 0.064
Model: OLS Adj. R-squared: 0.047
Method: Least Squares F-statistic: 3.691
Date: Thu, 26 Feb 2015 Prob (F-statistic): 0.0600
Time: 22:58:09 Log-Likelihood: -220.37
No. Observations: 56 AIC: 444.7
Df Residuals: 54 BIC: 448.8
Df Model: 1
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
coef std err t P>|t| [95.0% Conf. Int.]
const 336.2436 12.602 26.682 0.000 310.979 361.509
Spend.Per.ADA 0.0026 0.001 1.921 0.060 -0.000 0.005
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Omnibus: 0.563 Durbin-Watson: 2.081
Prob(Omnibus): 0.755 Jarque-Bera (JB): 0.697
Skew: 0.142 Prob(JB): 0.706
Kurtosis: 2.533 Cond. No. 6.92e+04
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 42, "text": [ "\n", "\"\"\"\n", " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: Mean.Scale.Score R-squared: 0.064\n", "Model: OLS Adj. R-squared: 0.047\n", "Method: Least Squares F-statistic: 3.691\n", "Date: Thu, 26 Feb 2015 Prob (F-statistic): 0.0600\n", "Time: 22:58:09 Log-Likelihood: -220.37\n", "No. Observations: 56 AIC: 444.7\n", "Df Residuals: 54 BIC: 448.8\n", "Df Model: 1 \n", "=================================================================================\n", " coef std err t P>|t| [95.0% Conf. Int.]\n", "---------------------------------------------------------------------------------\n", "const 336.2436 12.602 26.682 0.000 310.979 361.509\n", "Spend.Per.ADA 0.0026 0.001 1.921 0.060 -0.000 0.005\n", "==============================================================================\n", "Omnibus: 0.563 Durbin-Watson: 2.081\n", "Prob(Omnibus): 0.755 Jarque-Bera (JB): 0.697\n", "Skew: 0.142 Prob(JB): 0.706\n", "Kurtosis: 2.533 Cond. No. 6.92e+04\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] The condition number is large, 6.92e+04. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n", "\"\"\"" ] } ], "prompt_number": 42 }, { "cell_type": "code", "collapsed": false, "input": [ "# Let's plot the regression line on top of the data\n", "x_ = np.array([X.min(), X.max()])\n", "y_ = est.predict(x_)\n", "math_7th.plot(x='Spend.Per.ADA', y='Mean.Scale.Score', kind='scatter')\n", "plt.plot(x_[:, 1], y_, 'r-')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 43, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 43 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "What's the effect of spending and income on 7th grade math scores?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Let's fit a linear model to our data\n", "y = math_7th['Mean.Scale.Score'] # response\n", "X = math_7th[['median.family.income', 'Spend.Per.ADA']] # predictor\n", "X = sm.add_constant(X) # Add a constant term to the predictor\n", "# The actual fitting happens here\n", "est = sm.OLS(y, X)\n", "est = est.fit()\n", "est.summary()" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
OLS Regression Results
Dep. Variable: Mean.Scale.Score R-squared: 0.359
Model: OLS Adj. R-squared: 0.335
Method: Least Squares F-statistic: 14.82
Date: Thu, 26 Feb 2015 Prob (F-statistic): 7.71e-06
Time: 22:58:09 Log-Likelihood: -209.78
No. Observations: 56 AIC: 425.6
Df Residuals: 53 BIC: 431.6
Df Model: 2
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
coef std err t P>|t| [95.0% Conf. Int.]
const 308.8693 11.900 25.955 0.000 285.000 332.738
median.family.income 0.0004 8.56e-05 4.935 0.000 0.000 0.001
Spend.Per.ADA 0.0025 0.001 2.239 0.029 0.000 0.005
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Omnibus: 0.769 Durbin-Watson: 1.849
Prob(Omnibus): 0.681 Jarque-Bera (JB): 0.865
Skew: -0.189 Prob(JB): 0.649
Kurtosis: 2.523 Cond. No. 5.82e+05
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 44, "text": [ "\n", "\"\"\"\n", " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: Mean.Scale.Score R-squared: 0.359\n", "Model: OLS Adj. R-squared: 0.335\n", "Method: Least Squares F-statistic: 14.82\n", "Date: Thu, 26 Feb 2015 Prob (F-statistic): 7.71e-06\n", "Time: 22:58:09 Log-Likelihood: -209.78\n", "No. Observations: 56 AIC: 425.6\n", "Df Residuals: 53 BIC: 431.6\n", "Df Model: 2 \n", "========================================================================================\n", " coef std err t P>|t| [95.0% Conf. Int.]\n", "----------------------------------------------------------------------------------------\n", "const 308.8693 11.900 25.955 0.000 285.000 332.738\n", "median.family.income 0.0004 8.56e-05 4.935 0.000 0.000 0.001\n", "Spend.Per.ADA 0.0025 0.001 2.239 0.029 0.000 0.005\n", "==============================================================================\n", "Omnibus: 0.769 Durbin-Watson: 1.849\n", "Prob(Omnibus): 0.681 Jarque-Bera (JB): 0.865\n", "Skew: -0.189 Prob(JB): 0.649\n", "Kurtosis: 2.523 Cond. No. 5.82e+05\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] The condition number is large, 5.82e+05. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n", "\"\"\"" ] } ], "prompt_number": 44 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Placeholder second hour" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that you have completed the tutorial, you are ready to fly on your own... For the rest of the session, you are welcome to try out one of the following projects, and ask for help from the volunteers. The projects are roughly ordered by increasing difficulty level. Please be aware that the harder projects are very unlikely to be completed in an hour (unless you happen to be [Jeff Dean](http://www.quora.com/What-are-all-the-Jeff-Dean-facts))." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Project 1. Run the Pandas code above on your own" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you are new to Pandas, going over the tutorial we have just completed at your own pace may already be enough of a challenge." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Project 2. Run the data munging code" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data file we used for the tutorial had already been cleaned for you. The code to do that is explained in the [appendix](#Appendix.-When-You-Munge-Upon-a-STAR). Going over it is our second proposal." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Project 3. Analyze subgroup data like gender, ethnicity..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is a treasure trove of additional information breaking down test scores by interesting covariates like gender, ethnicity, parental education, and more.\n", "\n", "This data is coded by using an additional column called \u201csubgroup\u201d. The key for what the subgroup numbers mean (for 2013) appears here:\n", "\n", "[`http://star.cde.ca.gov/star2013/research_fixfileformat.aspx`](http://star.cde.ca.gov/star2013/research_fixfileformat.aspx)\n", "(Scroll down, starting at \u201cGender\u201d).\n", "\n", "In the tutorial we created a graph showing English scores over time (grades 2-11). Using the subgroup data, can you make a similar chart, but with two lines, one for boys and one for girls? What other interesting insights can you glean from the subgroup data?" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Project 4. Analyze data by geographical latitude" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It\u2019s SoCal vs NoCal... Every district has a latitude. Is latitude a useful predictor? Are there any differences between SoCal and NoCal schools? If you find an effect, can you demonstrate that it is valid even when you control for covariates such as income which might be correlated to latitude?" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Project 5. Analyze data at the district or school level" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All of the data analyzed in the tutorial was at the county level. However, the actual STAR data is broken down to the district and school levels.\n", "\n", "Do counties with smaller schools get better scores than counties with larger schools? Do counties with higher income tend to have smaller or larger schools? How would you measure school size within a county? Average? Median?\n", "\n", "Can you find district level data for income or spending online? Can you merge it with the district level data for student scores?\n", "\n", "If you can find (and process/merge) district level data for income or spending, when you see a relationship that seems to hold at the county level (e.g. income to test scores), does that hold uniformly within all the counties? Looking at districts within counties, are there some counties where the relationship holds and some where it doesn\u2019t?" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Project 6. Analyze data longitudinally" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All of the data analyzed in the tutorial was from 2013. There were test scores from multiple grades, but each of those grades was tested in 2013. However, there is more data available at the STAR website. Specifically, there are 16 years worth of data on the STAR website, from 1998-2013. You can access this data at [`http://star.cde.ca.gov/`](http://star.cde.ca.gov/).\n", "\n", "Because this data is available, if you combine this data appropriately, you can construct true longitudinal data, rather than cross sectional data. For example, the 11th graders of 2013 were the 10th graders of 2012, the 9th graders of 2011, etc...\n", "\n", "Let\u2019s look at an example. In the tutorial we made a slide with English scores by grade. That data was cross sectional. However, we could make the same type of plot with multiple lines \u2013 one per cohort. For example, there could be a line that connects scores for the 2nd graders of 1998, the 3rd graders of 1999, the 4th graders of 2000, etc... Another line could connect the scores for the 2nd graders of 1999, the 3rd graders of 2000, the 4th graders of 2001, etc...\n", "\n", "Looking at the resulting plot, with multiple lines for multiple cohorts, one could get a global picture of whether English education in California, as judged by test scores across all grades, has been getting better or worse over the last 16 years. Are there any identifiable trends? What about other tests? \n", "\n", "Bonus question: imagine you had a thousand tests \u2013 can you devise an automated way to look for trends in data like this? Does your automated test catch the trends you identified \u201cby inspection\u201d?" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Appendix. When You Munge Upon a STAR" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Download the *2013 California Statewide research file, All Students, comma delimited* file: [`ca2013_1_csv_v3.zip`](http://www3.cde.ca.gov/starresearchfiles/2013/p3/ca2013_1_csv_v3.zip)\n", "\n", "* Unzip its contents. You will now have two files, the test data, [`ca2013_1_csv_v3.txt`](https://raw.githubusercontent.com/jaimefrio/data_science_fun_conference_2015/master/ca2013_1_csv_v3.txt), and some information on the names of counties, districts and schools, [`ca2013entities_csv.txt`](https://raw.githubusercontent.com/jaimefrio/data_science_fun_conference_2015/master/ca2013entities_csv.txt).\n", " \n", "* Let's load the test data and start playing with it:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "raw_data = pd.read_csv('ca2013_1_csv_v3.txt')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 45 }, { "cell_type": "code", "collapsed": false, "input": [ "# Let's list the columns in the loaded data frame\n", "raw_data.columns" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 46, "text": [ "Index(['County Code', 'District Code', 'School Code', 'Charter Number', 'Test Year', 'Subgroup ID', 'Test Type', 'CAPA Assessment Level', 'Total STAR Enrollment', 'Total Tested At Entity Level', 'Total Tested At Subgroup Level', 'Grade', 'Test Id', 'STAR Reported Enrollment/CAPA Eligible', 'Students Tested', 'Percent Tested', 'Mean Scale Score', 'Percentage Advanced', 'Percentage Proficient', 'Percentage At Or Above Proficient', 'Percentage Basic', 'Percentage Below Basic', 'Percentage Far Below Basic', 'Students with Scores'], dtype='object')" ] } ], "prompt_number": 46 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* We don't need all the columns, so we are going to keep a subset of them:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "raw_data = raw_data[['County Code', 'District Code', 'Grade', 'Test Id', 'Students Tested', 'Mean Scale Score']]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 47 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* The way data is encoded at the various levels is a little tricky. If say `'District Code'` is zero, the that row holds data aggregated for all districts. To get data aggregated at the county level we need to get rid of the rows where `'County Code'` is zero (those hold aggregated data for all of California), as well as all rows where `'District Code'` is not zero." ] }, { "cell_type": "code", "collapsed": false, "input": [ "raw_data = raw_data[(raw_data['County Code'] != 0) & (raw_data['District Code'] == 0)]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 48 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* We can remove the `'District Code'` column which we will not be needing any more." ] }, { "cell_type": "code", "collapsed": false, "input": [ "del raw_data['District Code']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 49 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Let's take a peek at the data_frame, to see how we are doing." ] }, { "cell_type": "code", "collapsed": false, "input": [ "raw_data[:5]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
County CodeGradeTest IdStudents TestedMean Scale Score
196 1 2 7 17260 368.2
197 1 2 8 17249 393.5
198 1 3 7 16276 357.2
199 1 3 8 16364 414.1
200 1 4 7 15936 385.9
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 50, "text": [ " County Code Grade Test Id Students Tested Mean Scale Score\n", "196 1 2 7 17260 368.2\n", "197 1 2 8 17249 393.5\n", "198 1 3 7 16276 357.2\n", "199 1 3 8 16364 414.1\n", "200 1 4 7 15936 385.9" ] } ], "prompt_number": 50 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* We want to identify the counties by name, not by code. That information is stored in the other file we downloaded, let's use it." ] }, { "cell_type": "code", "collapsed": false, "input": [ "entities = pd.read_csv('ca2013entities_csv.txt')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 51 }, { "cell_type": "code", "collapsed": false, "input": [ "# Let's take a look at the columns here\n", "entities.columns" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 52, "text": [ "Index(['County Code', 'District Code', 'School Code', 'Charter Number', 'Test Year', 'Type Id', 'County Name', 'District Name', 'School Name', 'Zip Code'], dtype='object')" ] } ], "prompt_number": 52 }, { "cell_type": "code", "collapsed": false, "input": [ "# Let's keep what we need only\n", "entities = entities[['County Code', 'District Code', 'County Name']]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 53 }, { "cell_type": "code", "collapsed": false, "input": [ "# And let's get rid of the non county specific data\n", "entities = entities[(entities['County Code'] != 0) & (entities['District Code'] == 0)]\n", "entities[:5]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
County CodeDistrict CodeCounty Name
1 1 0 Alameda
414 2 0 Alpine
420 3 0 Amador
438 4 0 Butte
548 5 0 Calaveras
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 54, "text": [ " County Code District Code County Name\n", "1 1 0 Alameda\n", "414 2 0 Alpine\n", "420 3 0 Amador\n", "438 4 0 Butte\n", "548 5 0 Calaveras" ] } ], "prompt_number": 54 }, { "cell_type": "code", "collapsed": false, "input": [ "# We can now get rid of the 'District Code' column\n", "del entities['District Code']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 55 }, { "cell_type": "code", "collapsed": false, "input": [ "# And make the 'County Code' column the index of the data frame\n", "entities.set_index('County Code', inplace=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 56 }, { "cell_type": "code", "collapsed": false, "input": [ "# Lastly, we use this as a LUT for the raw_data 'County Code'. NOtice the use of\n", "# .loc to ensure the indexing is label, not position, based\n", "county_names = entities.loc[raw_data['County Code']]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 57 }, { "cell_type": "code", "collapsed": false, "input": [ "# And we add this information as a new column...\n", "county_names.index = raw_data.index\n", "raw_data['County Name'] = county_names\n", "raw_data[:5]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
County CodeGradeTest IdStudents TestedMean Scale ScoreCounty Name
196 1 2 7 17260 368.2 Alameda
197 1 2 8 17249 393.5 Alameda
198 1 3 7 16276 357.2 Alameda
199 1 3 8 16364 414.1 Alameda
200 1 4 7 15936 385.9 Alameda
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 58, "text": [ " County Code Grade Test Id Students Tested Mean Scale Score County Name\n", "196 1 2 7 17260 368.2 Alameda\n", "197 1 2 8 17249 393.5 Alameda\n", "198 1 3 7 16276 357.2 Alameda\n", "199 1 3 8 16364 414.1 Alameda\n", "200 1 4 7 15936 385.9 Alameda" ] } ], "prompt_number": 58 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Similarly, we don't want the `'Test Id'`, but a descriptive name of the test. This information is a little hidden, but can be found in table C in the [*Research File Layout*](http://star.cde.ca.gov/star2013/research_fixfileformat.aspx) page of the STAR website. We need that table in a more readable format. You can find it as a CSV file in [`xxx`](), obtained by copy-pasting the HTML into a text editor, replacing tabs with commas, and enclosing in quotes the names that had commas in them" ] }, { "cell_type": "code", "collapsed": false, "input": [ "test_name_lut = pd.read_csv('test_names.csv')\n", "test_name_lut.set_index('Test ID', inplace=True)\n", "test_names = test_name_lut.loc[raw_data['Test Id']]\n", "test_names.index = raw_data.index\n", "raw_data['Test Name'] = test_names\n", "raw_data[:5]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
County CodeGradeTest IdStudents TestedMean Scale ScoreCounty NameTest Name
196 1 2 7 17260 368.2 Alameda CST English-Language Arts
197 1 2 8 17249 393.5 Alameda CST Mathematics
198 1 3 7 16276 357.2 Alameda CST English-Language Arts
199 1 3 8 16364 414.1 Alameda CST Mathematics
200 1 4 7 15936 385.9 Alameda CST English-Language Arts
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 59, "text": [ " County Code Grade Test Id Students Tested Mean Scale Score \\\n", "196 1 2 7 17260 368.2 \n", "197 1 2 8 17249 393.5 \n", "198 1 3 7 16276 357.2 \n", "199 1 3 8 16364 414.1 \n", "200 1 4 7 15936 385.9 \n", "\n", " County Name Test Name \n", "196 Alameda CST English-Language Arts \n", "197 Alameda CST Mathematics \n", "198 Alameda CST English-Language Arts \n", "199 Alameda CST Mathematics \n", "200 Alameda CST English-Language Arts " ] } ], "prompt_number": 59 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* It isn't immediately obvious, but the `'Mean Scale Score'` is not numeric. This is due to the use of `*` to indicate missing data. We could fix this by reloading the data using the `na_values` keyoword, i.e. `raw_data = pd.read_csv('ca2013_1_csv_v3.txt', na_values=['*'])`, but we can fix it without redoing all the previous work using the `.convert_objects` method." ] }, { "cell_type": "code", "collapsed": false, "input": [ "raw_data['Mean Scale Score'] = raw_data['Mean Scale Score'].convert_objects(convert_numeric=True)\n", "raw_data['Mean Scale Score'].dtype" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 60, "text": [ "dtype('float64')" ] } ], "prompt_number": 60 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* We still need the county income information. You can get that from [Wikipedia](http://en.wikipedia.org/wiki/California_locations_by_income#Counties), going through the copy and paste process. To spare you that, that same data can be found in [`income.csv`](https://raw.githubusercontent.com/jaimefrio/data_science_fun_conference_2015/master/income.csv). We can similarly add the new columns, this time using the county name as index for our look up. To actually get this to work, we are going to have to get rid of the rows with `'County Code'` set to 99 (the `'CA Education Authority'` rows)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "raw_data = raw_data[raw_data['County Code'] != 99]\n", "income = pd.read_csv('income.csv')\n", "income.set_index('County', inplace=True)\n", "income = income.loc[raw_data['County Name']]\n", "income.index = raw_data.index\n", "raw_data = raw_data.join(income)\n", "raw_data[:5]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
County CodeGradeTest IdStudents TestedMean Scale ScoreCounty NameTest NamePopulationPer capita incomeMedian household incomeMedian family income
196 1 2 7 17260 368.2 Alameda CST English-Language Arts 1494876 34937 70821 87012
197 1 2 8 17249 393.5 Alameda CST Mathematics 1494876 34937 70821 87012
198 1 3 7 16276 357.2 Alameda CST English-Language Arts 1494876 34937 70821 87012
199 1 3 8 16364 414.1 Alameda CST Mathematics 1494876 34937 70821 87012
200 1 4 7 15936 385.9 Alameda CST English-Language Arts 1494876 34937 70821 87012
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 61, "text": [ " County Code Grade Test Id Students Tested Mean Scale Score \\\n", "196 1 2 7 17260 368.2 \n", "197 1 2 8 17249 393.5 \n", "198 1 3 7 16276 357.2 \n", "199 1 3 8 16364 414.1 \n", "200 1 4 7 15936 385.9 \n", "\n", " County Name Test Name Population Per capita income \\\n", "196 Alameda CST English-Language Arts 1494876 34937 \n", "197 Alameda CST Mathematics 1494876 34937 \n", "198 Alameda CST English-Language Arts 1494876 34937 \n", "199 Alameda CST Mathematics 1494876 34937 \n", "200 Alameda CST English-Language Arts 1494876 34937 \n", "\n", " Median household income Median family income \n", "196 70821 87012 \n", "197 70821 87012 \n", "198 70821 87012 \n", "199 70821 87012 \n", "200 70821 87012 " ] } ], "prompt_number": 61 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* We also need the spending per pupil in every county. Data is available from the [California Department of Education](http://www.cde.ca.gov/ds/fd/ec/currentexpense.asp). The data for this year is in the Excel file [`currentexpense1213.xls`](https://github.com/jaimefrio/data_science_fun_conference_2015/raw/master/currentexpense1213.xls), which we can load into Pandas with the `read_excel` command and some minimal tweaking." ] }, { "cell_type": "code", "collapsed": false, "input": [ "expense_lut = pd.read_excel('currentexpense1213.xls',\n", " sheetname='County Averages', skiprows=5)\n", "expense_lut.set_index('County', inplace=True)\n", "expenses = expense_lut.loc[raw_data['County Name']]\n", "expenses.index = raw_data.index\n", "raw_data = raw_data.join(expenses)\n", "raw_data[:5]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
County CodeGradeTest IdStudents TestedMean Scale ScoreCounty NameTest NamePopulationPer capita incomeMedian household incomeMedian family incomeExpenditures (EDP 365)Current Expense ADACurrent Expense Per ADA
196 1 2 7 17260 368.2 Alameda CST English-Language Arts 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984
197 1 2 8 17249 393.5 Alameda CST Mathematics 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984
198 1 3 7 16276 357.2 Alameda CST English-Language Arts 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984
199 1 3 8 16364 414.1 Alameda CST Mathematics 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984
200 1 4 7 15936 385.9 Alameda CST English-Language Arts 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 62, "text": [ " County Code Grade Test Id Students Tested Mean Scale Score \\\n", "196 1 2 7 17260 368.2 \n", "197 1 2 8 17249 393.5 \n", "198 1 3 7 16276 357.2 \n", "199 1 3 8 16364 414.1 \n", "200 1 4 7 15936 385.9 \n", "\n", " County Name Test Name Population Per capita income \\\n", "196 Alameda CST English-Language Arts 1494876 34937 \n", "197 Alameda CST Mathematics 1494876 34937 \n", "198 Alameda CST English-Language Arts 1494876 34937 \n", "199 Alameda CST Mathematics 1494876 34937 \n", "200 Alameda CST English-Language Arts 1494876 34937 \n", "\n", " Median household income Median family income Expenditures (EDP 365) \\\n", "196 70821 87012 1.716407e+09 \n", "197 70821 87012 1.716407e+09 \n", "198 70821 87012 1.716407e+09 \n", "199 70821 87012 1.716407e+09 \n", "200 70821 87012 1.716407e+09 \n", "\n", " Current Expense ADA Current Expense Per ADA \n", "196 191964.88 8941.253984 \n", "197 191964.88 8941.253984 \n", "198 191964.88 8941.253984 \n", "199 191964.88 8941.253984 \n", "200 191964.88 8941.253984 " ] } ], "prompt_number": 62 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* The only thing left is computing the column `'Pct Test Grade'` we used to compute the weighted average. What this has is what percentage of the total population taking that test in that grade is represented in that row." ] }, { "cell_type": "code", "collapsed": false, "input": [ "grouped = raw_data.groupby(['Grade', 'Test Id'])['Students Tested']\n", "raw_data['Pct Test Grade'] = grouped.apply(lambda x: x / x.sum())\n", "raw_data[:5]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
County CodeGradeTest IdStudents TestedMean Scale ScoreCounty NameTest NamePopulationPer capita incomeMedian household incomeMedian family incomeExpenditures (EDP 365)Current Expense ADACurrent Expense Per ADAPct Test Grade
196 1 2 7 17260 368.2 Alameda CST English-Language Arts 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984 0.036883
197 1 2 8 17249 393.5 Alameda CST Mathematics 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984 0.036883
198 1 3 7 16276 357.2 Alameda CST English-Language Arts 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984 0.036686
199 1 3 8 16364 414.1 Alameda CST Mathematics 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984 0.036689
200 1 4 7 15936 385.9 Alameda CST English-Language Arts 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984 0.036812
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 63, "text": [ " County Code Grade Test Id Students Tested Mean Scale Score \\\n", "196 1 2 7 17260 368.2 \n", "197 1 2 8 17249 393.5 \n", "198 1 3 7 16276 357.2 \n", "199 1 3 8 16364 414.1 \n", "200 1 4 7 15936 385.9 \n", "\n", " County Name Test Name Population Per capita income \\\n", "196 Alameda CST English-Language Arts 1494876 34937 \n", "197 Alameda CST Mathematics 1494876 34937 \n", "198 Alameda CST English-Language Arts 1494876 34937 \n", "199 Alameda CST Mathematics 1494876 34937 \n", "200 Alameda CST English-Language Arts 1494876 34937 \n", "\n", " Median household income Median family income Expenditures (EDP 365) \\\n", "196 70821 87012 1.716407e+09 \n", "197 70821 87012 1.716407e+09 \n", "198 70821 87012 1.716407e+09 \n", "199 70821 87012 1.716407e+09 \n", "200 70821 87012 1.716407e+09 \n", "\n", " Current Expense ADA Current Expense Per ADA Pct Test Grade \n", "196 191964.88 8941.253984 0.036883 \n", "197 191964.88 8941.253984 0.036883 \n", "198 191964.88 8941.253984 0.036686 \n", "199 191964.88 8941.253984 0.036689 \n", "200 191964.88 8941.253984 0.036812 " ] } ], "prompt_number": 63 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Do note that the column names we have used in this appendix do not correspond to the wants in the tutorial above. That data was generated in R, and we just went with the flow. If we wanted to rename them we could of course do it." ] }, { "cell_type": "code", "collapsed": false, "input": [ "raw_data.rename(columns={'County Code': 'County.Code',\n", " 'Test Id': 'Test.Id',\n", " 'Students Tested': 'Students.Tested',\n", " 'Mean Scale Score': 'Mean.Scale.Score',\n", " 'County Name': 'County.Name',\n", " 'Test Name': 'Test.Name',\n", " 'Per capita income': 'per.capita.income',\n", " 'Median household income': 'median.household.income',\n", " 'Median family income': 'median.family.income',\n", " 'Expenditures (EDP 365)': 'Spend',\n", " 'Current Expense ADA': 'ADAttend',\n", " 'Current Expense Per ADA': 'Spend.Per.ADA',\n", " 'Pct Test Grade': 'Pct.Test.Grade'}, inplace=True)\n", "raw_data[:5]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
County.CodeGradeTest.IdStudents.TestedMean.Scale.ScoreCounty.NameTest.NamePopulationper.capita.incomemedian.household.incomemedian.family.incomeSpendADAttendSpend.Per.ADAPct.Test.Grade
196 1 2 7 17260 368.2 Alameda CST English-Language Arts 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984 0.036883
197 1 2 8 17249 393.5 Alameda CST Mathematics 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984 0.036883
198 1 3 7 16276 357.2 Alameda CST English-Language Arts 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984 0.036686
199 1 3 8 16364 414.1 Alameda CST Mathematics 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984 0.036689
200 1 4 7 15936 385.9 Alameda CST English-Language Arts 1494876 34937 70821 87012 1.716407e+09 191964.88 8941.253984 0.036812
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 64, "text": [ " County.Code Grade Test.Id Students.Tested Mean.Scale.Score \\\n", "196 1 2 7 17260 368.2 \n", "197 1 2 8 17249 393.5 \n", "198 1 3 7 16276 357.2 \n", "199 1 3 8 16364 414.1 \n", "200 1 4 7 15936 385.9 \n", "\n", " County.Name Test.Name Population per.capita.income \\\n", "196 Alameda CST English-Language Arts 1494876 34937 \n", "197 Alameda CST Mathematics 1494876 34937 \n", "198 Alameda CST English-Language Arts 1494876 34937 \n", "199 Alameda CST Mathematics 1494876 34937 \n", "200 Alameda CST English-Language Arts 1494876 34937 \n", "\n", " median.household.income median.family.income Spend ADAttend \\\n", "196 70821 87012 1.716407e+09 191964.88 \n", "197 70821 87012 1.716407e+09 191964.88 \n", "198 70821 87012 1.716407e+09 191964.88 \n", "199 70821 87012 1.716407e+09 191964.88 \n", "200 70821 87012 1.716407e+09 191964.88 \n", "\n", " Spend.Per.ADA Pct.Test.Grade \n", "196 8941.253984 0.036883 \n", "197 8941.253984 0.036883 \n", "198 8941.253984 0.036686 \n", "199 8941.253984 0.036689 \n", "200 8941.253984 0.036812 " ] } ], "prompt_number": 64 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* And to round it all off, we save our dataframe to a csv file." ] }, { "cell_type": "code", "collapsed": false, "input": [ "raw_data.to_csv('star_2013_cleaned_up.csv', index=False)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 65 } ], "metadata": {} } ] }