1308 lines
74 KiB
Plaintext
1308 lines
74 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "7acc26cb",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pandas as pd\n",
|
|
"import matplotlib.pyplot as plt"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "c821dd0a",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"df = pd.read_csv('https://raw.githubusercontent.com/CunyLaguardiaDataAnalytics/datasets/master/2014-15_To_2016-17_School-_Level_NYC_Regents_Report_For_All_Variables.csv')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "e080ce64",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(212331, 15)"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"df.shape"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "57651a37",
|
|
"metadata": {
|
|
"scrolled": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"School DBN object\n",
|
|
"School Name object\n",
|
|
"School Level object\n",
|
|
"Regents Exam object\n",
|
|
"Year int64\n",
|
|
"Total Tested int64\n",
|
|
"Mean Score object\n",
|
|
"Number Scoring Below 65 object\n",
|
|
"Percent Scoring Below 65 object\n",
|
|
"Number Scoring 65 or Above object\n",
|
|
"Percent Scoring 65 or Above object\n",
|
|
"Number Scoring 80 or Above object\n",
|
|
"Percent Scoring 80 or Above object\n",
|
|
"Number Scoring CR object\n",
|
|
"Percent Scoring CR object\n",
|
|
"dtype: object"
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"df.dtypes"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "7147a7d1",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"2015 2017\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Time range should be 2014-2015 to 2016-2017 school year. Does the 'Year' column reflect this range?\n",
|
|
"\n",
|
|
"print(df['Year'].min(), df['Year'].max())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "377a2d08",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array(['K-8', 'High school', 'Junior High-Intermediate-Middle',\n",
|
|
" 'Secondary School', 'K-12 all grades', 'Elementary'], dtype=object)"
|
|
]
|
|
},
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# What kind of schools are included?\n",
|
|
"\n",
|
|
"df['School Level'].unique()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"id": "897e335b",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"School DBN 0\n",
|
|
"School Name 0\n",
|
|
"School Level 0\n",
|
|
"Regents Exam 10\n",
|
|
"Year 0\n",
|
|
"Total Tested 0\n",
|
|
"Mean Score 0\n",
|
|
"Number Scoring Below 65 0\n",
|
|
"Percent Scoring Below 65 0\n",
|
|
"Number Scoring 65 or Above 0\n",
|
|
"Percent Scoring 65 or Above 0\n",
|
|
"Number Scoring 80 or Above 0\n",
|
|
"Percent Scoring 80 or Above 0\n",
|
|
"Number Scoring CR 0\n",
|
|
"Percent Scoring CR 0\n",
|
|
"dtype: int64"
|
|
]
|
|
},
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Is there any missing data?\n",
|
|
"\n",
|
|
"df.isna().sum()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"id": "e0ab351b",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>School DBN</th>\n",
|
|
" <th>School Name</th>\n",
|
|
" <th>School Level</th>\n",
|
|
" <th>Regents Exam</th>\n",
|
|
" <th>Year</th>\n",
|
|
" <th>Total Tested</th>\n",
|
|
" <th>Mean Score</th>\n",
|
|
" <th>Number Scoring Below 65</th>\n",
|
|
" <th>Percent Scoring Below 65</th>\n",
|
|
" <th>Number Scoring 65 or Above</th>\n",
|
|
" <th>Percent Scoring 65 or Above</th>\n",
|
|
" <th>Number Scoring 80 or Above</th>\n",
|
|
" <th>Percent Scoring 80 or Above</th>\n",
|
|
" <th>Number Scoring CR</th>\n",
|
|
" <th>Percent Scoring CR</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>18654</th>\n",
|
|
" <td>84M478</td>\n",
|
|
" <td>Inwood Academy for Leadership Charter School</td>\n",
|
|
" <td>Secondary School</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>90</td>\n",
|
|
" <td>55.6</td>\n",
|
|
" <td>61</td>\n",
|
|
" <td>67.8</td>\n",
|
|
" <td>29</td>\n",
|
|
" <td>32.2</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>6.7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>52756</th>\n",
|
|
" <td>84M478</td>\n",
|
|
" <td>Inwood Academy for Leadership Charter School</td>\n",
|
|
" <td>Secondary School</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>81</td>\n",
|
|
" <td>55.9</td>\n",
|
|
" <td>55</td>\n",
|
|
" <td>67.9</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>32.1</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>6.2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>52757</th>\n",
|
|
" <td>84M478</td>\n",
|
|
" <td>Inwood Academy for Leadership Charter School</td>\n",
|
|
" <td>Secondary School</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>9</td>\n",
|
|
" <td>53.4</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>66.7</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>33.3</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>11.1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>100865</th>\n",
|
|
" <td>84M478</td>\n",
|
|
" <td>Inwood Academy for Leadership Charter School</td>\n",
|
|
" <td>Secondary School</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>na</td>\n",
|
|
" <td>na</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>100866</th>\n",
|
|
" <td>84M478</td>\n",
|
|
" <td>Inwood Academy for Leadership Charter School</td>\n",
|
|
" <td>Secondary School</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>54</td>\n",
|
|
" <td>57.4</td>\n",
|
|
" <td>34</td>\n",
|
|
" <td>63</td>\n",
|
|
" <td>20</td>\n",
|
|
" <td>37</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>11.1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>100867</th>\n",
|
|
" <td>84M478</td>\n",
|
|
" <td>Inwood Academy for Leadership Charter School</td>\n",
|
|
" <td>Secondary School</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>31</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>na</td>\n",
|
|
" <td>na</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>138300</th>\n",
|
|
" <td>84M478</td>\n",
|
|
" <td>Inwood Academy for Leadership Charter School</td>\n",
|
|
" <td>Secondary School</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>54</td>\n",
|
|
" <td>57.3</td>\n",
|
|
" <td>34</td>\n",
|
|
" <td>63</td>\n",
|
|
" <td>20</td>\n",
|
|
" <td>37</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>9.3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>138301</th>\n",
|
|
" <td>84M478</td>\n",
|
|
" <td>Inwood Academy for Leadership Charter School</td>\n",
|
|
" <td>Secondary School</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>36</td>\n",
|
|
" <td>53.2</td>\n",
|
|
" <td>27</td>\n",
|
|
" <td>75</td>\n",
|
|
" <td>9</td>\n",
|
|
" <td>25</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2.8</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>209785</th>\n",
|
|
" <td>84M478</td>\n",
|
|
" <td>Inwood Academy for Leadership Charter School</td>\n",
|
|
" <td>Secondary School</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>12</td>\n",
|
|
" <td>59</td>\n",
|
|
" <td>9</td>\n",
|
|
" <td>75</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>25</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>8.3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>209786</th>\n",
|
|
" <td>84M478</td>\n",
|
|
" <td>Inwood Academy for Leadership Charter School</td>\n",
|
|
" <td>Secondary School</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>78</td>\n",
|
|
" <td>55.1</td>\n",
|
|
" <td>52</td>\n",
|
|
" <td>66.7</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>33.3</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>6.4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" School DBN School Name \\\n",
|
|
"18654 84M478 Inwood Academy for Leadership Charter School \n",
|
|
"52756 84M478 Inwood Academy for Leadership Charter School \n",
|
|
"52757 84M478 Inwood Academy for Leadership Charter School \n",
|
|
"100865 84M478 Inwood Academy for Leadership Charter School \n",
|
|
"100866 84M478 Inwood Academy for Leadership Charter School \n",
|
|
"100867 84M478 Inwood Academy for Leadership Charter School \n",
|
|
"138300 84M478 Inwood Academy for Leadership Charter School \n",
|
|
"138301 84M478 Inwood Academy for Leadership Charter School \n",
|
|
"209785 84M478 Inwood Academy for Leadership Charter School \n",
|
|
"209786 84M478 Inwood Academy for Leadership Charter School \n",
|
|
"\n",
|
|
" School Level Regents Exam Year Total Tested Mean Score \\\n",
|
|
"18654 Secondary School NaN 2015 90 55.6 \n",
|
|
"52756 Secondary School NaN 2015 81 55.9 \n",
|
|
"52757 Secondary School NaN 2015 9 53.4 \n",
|
|
"100865 Secondary School NaN 2015 5 s \n",
|
|
"100866 Secondary School NaN 2015 54 57.4 \n",
|
|
"100867 Secondary School NaN 2015 31 s \n",
|
|
"138300 Secondary School NaN 2015 54 57.3 \n",
|
|
"138301 Secondary School NaN 2015 36 53.2 \n",
|
|
"209785 Secondary School NaN 2015 12 59 \n",
|
|
"209786 Secondary School NaN 2015 78 55.1 \n",
|
|
"\n",
|
|
" Number Scoring Below 65 Percent Scoring Below 65 \\\n",
|
|
"18654 61 67.8 \n",
|
|
"52756 55 67.9 \n",
|
|
"52757 6 66.7 \n",
|
|
"100865 s s \n",
|
|
"100866 34 63 \n",
|
|
"100867 s s \n",
|
|
"138300 34 63 \n",
|
|
"138301 27 75 \n",
|
|
"209785 9 75 \n",
|
|
"209786 52 66.7 \n",
|
|
"\n",
|
|
" Number Scoring 65 or Above Percent Scoring 65 or Above \\\n",
|
|
"18654 29 32.2 \n",
|
|
"52756 26 32.1 \n",
|
|
"52757 3 33.3 \n",
|
|
"100865 s s \n",
|
|
"100866 20 37 \n",
|
|
"100867 s s \n",
|
|
"138300 20 37 \n",
|
|
"138301 9 25 \n",
|
|
"209785 3 25 \n",
|
|
"209786 26 33.3 \n",
|
|
"\n",
|
|
" Number Scoring 80 or Above Percent Scoring 80 or Above \\\n",
|
|
"18654 6 6.7 \n",
|
|
"52756 5 6.2 \n",
|
|
"52757 1 11.1 \n",
|
|
"100865 s s \n",
|
|
"100866 6 11.1 \n",
|
|
"100867 s s \n",
|
|
"138300 5 9.3 \n",
|
|
"138301 1 2.8 \n",
|
|
"209785 1 8.3 \n",
|
|
"209786 5 6.4 \n",
|
|
"\n",
|
|
" Number Scoring CR Percent Scoring CR \n",
|
|
"18654 0 0 \n",
|
|
"52756 0 0 \n",
|
|
"52757 0 0 \n",
|
|
"100865 na na \n",
|
|
"100866 0 0 \n",
|
|
"100867 na na \n",
|
|
"138300 0 0 \n",
|
|
"138301 0 0 \n",
|
|
"209785 0 0 \n",
|
|
"209786 0 0 "
|
|
]
|
|
},
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"df[df['Regents Exam'].isna()]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"id": "c9a49215",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Cleaning the data\n",
|
|
"\n",
|
|
"# There are ten missing values in the 'Regents Exam' column. One school is responsible.\n",
|
|
"# We'll drop that school from the dataset\n",
|
|
"\n",
|
|
"df.dropna(inplace = True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"id": "738ee993",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# We're interested in two score columns. We'll drop the other columns.\n",
|
|
"\n",
|
|
"drop_cols = ['Number Scoring Below 65', 'Percent Scoring Below 65', 'Number Scoring 65 or Above', 'Percent Scoring 65 or Above', 'Number Scoring 80 or Above', 'Number Scoring CR', 'Percent Scoring CR']\n",
|
|
"\n",
|
|
"df.drop(drop_cols, axis = 1, inplace = True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"id": "258073d0",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>School DBN</th>\n",
|
|
" <th>School Name</th>\n",
|
|
" <th>School Level</th>\n",
|
|
" <th>Regents Exam</th>\n",
|
|
" <th>Year</th>\n",
|
|
" <th>Total Tested</th>\n",
|
|
" <th>Mean Score</th>\n",
|
|
" <th>Percent Scoring 80 or Above</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>01M034</td>\n",
|
|
" <td>P.S. 034 Franklin D. Roosevelt</td>\n",
|
|
" <td>K-8</td>\n",
|
|
" <td>Common Core Algebra</td>\n",
|
|
" <td>2017</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>01M034</td>\n",
|
|
" <td>P.S. 034 Franklin D. Roosevelt</td>\n",
|
|
" <td>K-8</td>\n",
|
|
" <td>Living Environment</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>16</td>\n",
|
|
" <td>77.9</td>\n",
|
|
" <td>43.8</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>01M034</td>\n",
|
|
" <td>P.S. 034 Franklin D. Roosevelt</td>\n",
|
|
" <td>K-8</td>\n",
|
|
" <td>Living Environment</td>\n",
|
|
" <td>2016</td>\n",
|
|
" <td>9</td>\n",
|
|
" <td>74</td>\n",
|
|
" <td>22.2</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>01M140</td>\n",
|
|
" <td>P.S. 140 Nathan Straus</td>\n",
|
|
" <td>K-8</td>\n",
|
|
" <td>Common Core Algebra</td>\n",
|
|
" <td>2016</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>01M140</td>\n",
|
|
" <td>P.S. 140 Nathan Straus</td>\n",
|
|
" <td>K-8</td>\n",
|
|
" <td>Common Core Algebra</td>\n",
|
|
" <td>2017</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>s</td>\n",
|
|
" <td>s</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" School DBN School Name School Level \\\n",
|
|
"0 01M034 P.S. 034 Franklin D. Roosevelt K-8 \n",
|
|
"1 01M034 P.S. 034 Franklin D. Roosevelt K-8 \n",
|
|
"2 01M034 P.S. 034 Franklin D. Roosevelt K-8 \n",
|
|
"3 01M140 P.S. 140 Nathan Straus K-8 \n",
|
|
"4 01M140 P.S. 140 Nathan Straus K-8 \n",
|
|
"\n",
|
|
" Regents Exam Year Total Tested Mean Score \\\n",
|
|
"0 Common Core Algebra 2017 4 s \n",
|
|
"1 Living Environment 2015 16 77.9 \n",
|
|
"2 Living Environment 2016 9 74 \n",
|
|
"3 Common Core Algebra 2016 3 s \n",
|
|
"4 Common Core Algebra 2017 2 s \n",
|
|
"\n",
|
|
" Percent Scoring 80 or Above \n",
|
|
"0 s \n",
|
|
"1 43.8 \n",
|
|
"2 22.2 \n",
|
|
"3 s \n",
|
|
"4 s "
|
|
]
|
|
},
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"df.head()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"id": "1f05cd97",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"<class 'pandas.core.frame.DataFrame'>\n",
|
|
"Int64Index: 137101 entries, 1 to 212325\n",
|
|
"Data columns (total 8 columns):\n",
|
|
" # Column Non-Null Count Dtype \n",
|
|
"--- ------ -------------- ----- \n",
|
|
" 0 School DBN 137101 non-null object \n",
|
|
" 1 School Name 137101 non-null object \n",
|
|
" 2 School Level 137101 non-null object \n",
|
|
" 3 Regents Exam 137101 non-null object \n",
|
|
" 4 Year 137101 non-null int64 \n",
|
|
" 5 Total Tested 137101 non-null int64 \n",
|
|
" 6 Mean Score 137101 non-null float64\n",
|
|
" 7 Percent Scoring 80 or Above 137101 non-null float64\n",
|
|
"dtypes: float64(2), int64(2), object(4)\n",
|
|
"memory usage: 9.4+ MB\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# 'Mean Score' and 'Percent Scoring 80 or Above'\n",
|
|
"\n",
|
|
"# We expect integers or floats. Instead we have objects.\n",
|
|
"# Can we convert them to floats?\n",
|
|
"\n",
|
|
"# Yes, but first we have to deal with the non-numeric value 's'.\n",
|
|
"# We don't know what 's' means so let's make a subset\n",
|
|
"# then convert the scores to floats.\n",
|
|
"\n",
|
|
"df = df[df['Mean Score'] != 's']\n",
|
|
"df['Mean Score'] = pd.to_numeric(df['Mean Score'])\n",
|
|
"df = df[df['Percent Scoring 80 or Above'] != 's']\n",
|
|
"df['Percent Scoring 80 or Above'] = pd.to_numeric(df['Percent Scoring 80 or Above'])\n",
|
|
"df.info()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"id": "f86ea927",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>School DBN</th>\n",
|
|
" <th>School Name</th>\n",
|
|
" <th>School Level</th>\n",
|
|
" <th>Regents Exam</th>\n",
|
|
" <th>Year</th>\n",
|
|
" <th>Total Tested</th>\n",
|
|
" <th>Mean Score</th>\n",
|
|
" <th>Percent Scoring 80 or Above</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>148870</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>English</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>33</td>\n",
|
|
" <td>74.8</td>\n",
|
|
" <td>24.2</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2224</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>English</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>65</td>\n",
|
|
" <td>74.1</td>\n",
|
|
" <td>30.8</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>107118</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>English</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>31</td>\n",
|
|
" <td>71.8</td>\n",
|
|
" <td>25.8</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>107117</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>English</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>34</td>\n",
|
|
" <td>76.3</td>\n",
|
|
" <td>35.3</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>148869</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>English</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>25</td>\n",
|
|
" <td>75.3</td>\n",
|
|
" <td>40.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>59860</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>English</td>\n",
|
|
" <td>2015</td>\n",
|
|
" <td>49</td>\n",
|
|
" <td>73.3</td>\n",
|
|
" <td>26.5</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>148861</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2016</td>\n",
|
|
" <td>22</td>\n",
|
|
" <td>75.4</td>\n",
|
|
" <td>36.4</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>148860</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2016</td>\n",
|
|
" <td>10</td>\n",
|
|
" <td>70.0</td>\n",
|
|
" <td>30.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>107114</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2016</td>\n",
|
|
" <td>15</td>\n",
|
|
" <td>68.8</td>\n",
|
|
" <td>13.3</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2222</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2016</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>74.2</td>\n",
|
|
" <td>36.8</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>59854</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2016</td>\n",
|
|
" <td>22</td>\n",
|
|
" <td>76.8</td>\n",
|
|
" <td>45.5</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>23480</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2016</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>71.9</td>\n",
|
|
" <td>25.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>23479</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2016</td>\n",
|
|
" <td>30</td>\n",
|
|
" <td>74.9</td>\n",
|
|
" <td>40.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>107113</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2016</td>\n",
|
|
" <td>23</td>\n",
|
|
" <td>77.8</td>\n",
|
|
" <td>52.2</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>59857</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2017</td>\n",
|
|
" <td>45</td>\n",
|
|
" <td>77.5</td>\n",
|
|
" <td>55.6</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>107116</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2017</td>\n",
|
|
" <td>27</td>\n",
|
|
" <td>78.9</td>\n",
|
|
" <td>66.7</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2223</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2017</td>\n",
|
|
" <td>63</td>\n",
|
|
" <td>77.8</td>\n",
|
|
" <td>54.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>148864</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2017</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>76.7</td>\n",
|
|
" <td>50.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>148865</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2017</td>\n",
|
|
" <td>16</td>\n",
|
|
" <td>78.6</td>\n",
|
|
" <td>50.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>148866</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2017</td>\n",
|
|
" <td>34</td>\n",
|
|
" <td>76.9</td>\n",
|
|
" <td>52.9</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>148867</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2017</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>81.1</td>\n",
|
|
" <td>71.4</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>107115</th>\n",
|
|
" <td>02M605</td>\n",
|
|
" <td>Humanities Preparatory Academy</td>\n",
|
|
" <td>High school</td>\n",
|
|
" <td>Common Core English</td>\n",
|
|
" <td>2017</td>\n",
|
|
" <td>36</td>\n",
|
|
" <td>77.0</td>\n",
|
|
" <td>44.4</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" School DBN School Name School Level \\\n",
|
|
"148870 02M605 Humanities Preparatory Academy High school \n",
|
|
"2224 02M605 Humanities Preparatory Academy High school \n",
|
|
"107118 02M605 Humanities Preparatory Academy High school \n",
|
|
"107117 02M605 Humanities Preparatory Academy High school \n",
|
|
"148869 02M605 Humanities Preparatory Academy High school \n",
|
|
"59860 02M605 Humanities Preparatory Academy High school \n",
|
|
"148861 02M605 Humanities Preparatory Academy High school \n",
|
|
"148860 02M605 Humanities Preparatory Academy High school \n",
|
|
"107114 02M605 Humanities Preparatory Academy High school \n",
|
|
"2222 02M605 Humanities Preparatory Academy High school \n",
|
|
"59854 02M605 Humanities Preparatory Academy High school \n",
|
|
"23480 02M605 Humanities Preparatory Academy High school \n",
|
|
"23479 02M605 Humanities Preparatory Academy High school \n",
|
|
"107113 02M605 Humanities Preparatory Academy High school \n",
|
|
"59857 02M605 Humanities Preparatory Academy High school \n",
|
|
"107116 02M605 Humanities Preparatory Academy High school \n",
|
|
"2223 02M605 Humanities Preparatory Academy High school \n",
|
|
"148864 02M605 Humanities Preparatory Academy High school \n",
|
|
"148865 02M605 Humanities Preparatory Academy High school \n",
|
|
"148866 02M605 Humanities Preparatory Academy High school \n",
|
|
"148867 02M605 Humanities Preparatory Academy High school \n",
|
|
"107115 02M605 Humanities Preparatory Academy High school \n",
|
|
"\n",
|
|
" Regents Exam Year Total Tested Mean Score \\\n",
|
|
"148870 English 2015 33 74.8 \n",
|
|
"2224 English 2015 65 74.1 \n",
|
|
"107118 English 2015 31 71.8 \n",
|
|
"107117 English 2015 34 76.3 \n",
|
|
"148869 English 2015 25 75.3 \n",
|
|
"59860 English 2015 49 73.3 \n",
|
|
"148861 Common Core English 2016 22 75.4 \n",
|
|
"148860 Common Core English 2016 10 70.0 \n",
|
|
"107114 Common Core English 2016 15 68.8 \n",
|
|
"2222 Common Core English 2016 38 74.2 \n",
|
|
"59854 Common Core English 2016 22 76.8 \n",
|
|
"23480 Common Core English 2016 8 71.9 \n",
|
|
"23479 Common Core English 2016 30 74.9 \n",
|
|
"107113 Common Core English 2016 23 77.8 \n",
|
|
"59857 Common Core English 2017 45 77.5 \n",
|
|
"107116 Common Core English 2017 27 78.9 \n",
|
|
"2223 Common Core English 2017 63 77.8 \n",
|
|
"148864 Common Core English 2017 6 76.7 \n",
|
|
"148865 Common Core English 2017 16 78.6 \n",
|
|
"148866 Common Core English 2017 34 76.9 \n",
|
|
"148867 Common Core English 2017 7 81.1 \n",
|
|
"107115 Common Core English 2017 36 77.0 \n",
|
|
"\n",
|
|
" Percent Scoring 80 or Above \n",
|
|
"148870 24.2 \n",
|
|
"2224 30.8 \n",
|
|
"107118 25.8 \n",
|
|
"107117 35.3 \n",
|
|
"148869 40.0 \n",
|
|
"59860 26.5 \n",
|
|
"148861 36.4 \n",
|
|
"148860 30.0 \n",
|
|
"107114 13.3 \n",
|
|
"2222 36.8 \n",
|
|
"59854 45.5 \n",
|
|
"23480 25.0 \n",
|
|
"23479 40.0 \n",
|
|
"107113 52.2 \n",
|
|
"59857 55.6 \n",
|
|
"107116 66.7 \n",
|
|
"2223 54.0 \n",
|
|
"148864 50.0 \n",
|
|
"148865 50.0 \n",
|
|
"148866 52.9 \n",
|
|
"148867 71.4 \n",
|
|
"107115 44.4 "
|
|
]
|
|
},
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Filter the dataset. Let's have a look at the Humanities Preparatory Academy High School in Chelsea\n",
|
|
"\n",
|
|
"df[df['School DBN'] == '02M605'].sort_values(by = ['Year'])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"id": "1cc0ab0a",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"Year\n",
|
|
"2015 74.266667\n",
|
|
"2016 73.725000\n",
|
|
"2017 78.062500\n",
|
|
"Name: Mean Score, dtype: float64"
|
|
]
|
|
},
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# How did this school perform over three years?\n",
|
|
"\n",
|
|
"df[df['School DBN'] == '02M605'].groupby(['Year'])['Mean Score'].mean()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"id": "8ad44a32",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"Year\n",
|
|
"2015 70.562738\n",
|
|
"2016 70.612695\n",
|
|
"2017 72.814383\n",
|
|
"Name: Mean Score, dtype: float64"
|
|
]
|
|
},
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Other high schools in Manhattan\n",
|
|
"\n",
|
|
"df[(df['School DBN'] != '02M605')\n",
|
|
" & (df['School Level'] == 'High school')\n",
|
|
" & (df['School DBN'].str.contains('M'))\n",
|
|
" & (df['Regents Exam']).str.contains('English')\n",
|
|
" ].groupby(['Year'])['Mean Score'].mean()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"id": "3b420509",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"Year\n",
|
|
"2015 67.399191\n",
|
|
"2016 65.028724\n",
|
|
"2017 67.557191\n",
|
|
"Name: Mean Score, dtype: float64"
|
|
]
|
|
},
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Other high schools in other boroughs\n",
|
|
"\n",
|
|
"df[(df['School DBN'] != '02M605')\n",
|
|
" & (df['School Level'] == 'High school')\n",
|
|
" & (~df['School DBN'].str.contains('M'))\n",
|
|
" & (df['Regents Exam']).str.contains('English')\n",
|
|
" ].groupby(['Year'])['Mean Score'].mean()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"id": "e0e8e522",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<AxesSubplot:>"
|
|
]
|
|
},
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAE+CAYAAABC9C7yAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAoq0lEQVR4nO3deZyXZb3/8deHARlUNEDwKESIoYDMMOCwKIooii2EaKC5grikHgtPRqGmkqU/SovSk3XMhanU45YHxY6KBiLlhooKgpKdERDCcQEBJWG4fn/MlwlkmxtmmGHm9Xw8eNzf+7q3z3e4gDfXvUVKCUmSJFVdo9ouQJIkaVdjgJIkScrIACVJkpSRAUqSJCkjA5QkSVJGBihJkqSMGu/Mg+2zzz6pQ4cOO/OQkiRJ2+XFF198L6XUenPLdmqA6tChAzNnztyZh5QkSdouEfH2lpZ5Ck+SJCmjKgWoiPiPiJgTEbMj4u6IyI+IlhExJSLm56YtarpYSZKkumCbASoi2gLfBopTSt2APOAbwFjgyZRSJ+DJ3LwkSVK9V9VroBoDzSJiDbA7sBi4DBiQW14CTAO+X831SbusNWvWsGjRIlavXl3bpUjVIj8/n3bt2tGkSZPaLkWqddsMUCmldyLiBmAB8AnweErp8YjYN6W0JLfOkohos7ntI+J84HyA9u3bV1/lUh23aNEimjdvTocOHYiI2i5H2iEpJd5//30WLVrEAQccUNvlSLWuKqfwWgAnAAcA+wN7RMQZVT1ASumWlFJxSqm4devN3gko1UurV6+mVatWhifVCxFBq1atHFGVcqpyEfmxwP+llMpSSmuAPwKHA0sjYj+A3PTdmitT2jUZnlSf2J+lf6lKgFoA9I2I3aPiT89AYC7wEDAit84IYFLNlChpe+25554bzU+cOJGLL764lqqBww8/HIDS0lLuuuuuyvaZM2fy7W9/e4f336FDBwoKCujevTuDBg3iH//4xw7vU5I2pyrXQD0XEfcDLwFrgZeBW4A9gXsj4hwqQtbwmixU2tV1GPtIte6vdPxXq3V/O8Nf//pX4F8B6rTTTgOguLiY4uLiajnG1KlT2Weffbj88su57rrruPHGGyuXpZRIKdGokY/Ak7RjqvS3SErp6pRS55RSt5TSmSmlf6aU3k8pDUwpdcpNP6jpYiVVn5EjR3L//fdXzq8frZo2bRpHHXUUJ598MgcddBBjx47lzjvvpHfv3hQUFPDWW28B8PDDD9OnTx969OjBsccey9KlSwEYN24co0aNYsCAAXTs2HGjALP+GGPHjuXpp5+mqKiICRMmMG3aNAYPHgzAqlWrGDVqFL169aJHjx5MmlQxuD1nzhx69+5NUVERhYWFzJ8/f6vfr3///vztb3+jtLSULl26cNFFF9GzZ08WLlzI9ddfT69evSgsLOTqq68GKkJd586dGTFiBIWFhQwbNoyPP/64On7UkuqhnfoqF0k71yeffEJRUVHl/AcffMCQIUO2ud0rr7zC3LlzadmyJR07duTcc8/l+eef55e//CU33XQTv/jFLzjiiCN49tlniQhuvfVWfvrTn/Kzn/0MgHnz5jF16lRWrFjBwQcfzIUXXrjRre/jx4/nhhtuYPLkyUBFaFvv2muv5ZhjjuH2229n2bJl9O7dm2OPPZbf/OY3jB49mtNPP51PP/2U8vLyrX6HyZMnU1BQAMAbb7zBHXfcwc0338zjjz/O/Pnzef7550kpMWTIEKZPn0779u154403uO222+jXrx+jRo3i5ptv5rvf/W5Vf9zaBVT3SHAWu+KosbbMACXVY82aNWPWrFmV8xMnTqzS+yh79erFfvvtB8CBBx7IoEGDACgoKGDq1KlAxWMaTjnlFJYsWcKnn3660a3tX/3qV2natClNmzalTZs2LF26lHbt2lWp5scff5yHHnqIG264Aai4m3HBggUcdthhXHvttSxatIiTTjqJTp06bXb7o48+mry8PAoLC/nxj3/MsmXL+MIXvkDfvn0r9//444/To0cPAFauXMn8+fNp3749n//85+nXrx8AZ5xxBjfeeKMBStJmGaCkBqpx48asW7cOqLg26NNPP61c1rRp08rPjRo1qpxv1KgRa9euBeBb3/oW3/nOdxgyZAjTpk1j3Lhxm90+Ly+vcpuqSCnxwAMPcPDBB2/U3qVLF/r06cMjjzzC8ccfz6233soxxxyzyfbrr4Fab9myZeyxxx4b7f+yyy7jm9/85kbblZaWbnKXmXedSdoSr6SUGqgOHTrw4osvAjBp0iTWrFmTafvly5fTtm1bAEpKSjJt27x5c1asWLHZZccffzw33XQTKSUAXn75ZQD+/ve/07FjR7797W8zZMgQXn311UzH3HD/t99+OytXrgTgnXfe4d13K57CsmDBAp555hkA7r77bo444ojtOoak+s8AJTVQ5513Hk899RS9e/fmueee22iUpirGjRvH8OHDOfLIIzca8amKwsJCGjduTPfu3ZkwYcJGy6688krWrFlDYWEh3bp148orrwTgnnvuoVu3bhQVFTFv3jzOOuusTMdcb9CgQZx22mkcdthhFBQUMGzYsMow16VLF0pKSigsLOSDDz7gwgsv3K5jSKr/Yv3/8naG4uLiVJXrL6T6YO7cuXTp0qW2y1AVlZaWMnjwYGbPnl3bpdRpu3q/9iJyZRERL6aUNvuMFUegJEmSMjJASRIV14Q5+iSpqgxQkiRJGRmgJEmSMjJASZIkZWSAkiRJysgAJdVjixYt4oQTTqBTp04ceOCBjB49uvKJ47NmzeJPf/pT5brjxo2rfH1KdRg5ciS77777Rg/MHD16NBHBe++9t9373PAFyNuybNkybr755sr50tJS7rrrru06dlXrWf/C5MWLFzNs2LBt7mP9+pJ2Lb7KpQp8boiqxbi9q3l/y7e6OKXESSedxIUXXsikSZMoLy/n/PPP54orruD6669n1qxZzJw5k6985SvVUk55eTl5eXkbtX3xi19k0qRJnHHGGaxbt46pU6dWPr18Z1gfoC666CLgXwHqtNNOq/Fj77///pnCnqRdiyNQUj315z//mfz8fM4++2yg4p10EyZM4Pbbb+ejjz7iqquu4p577qGoqIh77rkHgNdff50BAwbQsWNHbrzxxsp9/eEPf6B3794UFRXxzW9+k/LycqBi9OSqq66iT58+la9A2dCpp55aue9p06bRr18/Gjf+1//bhg4dyqGHHsohhxzCLbfcUtm+5557csUVV9C9e3f69u3L0qVLK5dNnz6dww8/nI4dO1YGlJUrVzJw4EB69uxJQUEBkyZNAmDs2LG89dZbFBUVMWbMGMaOHcvTTz9NUVEREyZMoLS0lCOPPJKePXvSs2dP/vrXv1bWOmDAAIYNG0bnzp05/fTTyfrQ4dLSUrp16wbAxx9/zMknn0xhYSGnnHIKffr02eilzpv7rvfddx/dunWje/fu9O/fP9OxJdU8R6CkemrOnDkceuihG7XttddetG/fntLSUq655hpmzpzJf/7nfwJw4XfG8tKrs7n1nodZtWolJxzVi35fO5WFpX/ntyV/4Nf3PEKTJk249vJLGX/Tb/nasG+watUqmu93AL994DEAXl20rPJYH676lN1a7s/b7/yDGbNL+dWtJXz1xJN5aPIjzFm8nBarG3Ppjyawd4sWdGrVlF69evH1r3+dVq1asWrVKvr27cu1117L9773PX7729/ygx/8AIAlS5YwY8YM5s2bx5AhQxg2bBj5+fk8+OCD7LXXXrz33nv07duXIUOGMH78eGbPns2sWbOAimB0ww03MHnyZKAi2EyZMoX8/Hzmz5/PqaeeWhlsXn75ZebMmcP+++9Pv379+Mtf/rLZd+ONGTOGH//4x1v9vbj55ptp0aIFr776KrNnz6aoqKhy2Za+6zXXXMNjjz1G27ZtWbZs2Rb3Lal2GKCkeiqlRERUuR3gyGMGsVvTpuzWtCkt92nNB++9y3N/eYq5r77C6YOPAWD16tW03Kc1UDGqdexXhmy1joFfHsyjDz3Aay/P5MrxG7/37q47/os/PzqZ/CZ5LFy4kPnz59OqVSt22203Bg8eDMChhx7KlClTKrcZOnQojRo1omvXrpWjNSklLr/8cqZPn06jRo145513Nhq12pI1a9Zw8cUXM2vWLPLy8njzzTcrl/Xu3Zt27doBUFRURGlp6WYD1PXXX7/RtU6bu6ZpxowZjB49GoBu3bpRWFhYuWxL37Vfv36MHDmSk08+mZNOOmmb30XSzmWAkuqpQw45hAceeGCjto8++oiFCxdy4IEH8uKLL26yzW67Na383KhRI9auLScl+NrwbzB67NWbrt80f5Prnj7rS0NO4htfHsDXhp1Ko0b/umrghWdm8OyMafxu0uP06bQ/AwYMYPXq1QA0adKkMuTl5eWxdu3ayu2aNv1XjetPq915552UlZXx4osv0qRJEzp06FC5r62ZMGEC++67L6+88grr1q0jPz9/s8f5bA1Zbe3035a+629+8xuee+45HnnkEYqKipg1axatWrXa7hokVS8DlFRPDRw4kLFjx/K73/2Os846i/Lyci699NLKu+OaN2++0R1yW9KnX38uOed0zjj3Ilrt05rlH37IqlUr2L9d+yrVsV/bz3Px935A3yMGbNS+8qOP2Gvvz9Gs2e7MmzePZ599dnu+JgDLly+nTZs2NGnShKlTp/L2228DbPIdPzu/fPly2rVrR6NGjSgpKam8tqu6HXHEEdx7770cffTRvP7667z22mvb3Oatt96iT58+9OnT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\n",
|
|
"text/plain": [
|
|
"<Figure size 720x360 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Visualization\n",
|
|
"\n",
|
|
"# Dictionary made by manually entering data from three previous cells.\n",
|
|
"# I wish I knew how to do this programmatically.\n",
|
|
"\n",
|
|
"d = {'Humanities Prep': [74.266667, 73.725000, 78.062500],\n",
|
|
" 'Other Manhattan Highs': [70.562738, 70.612695, 72.814383],\n",
|
|
" 'High Schools Other Boroughs': [67.399191, 65.028724, 67.557191]}\n",
|
|
"new_df = pd.DataFrame(data = d, index = ['2015', '2016', '2017'])\n",
|
|
"new_df.plot(kind = 'bar', figsize = (10, 5))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"id": "207154ad",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# a more elegant way to create the dictionary\n",
|
|
"\n",
|
|
"test0 = df[df['School DBN'] == '02M605'].groupby(['Year'])['Mean Score'].mean()\n",
|
|
"test1 = df[(df['School DBN'] != '02M605')\n",
|
|
" & (df['School Level'] == 'High school')\n",
|
|
" & (df['School DBN'].str.contains('M'))\n",
|
|
" & (df['Regents Exam']).str.contains('English')\n",
|
|
" ].groupby(['Year'])['Mean Score'].mean()\n",
|
|
"test2 = df[(df['School DBN'] != '02M605')\n",
|
|
" & (df['School Level'] == 'High school')\n",
|
|
" & (~df['School DBN'].str.contains('M'))\n",
|
|
" & (df['Regents Exam']).str.contains('English')\n",
|
|
" ].groupby(['Year'])['Mean Score'].mean()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 31,
|
|
"id": "19a88bc3",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# 3 dictionaries to 3 dataframes\n",
|
|
"\n",
|
|
"dict0 = pd.DataFrame.from_dict(test0)\n",
|
|
"dict1 = pd.DataFrame.from_dict(test1)\n",
|
|
"dict2 = pd.DataFrame.from_dict(test2)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 51,
|
|
"id": "7349a50d",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# join dataframes dict0 and dict1\n",
|
|
"\n",
|
|
"temp = dict0.join(dict1, lsuffix='_Humanities_Prep', rsuffix='_Other_Manhattan_Highs')\n",
|
|
"\n",
|
|
"# join temp and dict2\n",
|
|
"\n",
|
|
"newest_df = temp.join(dict2)\n",
|
|
"\n",
|
|
"# rename last column\n",
|
|
"\n",
|
|
"newest_df = newest_df.rename(columns = {'Mean Score': 'High Schools Other Boroughs'})"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 53,
|
|
"id": "6d645276",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<AxesSubplot:xlabel='Year'>"
|
|
]
|
|
},
|
|
"execution_count": 53,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAFMCAYAAAAEHoI4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAx0ElEQVR4nO3dd3hUZfrG8fthQLp0EEEJIgIxwYChCSJFiq4FVESkRJGiogK7oqiLxM4Ku7rY2dWlCCGIBRZ2lSIxorQAoSNYQhF+EhFQEJAk7++PDLPBBJIDEzIk38915ZqZU5+ZOSE37znnfc05JwAAAORdsYIuAAAA4FxDgAIAAPCIAAUAAOARAQoAAMAjAhQAAIBHBCgAAACPip/NnVWtWtWFhYWdzV0CAACclpUrV/7onKuW07yzGqDCwsKUlJR0NncJAABwWsxs28nmcQoPAADAozwFKDMbbmYbzGy9mcWZWSkzq2xm881sq/+xUn4XCwAAEApyDVBmVkvSQ5KinXMRknyS7pA0UtJC51x9SQv9rwEAAAq9vF4DVVxSaTM7JqmMpF2SHpPUzj9/kqQESY8GuT7grDp27Jh27typI0eOFHQpQKFWqlQp1a5dWyVKlCjoUoDTkmuAcs59b2bjJG2XdFjSPOfcPDOr4Zzb7V9mt5lVz2l9MxskaZAkXXzxxcGrHMgHO3fuVPny5RUWFiYzK+hygELJOae9e/dq586dqlu3bkGXA5yWvJzCqyTpZkl1JV0oqayZ9cnrDpxzE5xz0c656GrVcrwTEAgZR44cUZUqVQhPQD4yM1WpUoWWXpzT8nIR+bWSvnPOpTrnjkn6QNJVkn4ws5qS5H/ck39lAmcP4QnIf/ye4VyXlwC1XVJLMytjmUd8R0mbJM2WFONfJkbSrPwpEQAAILTk5RqoZWY2U9IqSWmSVkuaIKmcpBlmdo8yQ1aP/CwUKAhhI+cGdXspY/6Q6zJmpj59+mjKlCmSpLS0NNWsWVMtWrTQnDlzglpPVkuXLtXQoUN19OhRHT16VD179lRsbGy+7S8nxzvbrVq1qiQpISFB48aNy9f3fSrXX3+9pk2bJkmaNm2a7r//fknSrl279NBDD2nmzJlB2U9YWJjKly+vYsWKqUaNGpo8ebIuuOCCoGwbQP7IUz9QzrnRzrmGzrkI51xf59xR59xe51xH51x9/+NP+V0sUBSULVtW69ev1+HDhyVJ8+fPV61atfJ9vzExMZowYYKSk5O1fv163X777We8zfT09CBUVnD+85//qGLFitq/f79ef/31wPQLL7wwaOHpuEWLFmnNmjWKjo7W888/f8I855wyMjKCuj8AZ+asDuUCIG+uu+46zZ07V7fddpvi4uLUq1cvff7555KkQ4cO6cEHH9S6deuUlpam2NhY3XzzzUpJSVHfvn116NAhSdKrr76qq666SgkJCYqNjVXVqlW1fv16XXnllXr33XezXYOyZ88e1axZU5Lk8/kUHh4uSTp48KAefPBBJSUlycw0evRo3XrrrYqLi9Pzzz8v55z+8Ic/6C9/+YskqVy5cvrjH/+oTz75RH/961+VkpKi8ePH67ffflOLFi30+uuvy+fzef5MYmNjVa5cOT388MOSpIiIiEDLVNeuXdWmTRstXbpUV1xxhe6++26NHj1ae/bs0dSpU9W8eXMtX75cw4YN0+HDh1W6dGn961//UoMGDTRx4kTNnj1bv/76q7755ht1795dL774oqT/tYiNHDlS33zzjaKiotSpUycNGTJEN9xwg9avX6/09HSNHDlSCQkJOnr0qIYMGaLBgwdr9+7d6tmzp37++WelpaXpjTfe0NVXX53r+2zbtq3Gjx+vlJQUXXfddWrfvr2WLFmijz76SDNmzNCMGTN09OhRde/eXU899ZRSUlLUtWtXtWjRQqtXr9Zll12myZMnq0yZMp4/46Ig2K3KXuSlBRrnDoZyAULQHXfcoenTp+vIkSNau3atWrRoEZj33HPPqUOHDlqxYoUWLVqkESNG6NChQ6pevbrmz5+vVatWKT4+Xg899FBgndWrV+vll1/Wxo0b9e233+qLL77Its/hw4erQYMG6t69u956663AHVLPPPOMKlSooHXr1mnt2rXq0KGDdu3apUcffVSffvqpkpOTtWLFCn300UeSMgNeRESEli1bpipVqig+Pl5ffPGFkpOT5fP5NHXq1FO+9/bt2ysqKkpRUVEaMGBAnj6vr7/+WkOHDtXatWu1efNmTZs2TYsXL9a4ceMCrTkNGzZUYmKiVq9eraefflqPP/54YP3k5GTFx8dr3bp1io+P144dO07Y/pgxY1SvXj0lJydr7NixJ8x7++23VaFCBa1YsUIrVqzQP/7xD3333XeaNm2aunTpouTkZK1Zs0ZR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IJ/Pp2uvv0mStOyLz7Rp7Rr1vqFDoNbKVavl+J6dczKzPE+XpI4dO6pChcwL/cPDw7Vt2zbt379fGzduVOvWrSVJv/32W2AAXknq2bNnjtv6vVtuuUXTp0/XsmXL9NZbb50wb/z48frwww8lSTt27NDWrVtVpUoVnXfeeYFWmyuvvFLz588PrNOtWzcVK1ZM4eHhgZYp55wef/xxJSYmqlixYvr+++9PaLU6mWPHjp3Rd53V1KlTA6fqjo+r93uLFy8OvN+uXbuqUqVKgXl169ZVVFRU4D2npKRIyjyGe/furW7duqlbt265vqciIdg3pXjaNzewBBsBCghRN910kx5++GElJCQEWjikzD+677//vho0aHDC8rGxsapRo4bWrFmjjIwMlSpVKjCvZMmSgec+n09paWk57vOisLq6KOwe3XJnjNpFXar9+37KDDA6McCc6rTQeSVLBVqRnJNu7HGHho4cfdLlj7v88su1evVqZWRkqFixzMbxjIwMrVmzRo0aNdLOnTuzrZPT+3LOqVOnToqLi8txP2XLls21FimzFbBp06aKiYkJ1CNlntpasGCBlixZojJlyqhdu3Y64m+tK1GiRCDs/f5zzlrr8c9v6tSpSk1N1cqVK1WiRAmFhYUFtnUqL7300hl/116c6vv+/f6On8KbO3euEhMTNXv2bD3zzDPasGHDCadBgXMdp/CAU4k9ENwfD/r3768nn3wy2zhpXbp00SuvvBL4o7Z69WpJmXew1axZU8WKFdOUKVNOeq3RySQu/CSwze3ffSNfMZ/Kn19Brdq21/RJ/zsV9fP+/YpscqVWLv1C+37aq/T0dH08631Ft2ydbZstWrfVgrmztffH1Mwa9+3Trp3bsy0nZV643aRJEz377LOBac8++6yaNm2qSy+9VOXLlz/hzriTadmypb744gt9/fXXkqRff/31hBaavLr44ov13HPPBS7kPu7AgQOqVKmSypQpo82bN2vp0qWet511W9WrV1eJEiW0aNEibdu2TZKyvdffvz7T79qrNm3aaMaMGZIyW0D37dt3yuUzMjK0Y8cOtW/fXi+++KL2798fuA4NKCwIUECIql27toYOHZpt+qhRo3Ts2DE1btxYERERgYuu77//fk2aNEktW7bUli1b8tzSctyc9+N10zXNdHuXq/XE0Hv1/PgJ8vl8GvTQw/r5wH7d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\n",
|
|
"text/plain": [
|
|
"<Figure size 720x360 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Visualization 2\n",
|
|
"\n",
|
|
"newest_df.plot(kind = 'bar', figsize = (10, 5))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"id": "6749209e",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Conclusions\n",
|
|
"\n",
|
|
"# We lost a lot of data from the dataset by dropping the 's' values. Maybe we should have done mean imputation.\n",
|
|
"# Humanities Prep Academy scored higher in the English Regents exam than other high schools in Manhattan\n",
|
|
"# and higher than schools in other boroughs, for every year surveyed."
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.10.4"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|