Skip to content

Welcome to your personalized data journey! This notebook is designed to help you analyze your DataCamp progress over the past year, so you can set a goal, build a habit, and take actionable next steps for 2025. Dive into your learning data, including exercises completed, workbooks created, and more. Discover insights, track your habits, and set new goals for the upcoming year. Let's explore your year in data together!

🧭 Get familiar and explore your data by opening the context panel


🎯 Challenge 1: Set a Goal

Set your XP milestones: Using the xp_earned data, find your biggest XP-earning days. Use this insight to set specific XP milestones for 2025 that keep you motivated.

1️⃣ Below you will find an example, run this cell to see what is possible...

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

# Read in the data
xp_earned = pd.read_csv('data/xp_earned.csv', parse_dates=['earned_at'])

# Ensure the 'date' column is in datetime format
xp_earned['date'] = pd.to_datetime(xp_earned['earned_at'])

# Create columns for week number and day of the week
xp_earned['week'] = xp_earned['earned_at'].dt.isocalendar().week
xp_earned['day'] = xp_earned['earned_at'].dt.dayofweek

# Create a DataFrame to ensure all days and weeks are represented
all_weeks = range(1, 53)  # Weeks 1 to 52
all_days = range(0, 7)    # Days 0 (Monday) to 6 (Sunday)
full_index = pd.MultiIndex.from_product([all_days, all_weeks], names=['day', 'week'])

# Sum XP earned for each day and week, reindex to fill missing values with 0
heatmap_data = xp_earned.pivot_table(index='day', columns='week', values='xp_amount', aggfunc='sum', fill_value=0)
heatmap_data = heatmap_data.reindex(index=all_days, columns=all_weeks, fill_value=0)

# Create the heatmap
plt.figure(figsize=(20, 4))
sns.heatmap(heatmap_data, cmap='Greens', linewidths=.5, linecolor='gray', cbar_kws={'label': 'XP Earned'})

# Set the labels
plt.title('XP Earned Activity Heatmap', loc='center')
plt.xlabel('Week of the Year')
plt.ylabel('Day of the Week')
plt.yticks(ticks=np.arange(7) + 0.5, labels=['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'], rotation=0)

# Display the heatmap
plt.show()

2️⃣ Now make it your own!

xp_earned = pd.read_csv('data/xp_earned.csv', parse_dates=['earned_at'])
xp_earned.head()

## complete challenge 1, be ambitious

🗓️ Challenge 2: Track Your Habits

Track your learning streaks: Use the streaks data to find your longest streak in 2024. Reflect on the strategies that helped you stay consistent and apply them to maintain or extend streaks in 2025.

Fun fact, learners who extend their daily streak by just two days are 18x more likely to complete a Career/Skill Track.

streaks = pd.read_csv('data/streaks.csv', parse_dates=['streak_started_at', 'streak_ended_at'])
streaks.head()

## complete challenge 2, be curious

🐾 Challenge 3: Set Next Steps

Identify your most productive days: Analyze the learning_minutes data to find which day(s) of the week you dedicated the most time to learning. Consider setting goals for 2025 to make these days even more productive, or identify new days to focus on learning.

learning_minutes = pd.read_csv('data/learning_minutes.csv', parse_dates=['date'])
learning_minutes.head()

## complete challenge 3, be creative