From 7af9479cb82605dfe3f079d863ed4806d0efdd05 Mon Sep 17 00:00:00 2001 From: Benjamin Bertrand Date: Tue, 22 Nov 2016 16:07:02 +0300 Subject: [PATCH] compute_eval_marks manage onver the time evaluations --- notes_tools/tools/df_marks_manip.py | 30 +++++++++++++++++----------- samples/312.xlsx | Bin 13879 -> 13935 bytes samples/503.xlsx | Bin 12214 -> 12198 bytes 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/notes_tools/tools/df_marks_manip.py b/notes_tools/tools/df_marks_manip.py index 95bbaba..60b7538 100644 --- a/notes_tools/tools/df_marks_manip.py +++ b/notes_tools/tools/df_marks_manip.py @@ -294,9 +294,6 @@ def compute_eval_marks(df): 3 E2 N2 1 4.0 01/10/2016 3.5 Total 0 """ - #exo = df[df["Question"] == "Total"] - #eval_pt = pd.pivot_table(exo, - def date_format(dates): date_l = list(dates.unique()) if len(date_l) == 1: @@ -304,16 +301,25 @@ def compute_eval_marks(df): else: return "Trimestre" - eval_pt = pd.pivot_table(df, - #index = [ "Eleve", "Nom", "Date", "Trimestre"], - index = [ "Eleve", "Nom", "Trimestre"], - values = ["Bareme", "Mark", "Date"], - aggfunc={"Bareme": np.sum, "Mark": np.sum, "Date": date_format}, - ).applymap(round_half_point) + eval_m = pd.DataFrame() + for eval_name in df["Nom"].unique(): + eval_df = df[df["Nom"] == eval_name] + dates = eval_df["Date"].unique() + if len(dates) > 1: + # Les devoirs sur la durée, les NaN ne sont pas pénalisants + # On les enlèves + eval_df = eval_df.dropna(subset=["Mark"]) + dates = ["Trimestre"] + + eval_pt = pd.pivot_table(eval_df, + index = [ "Eleve", "Nom", "Trimestre"], + values = ["Bareme", "Mark", "Normalized", "Date"], + aggfunc={"Bareme": np.sum, "Mark": np.sum,"Normalized":np.mean, "Date":lambda x:dates[0]}, + ) + eval_pt = eval_pt.reset_index() + eval_m = pd.concat([eval_m, eval_pt]) + - eval_m = eval_pt.reset_index() - eval_m["Exercice"] = "Total" - eval_m["Niveau"] = 0 return eval_m def digest_flat_df(flat_df): diff --git a/samples/312.xlsx b/samples/312.xlsx index 7a8bcb2e09b0ff2b8e136b411961df807176e6e1..7f825bc385357b9c3afc8d54606056febead6240 100644 GIT binary patch delta 10157 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 v=PLVeJ8}L4;Y%zuFZDk#ox@4sgKwlyq>Y=3nU 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 Qp@|VZENDHPe^&Ot0P3hf@c;k- delta 9331 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