you’ll create and manipulate Pandas DataFrames to analyze school and standardized test data.
-
Create a new repository for this project called `pandas-challenge.
-
Clone the new repository to your computer.
-
Inside your local Git repository, create a folder and name it
PyCitySchools
. -
Add your Jupyter notebook to this folder. This will be the main script to run for analysis.
-
Push these changes to GitHub.
Having spent years analyzing financial records for big banks, you've finally scratched your idealistic itch and joined the education sector. Your latest role is Chief Data Scientist for your city's school district. In this capacity, you'll be helping the school board and mayor make strategic decisions regarding future school budgets and priorities.
As a first task, you've been asked to analyze the district-wide standardized test results. You'll be given access to every student's math and reading scores, as well as various information on the schools they attend. Your task is to aggregate the data to showcase obvious trends in school performance.
Using Pandas and Jupyter Notebook, create a report that includes the following data. Your report must include a written description of at least two observable trends based on the data.
Create a high-level snapshot, in a DataFrame, of the district's key metrics, including the following:
- Total schools
- Total students
- Total budget
- Average math score
- Average reading score
- % passing math (the percentage of students who passed math)
- % passing reading (the percentage of students who passed reading)
- % overall passing (the percentage of students who passed math AND reading)
Create a DataFrame that summarizes key metrics about each school, including the following:
- School name
- School type
- Total students
- Total school budget
- Per student budget
- Average math score
- Average reading score
- % passing math (the percentage of students who passed math)
- % passing reading (the percentage of students who passed reading)
- % overall passing (the percentage of students who passed math AND reading)
Create a DataFrame that highlights the top 5 performing schools based on % Overall Passing. Include the following metrics:
- School name
- School type
- Total students
- Total school budget
- Per student budget
- Average math score
- Average reading score
- % passing math (the percentage of students who passed math)
- % passing reading (the percentage of students who passed reading)
- % overall passing (the percentage of students who passed math AND reading)
Create a DataFrame that highlights the bottom 5 performing schools based on % Overall Passing. Include the following metrics:
- School name
- School type
- Total students
- Total school budget
- Per student budget
- Average math score
- Average reading score
- % passing math (the percentage of students who passed math)
- % passing reading (the percentage of students who passed reading)
- % overall passing (the percentage of students who passed math AND reading)
Create a DataFrame that lists the average math score for students of each grade level (9th, 10th, 11th, 12th) at each school.
Create a DataFrame that lists the average reading score for students of each grade level (9th, 10th, 11th, 12th) at each school.
Create a table that breaks down school performance based on average spending ranges (per student). Use your judgment to create four bins with reasonable cutoff values to group school spending. Include the following metrics in the table:
- Average math score
- Average reading score
- % passing math (the percentage of students who passed math)
- % passing reading (the percentage of students who passed reading)
- % overall passing (the percentage of students who passed math AND reading)
Create a table that breaks down school performance based on school size (small, medium, or large).
Create a table that breaks down school performance based on type of school (district or charter).