CoolFace
Apppublic

Rubyonly/APP-Customer

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
classification.py36 linesDownload Raw Back to root
1import pandas as pd2def process_data(activity, heartrate, weight):3    heartrate['Time'] = pd.to_datetime(heartrate['Time'])4    heartrate['date'] = heartrate['Time'].dt.date5    avg_heartrate = heartrate.groupby(['Id', 'date'])['Value'].mean().reset_index()6    avg_heartrate = avg_heartrate.groupby('Id')['Value'].mean().reset_index()7    avg_heartrate.columns = ['Id', 'avg_heartrate']8    9    avg_calories = activity.groupby('Id')['Calories'].mean().reset_index()10    avg_calories.columns = ['Id', 'avg_calories']11    12    avg_bmi = weight.groupby('Id')['BMI'].mean().reset_index()13    avg_bmi.columns = ['Id', 'avg_bmi']14    15    user_metrics = pd.merge(avg_heartrate, avg_calories, on='Id', how='outer')16    user_metrics = pd.merge(user_metrics, avg_bmi, on='Id', how='outer')17    18    def classify_user(row):19        if row['avg_heartrate'] > 100 or row['avg_heartrate'] < 60 or row['avg_bmi'] > 30 or row['avg_bmi'] < 18.5 or row['avg_calories'] < 1600:20            return 'High Risk'21        elif 90 < row['avg_heartrate'] <= 100 or 60 <= row['avg_heartrate'] < 70 or 25 < row['avg_bmi'] <= 30 or 1600 <= row['avg_calories'] < 2000:22            return 'Medium Risk'23        else:24            return 'Low Risk'25 26    user_metrics['Risk Category'] = user_metrics.apply(classify_user, axis=1)27    return user_metrics28 29 30 31 32 33 34 35 36