An end-to-end data auditing, exploratory analysis (EDA), and data integration project evaluating the municipal tree asset inventory for the London Borough of Camden Council to support environmental reporting and public tree initiatives.
Camden Council manages thousands of urban trees across parks, highways, and public estates. This project audits heterogeneous data sources (spreadsheets, SQL dumps, web-scraped taxonomies) to assess data health, resolve structural anomalies, and prepare datasets for public brochures and carbon/pollution impact reports.
- Multi-Format Ingestion: Merged Excel (
.xlsx), CSV (.csv), and JSON (.json) datasets into unified Pandas data structures. - Variable Classification: Audited qualitative (nominal/ordinal) and quantitative (discrete/continuous) variables across 23,000+ asset records.
- Data Quality Auditing: Systematic detection and isolation of missing values, duplicate asset identifiers, physical dimension outliers, and coordinate boundary breaches.
| Audit Dimension | Methodology | Key Findings & Actionable Insights |
|---|---|---|
| Missing Data & Nulls | .isnull(), .isin([0]) |
Identified missing environmental metrics (carbon storage, sequestration) and zero-value measurements requiring data imputation. |
| Physical Outliers | Interquartile range & Boxplots | Isolated extreme typographical errors in tree dimensions (e.g., recorded tree heights of 96m and 127m). |
| Duplicate Identifiers | Asset key frequency check | Detected 6 duplicated tree asset IDs across highways maintenance records. |
| Geolocation Anomalies | Easting / Northing scatter plots | Identified 8 tree assets located outside the Camden administrative boundary (Northing > 194,000). |
| Relational Integrity | Cross-dataset boolean masking | Flagged 23 trees missing environmental records and 76 scientific names lacking common-name mappings. |
- Language: Python 3
- Libraries:
pandas,matplotlib,seaborn - Techniques: Data profiling, statistical summaries (
describe()), outlier detection, boolean indexing masks, geospatial coordinate plotting, data integration & schema alignment.
/data: Raw datasets (camden_trees.xlsx,camden_trees_environmental.csv,tree_common_names.json)./notebooks: Main executable Jupyter Notebook (trees_in_camden_analysis.ipynb) containing all analytical steps./docs: Data governance documentation, data source register, and executive slide deck.
# 1. Clone the repository
git clone [https://github.com/rfilipeuk/camden-trees-data-quality.git](https://github.com/rfilipeuk/camden-trees-data-quality.git)
# 2. Navigate to project root
cd camden-trees-data-quality
# 3. Launch Jupyter Notebook
jupyter notebook notebooks/trees_in_camden_analysis.ipynb