Two Jupyter notebooks for practicing the core of a data analysis in Python: cleaning a real dataset, engineering features, finding patterns with charts, and testing a simple model with pandas, seaborn, and scikit-learn.
99,492 emergency calls from Montgomery County, PA, December 2015 to August 2016.
- Engineered the features the analysis needed: the call reason (EMS, Fire, or Traffic) from the call title, and hour, day, month, and date from the timestamp.
- Mapped when and why people call 911, with counts by reason, day, and month, daily trend lines, and an hour-by-weekday heatmap.
- Found that EMS calls are the most common (49%) and Fire the least, January is the busiest month, and call volume is lowest from about 2 to 5 AM and peaks from 3 to 5 PM.
20,000 patient records. The question: can survival rate be predicted from a patient's clinical characteristics?
- Cleaned the data: filled gaps, removed duplicates and impossible records (negative tumor sizes, survival rates outside 0 to 100), standardized text categories, and capped outliers at the IQR fences.
- Explored treatment and survival patterns by tumor type with a correlation heatmap, histograms, and boxplots.
- Fit a linear regression of survival rate on age, tumor size, and growth rate. The answer was no: R² was effectively 0, so these three features explain none of the variation in survival in this dataset.
Both notebooks include their outputs, so the charts show up directly on GitHub.
pip install pandas numpy matplotlib seaborn scikit-learn jupyter
jupyter notebookEach notebook loads its CSV by filename, so launch Jupyter from inside that project's folder.
Apache 2.0. See LICENSE.