-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathml_part.py
More file actions
16 lines (15 loc) · 973 Bytes
/
ml_part.py
File metadata and controls
16 lines (15 loc) · 973 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import pandas as pd
def get_adaptive_quiz(df, score=None):
if score is None: # first quiz
easy = df[df["difficulty"] == 1].sample(min(5, len(df[df["difficulty"] == 1])))
med = df[df["difficulty"] == 2].sample(min(3, len(df[df["difficulty"] == 2])))
hard = df[df["difficulty"] == 3].sample(min(2, len(df[df["difficulty"] == 3])))
elif score >= 70:
easy = df[df["difficulty"] == 1].sample(min(2, len(df[df["difficulty"] == 1])))
med = df[df["difficulty"] == 2].sample(min(3, len(df[df["difficulty"] == 2])))
hard = df[df["difficulty"] == 3].sample(min(5, len(df[df["difficulty"] == 3])))
else:
easy = df[df["difficulty"] == 1].sample(min(6, len(df[df["difficulty"] == 1])))
med = df[df["difficulty"] == 2].sample(min(3, len(df[df["difficulty"] == 2])))
hard = df[df["difficulty"] == 3].sample(min(1, len(df[df["difficulty"] == 3])))
return pd.concat([easy, med, hard])