**Source of truth** : https://git.gregoiremureau.com/openclassroom-ai/oc-p02-paris-trees ```bash 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 πŸ“˜ This project is also available in [French πŸ‡«πŸ‡·](./README.fr.md) ## πŸ“‹ 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](https://opendata.paris.fr/explore/dataset/les-arbres/) ## πŸ“ 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.*