{"id":22557520,"url":"https://github.com/vara-co/pandas-challenge","last_synced_at":"2026-05-17T03:45:56.213Z","repository":{"id":217360781,"uuid":"743684162","full_name":"vara-co/pandas-challenge","owner":"vara-co","description":"PyCitySchools - Analysis between budget and academic performance in schools","archived":false,"fork":false,"pushed_at":"2024-03-08T00:17:43.000Z","size":598,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-17T08:25:37.911Z","etag":null,"topics":["budget-analysis","data-analysis","jupiter-notebook","pandas-dataframe","python","school-performances"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vara-co.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-15T19:04:04.000Z","updated_at":"2024-02-09T04:54:47.000Z","dependencies_parsed_at":"2024-01-29T06:54:26.847Z","dependency_job_id":"5a488847-2cba-4a0b-88ca-59ee309e8f24","html_url":"https://github.com/vara-co/pandas-challenge","commit_stats":null,"previous_names":["vara-co/pandas-challenge"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vara-co/pandas-challenge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vara-co%2Fpandas-challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vara-co%2Fpandas-challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vara-co%2Fpandas-challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vara-co%2Fpandas-challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vara-co","download_url":"https://codeload.github.com/vara-co/pandas-challenge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vara-co%2Fpandas-challenge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33127001,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"online","status_checked_at":"2026-05-17T02:00:05.366Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["budget-analysis","data-analysis","jupiter-notebook","pandas-dataframe","python","school-performances"],"created_at":"2024-12-07T20:07:30.426Z","updated_at":"2026-05-17T03:45:56.185Z","avatar_url":"https://github.com/vara-co.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nDU - DA Module 4 challenge\n--------------------------------\n--------------------------------\nPANDAS CHALLENGE\n--------------------------------\n--------------------------------\nby Laura Vara\n--------------------------------\n![PySchools](https://github.com/vara-co/pandas-challenge/assets/152572519/a3f2b2d8-66f7-4b50-adfc-3337c6a2c2e7)\n\n\nNote: It is important that if you are going to use this code, the csv files\nare placed in a directory called Resources, in the same directory as your\nmain Jupyter Notebook file. Otherwise the code with the path were you intend to read \nyour csv file, needs to be updated to where the new path is located for the\ncsv file. Ideally they will be set\nin the same way they are found in this repository.\n\nThis repository consists of a challenge created using Pandas via Jupyter Notebook:\n---------------------------------\nINDEX\n---------------------------------\n1. Content of the repository\n2. Instructions for the Pandas Challenge\n3. References\n\n---------------------------------\nContent of the repository\n---------------------------------\n1. PyCitySchools Directory\n- ipynb_checkpoints Directory\n- Resources Directory:\n    - schools_complete.csv file\n    - students_complete.csv file\n- PyCitySchools_LMVS.ipynb        \u003c-- Jupyter Notebook file. \n- PyCitySchools_analysisLMVS.docx \u003c-- Written analysis formated in Microsoft Word. To view you might have to download the file.\n- PyCitySchools_analysisLMVS.txt  \u003c-- Written analysis formated in Text. This version allows you to view the results directly on GitHub\n\n----------------------------------\nInstructions for PyCitySchools\n----------------------------------\nIn this assignment, you’ll create and manipulate Pandas DataFrames to analyze school and standardized test data.\n\n**Background**\nYou are the new 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.\n\nAs 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.\n\n**Before You Begin**\nCreate a new repository for this project called pandas-challenge. Do not add this homework to an existing repository.\nClone the new repository to your computer.\nInside your local Git repository, create a folder for this homework assignment and name it PyCitySchools.\nAdd your Jupyter notebook to this folder. This will be the main script to run for analysis.\nPush these changes to GitHub or GitLab.\n\n**Files**\nDownload the following files to help you get started:\nModule 4 Challenge filesLinks to an external site.\n\n**Instructions**\nUsing 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.\nHint: Check out the sample solution called PyCitySchools_starter.ipynb located in the .zip file to review the desired format for this assignment.\n\n**District Summary**\nPerform the necessary calculations and then create a high-level snapshot of the district's key metrics in a DataFrame.\nInclude the following:\n- Total number of unique schools\n- Total students\n- Total budget\n- Average math score\n- Average reading score\n- % passing math (the percentage of students who passed math)\n- % passing reading (the percentage of students who passed reading)\n- % overall passing (the percentage of students who passed math AND reading)\n\n**School Summary**\nPerform the necessary calculations and then create a DataFrame that summarizes key metrics about each school.\nInclude the following:\n- School name\n- School type\n- Total students\n- Total school budget\n- Per student budget\n- Average math score\n- Average reading score\n- % passing math (the percentage of students who passed math)\n- % passing reading (the percentage of students who passed reading)\n- % overall passing (the percentage of students who passed math AND reading)\n\n**Highest-Performing Schools (by % Overall Passing)**\n- Sort the schools by % Overall Passing in descending order and display the top 5 rows.\n- Save the results in a DataFrame called \"top_schools\".\n\n**Lowest-Performing Schools (by % Overall Passing)**\n- Sort the schools by % Overall Passing in ascending order and display the top 5 rows.\n- Save the results in a DataFrame called \"bottom_schools\".\n\n**Math Scores by Grade**\n- Perform the necessary calculations to create a DataFrame that lists the average math score for students of each grade level (9th, 10th, 11th, 12th) at each school.\n  \n**Reading Scores by Grade**\n- Create a DataFrame that lists the average reading score for students of each grade level (9th, 10th, 11th, 12th) at each school.\n\n**Scores by School Spending**\n- Create a table that breaks down school performance based on average spending ranges (per student).\nUse the code provided below to create four bins with reasonable cutoff values to group school spending.\n    - spending_bins = [0, 585, 630, 645, 680]\n    - labels = [\"\u003c$585\", \"$585-630\", \"$630-645\", \"$645-680\"]\n- Use pd.cut to categorize spending based on the bins.\n\nUse the following code to then calculate mean scores per spending range.\n- spending_math_scores = school_spending_df.groupby([\"Spending Ranges (Per Student)\"])[\"Average Math Score\"].mean()\n- spending_reading_scores = school_spending_df.groupby([\"Spending Ranges (Per Student)\"])[\"Average Reading Score\"].mean()\n- spending_passing_math = school_spending_df.groupby([\"Spending Ranges (Per Student)\"])[\"% Passing Math\"].mean()\n- spending_passing_reading = school_spending_df.groupby([\"Spending Ranges (Per Student)\"])[\"% Passing Reading\"].mean()\n- overall_passing_spending = school_spending_df.groupby([\"Spending Ranges (Per Student)\"])[\"% Overall Passing\"].mean()\n\nUse the scores above to create a DataFrame called spending_summary.\nInclude the following metrics in the table:\n- Average math score\n- Average reading score\n- % passing math (the percentage of students who passed math)\n- % passing reading (the percentage of students who passed reading)\n- % overall passing (the percentage of students who passed math AND reading)\n\n**Scores by School Size**\n- Use the following code to bin the per_school_summary.\n    - size_bins = [0, 1000, 2000, 5000]\n    - labels = [\"Small (\u003c1000)\", \"Medium (1000-2000)\", \"Large (2000-5000)\"]\n- Use pd.cut on the \"Total Students\" column of the per_school_summary DataFrame.\n- Create a DataFrame called size_summary that breaks down school performance based on school size (small, medium, or large).\n\n**Scores by School Type**\n- Use the per_school_summary DataFrame from the previous step to create a new DataFrame called type_summary.\n- This new DataFrame should show school performance based on the \"School Type\".\n  \n**********************************************************************************\nInclude a written report that presents a cohesive written analysis that:\n• Summarizes the analysis \n• Draws two correct conclusions or comparisons from the calculations\n**********************************************************************************\n\n------------------------------------\nReferences for PyCitySchools\n------------------------------------\nMost of what's in this challenge, was covered in class.\nThe few things that either weren't or I had to reference to, are described\nwith it's source right below.\n\nNunique Method **.nunique()** resources:\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.nunique.html \n\nDrop Duplicates method **.drop_duplicates()**  resources:\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.drop_duplicates.html \n\nCategorical Data Type **astype(\"category\")**  resources:\nhttps://pandas.pydata.org/docs/user_guide/categorical.html \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvara-co%2Fpandas-challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvara-co%2Fpandas-challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvara-co%2Fpandas-challenge/lists"}