End-to-end EDA project on hourly weather data (Canada 2012) | Exploring temperature, visibility, wind, and precipitation patterns using Python, Pandas, Matplotlib & Seaborn
A structured EDA project on hourly weather observations from Canada (2012), completed as part of the Python for Data Analysis course.
Explore weather patterns across all seasons, answer 15 analytical questions, and uncover key relationships between temperature, visibility, wind speed, humidity, and pressure.
- Source: Hourly Weather Observations — Canada 2012
- Records: 8,784 hourly readings
- Features: Date/Time, Temp_C, Dew Point Temp_C, Rel Hum_%, Wind Speed_km/h, Visibility_km, Press_kPa, Weather_Condition
| Library | Purpose |
|---|---|
| Pandas | Data loading, cleaning, and exploration |
| Matplotlib | Base plotting |
| Seaborn | Statistical visualizations |
- Imports & Setup
- Load Dataset
- First Look (head / tail)
- Data Structure & Info
- Data Quality Check
- Descriptive Statistics
- Column Renaming
- Categorical Exploration
- Analytical Questions (Q1 → Q15)
- Visualizations
- Univariate (Numerical + Categorical)
- Bivariate (Num vs Num · Num vs Cat · Cat vs Cat)
- Multivariate
- Correlation Heatmap
- Pairplot
- Key Insights
Find all distinct wind speed measurements recorded in the dataset.
Count the total occurrences of clear weather conditions.
Count records where wind speed equals 4 km/h precisely.
Identify and count all empty cells across all columns.
Clean up column naming for clarity and avoid ambiguity.
Calculate the average visibility across all hourly readings.
Measure how much atmospheric pressure fluctuates in this dataset.
Quantify the spread of humidity values throughout the year.
Filter and display all records with snow conditions.
Find records meeting BOTH conditions simultaneously.
Group data by weather condition and calculate averages for all metrics.
Find extreme values (lowest and highest) for each weather type.
Display all foggy weather observations in the dataset.
Find records satisfying either condition (using OR operator).
Find records that are either:
- Clear weather AND relative humidity exceeds 50%, OR
- Visibility is above 40 km
- Temperature and Dew Point are strongly correlated — near-linear relationship
- Fog and Snow produce the lowest visibility values in the dataset
- Winter dominates with extreme conditions; Summer is mostly clear
- Wind speed has minimal effect on visibility despite common assumption
- Pressure is the most stable variable — changes very slowly hour-to-hour
- High humidity consistently appears in foggy and rainy conditions
git clone https://github.com/ammarelsayed-2a/Project-3-Python-For-Data-Analysis-Weather.git
cd Project-3-Python-For-Data-Analysis-Weather
jupyter notebook "Project 3 Weather.ipynb"Ammar Elsayed — Python for Data Analysis | 2026
LinkedIn