Problem statement
I built this project while developing my Python/data-analysis skills and wanted the exercise to remain grounded in an environmental question. The dataset contains hourly air-quality observations across Bangladeshi cities over a long time horizon, allowing exploration of how pollution changes by year, month, season and city.
The analysis asks practical exploratory questions: Has air quality changed over time? Which seasons are worse? Which cities appear cleaner or more polluted? Which pollutants dominate the observed patterns? How often does the reported AQI fall into unhealthy categories?
Analysis process
Load & inspect
Read the large public dataset, inspect schema, city identifiers, pollutant fields and temporal coverage.
Clean & aggregate
Use Pandas/NumPy to transform timestamps, group by city and time period, and compute summary statistics suitable for trend and seasonal analysis.
Visualize
Build line, seasonal and city-level views with Matplotlib/Seaborn to identify patterns rather than relying only on single summary values.
Interrogate anomalies
When Dhaka's long-term series looked implausibly smooth before 2022 and changed abruptly around 2022, I checked identifiers, coordinates and external published sources instead of treating the dataset as automatically correct.
The most useful result was a data-quality problem
The repository documents an unexpected discontinuity in the Dhaka series. Before 2022, multiple pollutants appeared to rise in nearly linear patterns; around 2022, the pattern changed sharply, with carbon monoxide reported as increasing by roughly 150–300× while PM2.5/PM10 behavior also changed direction.
That finding is more important to my research development than producing another polished chart: it reinforced the need to verify environmental datasets before drawing physical conclusions from them.
Scope, limitations & next step
This is a learning and exploratory project, not a peer-reviewed air-pollution study. The source dataset's unexplained discontinuity limits defensible long-term inference. The notebook therefore separates exploratory observations from conclusions that would require a better validated source dataset.
A natural extension would be to rebuild the analysis with independently validated monitoring data, then integrate meteorological or population exposure variables and only after that consider forecasting.