import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

# Load the dataset
df = pd.read_csv("Mock_Habit_and_RENSS_Data_for_20_Participants.csv")

# Convert date to datetime for proper ordering
df['Date'] = pd.to_datetime(df['Date'])

# 1. Calculate habit completion rate by day
df_habit_by_day = df.groupby('Date')['HabitPerformed'].apply(lambda x: (x == 'Yes').mean() * 100).reset_index()
print("Habit completion rate by day:")
print(df_habit_by_day)

# Calculate habit completion rate by user
df_habit_by_user = df.groupby('Participant')['HabitPerformed'].apply(lambda x: (x == 'Yes').mean() * 100).reset_index()
print("\nHabit completion rate by user:")
print(df_habit_by_user)

# Calculate overall habit completion rate
overall_completion_rate = (df['HabitPerformed'] == 'Yes').mean() * 100
print(f"\nOverall habit completion rate: {overall_completion_rate:.2f}%")