P2 Paris trees analysis (OpenClassrooms)
Find a file
2026-09-10 14:36:47 +02:00
data_analysis_functions.py minor changes 2025-11-11 08:39:23 +01:00
fetch-data.sh Documenter le chemin Nextcloud data/ (pas de partage public). 2026-09-09 21:31:39 +02:00
LICENSE Ajout licence AGPL-3.0 (identique au monorepo) 2026-09-09 23:27:42 +00:00
map_arrondissement.html minor changes 2025-11-11 08:39:23 +01:00
map_lieu.html minor changes 2025-11-11 08:39:23 +01:00
Paris_trees_analysis.ipynb minor changes 2025-11-11 08:39:23 +01:00
README.fr.md Bandeau README : phrase dans la langue cible, pas celle de la page. 2026-09-10 14:36:47 +02:00
README.md Bandeau README : phrase dans la langue cible, pas celle de la page. 2026-09-10 14:36:47 +02:00
soutenance_projet2.pptx minor changes 2025-11-11 08:39:23 +01:00

Source of truth : https://git.gregoiremureau.com/openclassroom-ai/oc-p02-paris-trees

git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p02-paris-trees.git
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p02-paris-trees.git

Dataset: see fetch-data.sh (out of git if large).

Paris Trees Analysis Project

📘 Ce projet est également disponible en français 🇫🇷

📋 Project Context

This project was carried out as part of a data analysis assignment for the City of Paris. The objective is to explore and analyze Paris' tree heritage from a public dataset listing the trees present across the territory of the capital.

The project focuses on the fundamentals of data science: data cleaning, anomaly handling, exploratory analysis, and statistical visualization to prepare the dataset for further analysis or business applications (urban management, biodiversity, planning).

🎯 Objectives

The main objectives of the project are:

  1. Explore the dataset: Understand the structure, variable types, and characteristics of Paris' trees
  2. Clean the data: Identify and handle missing, aberrant, and inconsistent values
  3. Analyze distributions: Perform univariate and bivariate analyses to understand the variables
  4. Visualize the data: Create charts and interactive maps to facilitate understanding
  5. Prepare the data: Provide a clean and usable dataset for future analyses

📊 Data

The data comes from the City of Paris Open Data platform and contains detailed information about the trees:

  • Geographic location (GPS coordinates, district, address)
  • Botanical characteristics (genus, species, variety)
  • Dimensions (height, circumference)
  • Status (remarkable tree, ownership)
  • Planting date

The dataset is included in the project under the name p2-trees-fr.csv.

Source: Open Data City of Paris - Trees

📁 Project Structure

├── Paris_trees_analysis.ipynb
├── soutenance_projet2.pptx
├── data_analysis_functions.py
├── map_arrondissement.html
├── map_lieu.html
└── p2-trees-fr.csv

1. Paris_trees_analysis.ipynb

Main Notebook for Paris Trees Analysis

This notebook is the core of the project and covers the entire exploratory analysis process:

Data loading and overview:

  • Import of the CSV file containing the tree data
  • Display of the first rows for a quick understanding
  • Inspection of the DataFrame structure (types, dimensions)

Initial exploratory analysis:

  • Use of pandas methods (info(), head(), describe(), value_counts())
  • Identification of the dataset size
  • Analysis of column types and missing values
  • Descriptive statistics for numerical variables

Identification and cleaning of anomalies:

  • Outliers:
    • Detection for tree circumference and height
    • Use of statistical methods (IQR, z-score)
    • Correction or replacement of extreme values with NaN
  • Missing values:
    • In-depth analysis of columns with NaN
    • Smart imputation for certain variables (domanialite, libelle_francais)
    • Use of correlated columns (genre, espece, variete) for imputation

Univariate analysis:

  • Quantitative variables: distribution of height, circumference, planting year
  • Categorical variables: breakdown by genus, species, district, remarkable status
  • Visualizations: histograms, boxplots, pie charts, barplots

Bivariate analysis:

  • Relationships between the remarquable status and quantitative variables (hauteur_m, circonference_cm)
  • Relationships between remarquable and categorical variables (espece, genre)
  • Correlations between numerical variables
  • Statistical tests to validate observations

Geographic analysis:

  • Distribution of trees by district
  • Interactive mapping of Paris trees
  • Identification of areas with high tree density

