diff --git a/module 2/exo4/data_analysis.ipynb b/module 2/exo4/data_analysis.ipynb index 43886cb27a4908e9da89cae59749ac4f8451b273..8a6846fb32e04c5f9be4e58445a549185a7e1875 100644 --- a/module 2/exo4/data_analysis.ipynb +++ b/module 2/exo4/data_analysis.ipynb @@ -4,3 +4,51 @@ Date,Activity,Duration,Mood 2024-09-16,Work,3,4 2024-09-16,Exercise,1,5 +import pandas as pd +import matplotlib.pyplot as plt + +# Load the data +data = pd.DataFrame({ + 'Date': ['2024-09-13', '2024-09-13', '2024-09-16', '2024-09-16'], + 'Activity': ['Work', 'Exercise', 'Work', 'Exercise'], + 'Duration': [3, 1, 3, 1], + 'Mood': [5, 4, 4, 5] +}) + +# Convert 'Date' column to datetime format +data['Date'] = pd.to_datetime(data['Date']) + +# Display the first few rows of the dataset +print("Data Overview:") +print(data) + +# Basic Statistics +print("\nBasic Statistics:") +print(data.describe(include='all')) + +# Additional Statistics +mean_duration = data['Duration'].mean() +median_mood = data['Mood'].median() +print(f"\nAverage Duration: {mean_duration:.2f}") +print(f"Median Mood: {median_mood:.2f}") + +# Plot Duration Over Time using Matplotlib +plt.figure(figsize=(12, 6)) +for activity in data['Activity'].unique(): + subset = data[data['Activity'] == activity] + plt.plot(subset['Date'], subset['Duration'], marker='o', linestyle='-', label=activity) +plt.title('Daily Duration of Activities') +plt.xlabel('Date') +plt.ylabel('Duration (hours)') +plt.legend(title='Activity') +plt.xticks(rotation=45) +plt.tight_layout() +plt.show() + +# Histogram of Mood Ratings using Matplotlib +plt.figure(figsize=(8, 6)) +plt.hist(data['Mood'], bins=5, color='skyblue', edgecolor='black') +plt.title('Distribution of Mood Ratings') +plt.xlabel('Mood Rating') +plt.ylabel('Frequency') +plt.show()