Export of cleaned data:

  • Saving the prepared DataFrame for further analyses

2. soutenance_projet2.pptx

Final Presentation

This presentation summarizes:

  • The context and objectives of the project
  • The exploration and data cleaning methodology
  • The main findings about Paris' tree heritage
  • Key statistical analyses and visualizations
  • Business insights (remarkable trees, distribution by district, dominant species)
  • Recommendations for managing the tree heritage
  • Perspectives for improvement and exploitation of the data

3. data_analysis_functions.py

Analysis Utility Functions Module

This Python module contains reusable functions for:

  • Data cleaning (duplicate removal, NaN handling)
  • Outlier identification (IQR, z-score, percentile methods)
  • Outlier treatment (replacement, removal, capping)
  • Variable transformation (normalization, encoding)
  • Generation of data quality reports
  • Standardized visualization functions

These functions were developed to be reusable on other data analysis projects.

4. map_arrondissement.html

Interactive Map of Trees by District

HTML file containing an interactive map (likely Folium or Plotly) that visualizes:

  • The distribution of trees by Paris district
  • Aggregated statistics by geographic area
  • Interactive visualizations allowing zooming and exploring the data
  • Potentially indicators on tree density, dominant species by district

5. map_lieu.html

Interactive Map of Trees by Location

HTML file containing a detailed interactive map that presents:

  • The precise location of individual trees across the Paris territory
  • Interactive markers with detailed information (species, height, circumference)
  • Filters to explore trees by characteristics
  • Clusters to improve readability in high-density areas

6. p2-trees-fr.csv

Paris Trees Dataset

CSV file containing raw or lightly preprocessed data on Paris trees, including:

  • Identifiers and references
  • Location (GPS coordinates, district, address)
  • Botanical characteristics (genus, species, variety, French name)
  • Dimensions (height in meters, circumference in cm)
  • Status (remarkable or not, ownership)
  • Planting date

🛠️ Technologies Used

  • Python: Main language for data analysis
    • pandas, numpy: data manipulation and analysis
    • matplotlib, seaborn: data visualization
    • folium or plotly: interactive mapping
    • scipy: statistical tests
    • scikit-learn: outlier detection
  • Jupyter Notebook: development and documentation
  • HTML/JavaScript: interactive maps

📈 Methodology

  1. Initial exploration: Understanding the structure and content of the dataset
  2. Cleaning: Identification and handling of missing and aberrant values
  3. Univariate analyses: Study of the distribution of each variable
  4. Bivariate analyses: Exploration of relationships between variables
  5. Geographic visualization: Interactive mapping of trees
  6. Documentation: Presentation of results and insights

🎯 Expected Results

  • ✅ In-depth understanding of Paris' tree heritage
  • ✅ Cleaned dataset ready for advanced analyses
  • ✅ Identification of remarkable trees and their characteristics
  • ✅ Insights into the geographic distribution of trees
  • ✅ Interactive maps to visually explore the data
  • ✅ Reusable Python module for similar analyses

💡 Key Points of the Project

Data Quality

Like any real-world dataset, this dataset presents challenges:

  • Missing values: some incomplete botanical characteristics
  • Outliers: data entry errors in measurements (impossible heights and circumferences)
  • Inconsistencies: variations in formats and naming

Remarkable Trees

Special attention was given to remarkable trees:

  • Characteristics differentiating remarkable trees from others
  • Relationships between dimensions (height, circumference) and remarkable status
  • Geographic distribution of remarkable trees

Geographic Analysis

The project integrates an important spatial dimension:

  • Distribution of trees by district
  • Identification of areas with high tree density
  • Interactive maps for intuitive exploration
  • Possibility of identifying geographic patterns

Urban Biodiversity

The analyses reveal information about biodiversity:

  • Most frequent tree species in Paris
  • Botanical diversity by district
  • Average age of trees (via planting dates)

🎓 Skills Developed

  • Loading and exploring tabular data
  • Cleaning real-world data with anomalies
  • Handling missing values with imputation strategies
  • Detection and treatment of outliers
  • Univariate and bivariate statistical analyses
  • Data visualization (charts and maps)
  • Development of reusable Python functions
  • Communication of data analysis results

👤 Author

Grégoire Mureau


This project illustrates the fundamentals of exploratory data analysis: exploration, cleaning, visualization, and communication of insights, applied to a real case of urban open data.