From ea941d0dd66de890bf72e64877323015a8de0ef2 Mon Sep 17 00:00:00 2001 From: Adrienucl <adrien.payen@student.uclouvain.be> Date: Mon, 25 Dec 2023 20:01:54 +0100 Subject: [PATCH] last update --- Adrien Payen_statistics.xlsx | Bin 5521 -> 0 bytes Aubree Coleman_statistics.xlsx | Bin 5528 -> 0 bytes Cooper Lopez_statistics.xlsx | Bin 5531 -> 0 bytes overall_statistics.xlsx | Bin 5521 -> 0 bytes .../algorithme_gestion_etudiants.py | 120 ++++++++++-------- ~$adrien.xlsx | Bin 0 -> 165 bytes 6 files changed, 70 insertions(+), 50 deletions(-) delete mode 100644 Adrien Payen_statistics.xlsx delete mode 100644 Aubree Coleman_statistics.xlsx delete mode 100644 Cooper Lopez_statistics.xlsx delete mode 100644 overall_statistics.xlsx create mode 100644 ~$adrien.xlsx diff --git a/Adrien Payen_statistics.xlsx b/Adrien Payen_statistics.xlsx deleted file mode 100644 index a1f752b154bcd6908d51748127d31b5f3f2a7121..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5521 zcmZ`-1yodP+Z{k+XpoT(5s>Z_7#eA2q)|j-7;<Py0f%m+1nHK(A|lcuor=;8(lC^S z)IVPD{roQf{pPGW@0wX_@3qc;;_T;vsAJur0001Z=&uaG%tZB`HU<C?djkNtiT>xI zf+NBWhHx|0^>Tu_n(%r$*q0~vA=>y!m5whWx~Dh=+@N}(=Sqxyw~7z39{I>~(@pIY zQd~AA>_Q$wvyqx*mOIm~T`^KrJhU%)m~x1kC@ymE3hv&c+AJ#Y%#vF5U{-iA%T6hk zXpYUU++Nyh3BnLU92rKuVxLtHuM1H&BV+cg(7i1ZaU!A#)AcSaWODRwd{`WKcQ;XI z^L9w!{nuZnp-0urLz_%Mx`-_^9($t#h`_y4kh2MI!>Lk_SP)WDl4w+PQG_69THTt< zA4~LEWrI);O?M~fr$}2vR?Xoh3TCxY%21P|kA!+Kkw3Z`7LqY1WpOkZCdkQ+#$n*@ z(c7(83scgz_1Y}F8H&adEpP94q{vd2VZ3(km^{QwJ@H3=f9o&W{8j?<oY3ZotZnOa zdyU;E_D$`15A(zsm&-3Qfm`RX^j_uUDPn5AM32swn|&NzyLZ6Uei)E{=)a$(I=PP4 zT^$nuAV8m{E--snKHi`A^7vM*c78%xl&{kA*(-z!UQR(hQ~nH_Ft~*ULHjN`?_=N& zDm+e>Fxmz;#(8TM-nTg*6}=Jt;E0ZpyOf3kyKgXbu%++P#+ihZ04MYguAoysVcLq- zg~lDV;-1D>Balirj`xd`Z1);z%@nQ}ieBwL8+neQFY94XTVf7NDo}1edIDC0ifaaC zC+k>WUkH2_u}3^~Tz|1`mdgY;KJR6>)SwT4?)3$g9%8VP!wDH)HPIidKbJ1bR2k06 zu1U8h(<#<k>@#k5r<*bXt`0@1%fG++K=&#bdB?*DXmKw1`L5WoFW{ewD7rt~T|+DJ z0j&rP`t-Et`z4Bpql=xnqodu=ocvoL+jf3ZMbriUn`7gr<Z2u*TseXtO&wwdRo7_P zt6IOexi}^RYSQE7;AVY{8c)To-y9ekj>KZyKpH?mtayiP<Ad+<!5)sWLrh`s-q(>Z zfTC3XC}tc*joS?hE!U|qhk8DkPg#mgw4@_`6+!xGHH$4@&NaC>37Xc3fb#b4s}|be zd@)Ehw*%#um&<N-hF$d#YmQL+60O+D4vBFtd#L!hgrzIE+r9uj;*KvW;&kEcp5l*` zFcTkIWb9VW9H=Mklb{ak0`nbWI*%T27`z>o%oz4_>Kzj;NSSQr-``l=xbshafY{=S zY3PbwzybiMe(Cd58CPo<%*~bW&qLs+M9~SVj_Ldq0jLX5GOG1Sa!*tMJCvdzR88-F zJubr&Y<o*dq3vdrkT4z@#dq_@?>>>+=R3#42?SJJ?>Ma~f)WEt+<5dJ4rj?^A`l#J zv|bw@8q3LD1r&IED>^S3h};Iy$putlZ>Q60M@^Ij%8kp$W)F{83*m*9*rd`Eg?X#d zcz3q*TLi{M3<f2fGKL^%j9T+59^*m~AyjL@?MDuG@2mGUB(EJDkYZ`dq4Gu)l#Nog zll)a{CzCYN#r;DWIB`V=wZj>=%DzW>_$lkG=}gp57Zn#*hI|<g8=HMLG6s)xSS5|; z{mKx06NWfUN&zD7FL;15#E*=;mKxt{f%^|<Ondp^l-x!ak)EE6WISYq6Y3aE4+AR6 zPjLoh+B)iMJ%b~~YCStU&KfLVzAW?X33=JyFfS^t2s9mh=35u3ZE)fis4epfJk<f? zdQ{U2JJ7;pV8|7h2ssbya;_(=@uteNUWnu`*G)bgW|ANzPE0wa*Q^>@Vp*VrZ>KZN zRuf;5Q&lcR3meyqb;yi;^GNo;)&c^lY*|&%0cArcJjw5X{+;U4&^~k<AZ<7Rjn3LI z*xoS~DgLOgD<7a}GsHG4tWPglMgRFydQ+FfX{lOhY39?Q_lJ9;5zlhmKd;fns}d5r z+XQ_%qXUb^j)}FTuNphSgjby8aZ49%Cun_6gjZUuAJ@~_qNbE6K2&vv)Q8(ZN7P~V z?b6Wt*hh9R2n_E0P*$>`gG1X3Lf*EwU3RtWCUNi0CYl6JW@&PB?%4Pk^o`2BDa&u$ zmLOenIBTOdK6@R&v2z|6$Dl;4lUvv&gWR5+(khX)+9S+eB;Owpd=5e-&JEk<NoH_m z6x!Unr!b~(j`9n^gmq<nX*-n2*QwjGvFsr<l$p<<Xkxn^xk|YW{MK|N(f^j4c;yq{ z@q(WP%p32R!Abs#V&m1(U3<#-0Fy{dC#o*B3N^Kxy~8P5@E$tDuN?08CrkZAefjYe zEaDew|5-&<?^rKBp~bdF3;*+Ni0(43)@Cj+OC2{C8wA|-X9c;(4XE7^APqu+mDcLh zj7T`+dzg`)PTH5#X{wHF{OeKcnR;`xYs|=su98apx;}^5eaj<VR?v=F<3<Z92`fvC zw3PI0=3^w860ta_kYQH!$&z+@*eiY5x|wc9Wm%G0epD5wkn^4T2ST<9BF3p)W^pf6 z4lIZ2cBZW~2(8!&>_{k|+|uGBnDMnkv3M2vsT+^XmwCfwG6K({M&z3Z&i2)|UmFUX zn|W}=T(xZ;ftBwOzo#JIcRt#Er%uE+49=;+)|{Zv-A{Puz<G5o?`$f9sLs%jFO3ZV z5d9^Ao0mQ8&u4Gcor_H8C-p;_lI{DgavoYodLQBw1lLd?2%bgLh{Q3*M@7z>&Z#bz z5O{D;E1358FQ++LHGN!;O^9FaFTbfwDcmRnX>)g=$*D(PO3<Ug(8YlD5Y;>{Irz?+ z#p!Jie)Y>~SK=Gg)m+vj{JyH>2FH&CJRET<oQp*C1!TvbhSPGxqYqTo*d`Ws<Jj4R zc@9Rco$^KVLXcMK+5IyF5<=k)1;QK$lPVTKCg~$G=2sjHWOFGLNg(jJAnP(+dn!p# z%&m0tNkc{r^Wc;6_$w$EH*rEx;#j+Rc0VpoOF1}K;ntZjiQ(hC-4|^0h-}He72&g5 zbv%O6@+gPh?BgVh*Zr)H7&pt-yql5K<jue*6g1IKGCpZ|_o{b-6N366khOL*<?V4i zs~5a`*})fVqS^8UVmV<S+`MkmnpF-}QL#e@3Ve?={HOGaC{7EL*P!$uUq}3i<}jI_ z$nZs8tNieo)w#DyJM<1myvBm>xUL>ftkX`cCu@%Lcb{4>`hN1kZyC7aR4M{BtF-X) zu1ACTQZ`VY(HMwge>vGNU}PwHNY<p%bN3Ubj-)cX#FOUI?B;We+a3=3d2vjKT=C3s zAqU$KlP91iRRg`ayagUw*7VT<B;rVWHVpdgF|@g3q6Im*#dxVzNRkt{y})%nOQ?P* z>;8exkO#EC3?jNv+^k^^uwVB--!$7snz2)gR80q5%1!TMZb}YRyeb!+$PeDGDV?c) z-4!nVrij|7EVT#Ws<2H41VTwESrBxjkm97;MANsB8%i6d^WX2s?^#t1)I<W_Nw8$@ z9r*d5(64U1!xd1tuc*?SQ1k6kg;5v_n8cdArd%@cvLHD)zfCoOT3co66}gSc)Q@@2 zSzWSlAm+XzVzCCqk%XA6IW(i~>yu&yPSZM*SzxP^O+IhwY7w=1+Nf_gDNq<5OiqV2 zHkC*A9Y|xzU0zOozz|re*kj)gUmPA{-Jp;VrIMV8P4DHsxrX<)2HOSGPl|~oF_<bD zA5mRyeEDXpy!0qNtQb^HV<K~v=*B9?U$N@OOg9M3XsUOH!3Uck@0xag_ijWCr5^NQ zj32i?fCD#=9%{imb+AA$`x@#+Dp&OPXs$ZR{qjcEJ!wI{7SBCi?v@*m%v2cc?qH&L zHs>aGo~D5s-nWRo+`ZtU)qEc@BuAFl;|a{@aAio9u>3edbf*D(ca$6B7W>1#3M3d> z>cZ1`{9z4?iG){QSkCrUJlPS(SjQd&k`8Q1yJ6=M!DGtn0IP~S#MacC`oZ1-AtUH6 zU6pC@zNBdMzFb~jc$*L^lO^Ttw!eE9Yk?>|=-xsf3VgMhrahdc-TdtIL|y3d#>t%D z`Qeyp6F*iGvG3m3gt;tfuf6YZf8VQdz}zj**X_8%Y~(Y{U26edPtxQ7)DZ_zLS_vv z3USPQjBy<(wx?Z0Dsb$!-s%i!7@*OznQ#U&A-N*}{Q{VdUc`5bbsb%3vmQjSsf)qm zgRB<JbC-zu!Gb+InfMNl@$zgsH~SEZoVGhcVWPyU@)W&0djhv{s(cdl&+G0#Yh`8R zaEr|)E>wO=xCTiLM+{Rf3W{*x<y4$lp?Ei(tjwDgVoFrl@%lBmfu*&3_cGb(Xhk{& zMqY@$iO^7E&<ZwnuGJ-7kK>Q=#(42r(e<GQ*T#<dnquc4s5dr`l<<|h*p@Z>Kg3Kg zEFprHzPuLFWTrpMp;L%3uO3Q*0w0&h*%LXp^z=H-6)2)RJZhL<@UF^JICF1>$$GPZ z=Adn7l)RYVToioQ!BaR@ZPAV3aqt<V=q$aI>Jf1H$63=^6RIilnTH-v<&*;@(dg*v zV!COAiwXm@llW`mi!?#U0rEuRAAh9sx#XT|WGXuuMU>9VKR>Wzsr`{svc})W5$5ay z%;7c)B`<i?rrKiMBPpZxfFC?}U<H?zwRqPRXkMR_MYL+augC5#7ai4F*G6M7tCgYy z7)xC7w6d8^{cJyw1|h<O<N6mF@hK{FK2b*Yqp$;w40)v#1=}z<ES9N=oN4Up%D;P8 z+I$wJalGr0!L+_O4O(m<2z%hbp?2gVQI%gO-<6$YaLm2DRP7M`Bp%r(j_oICCz}$i zI<>E7(`y%bTHU%*?PkkGR1u~UtSf1#jIHNqceKG`v}Srd-A_Vk5s*V$UZj-w?L5+W zyhuS^`Oab~NHP-U6{}4_77BHW3bAJ<=3m>sH35PEhoXMi-_Dkw5!@?DGSzQgHxP!o zKS@@u-BRV@Il`7|&fJWv6#l*is%y^Sh$ay3@bS>>5v1%KRgPnP{e+N|3MMgGQwt#r z<xN!nf+C=zb1}-ML{@d{%5(e7rLU{S+<I0z4;B8v{{UB55h-7!^Mc9JH0fzmNUF|Q zR;7?KEGxB?Yh=+wB?gby^6OOp)_aKXCR@QBm+AHFiNXz<kc+F`<)w-g-$4eFTgd5y ze&&kN!*};vJEw}B2Jbt}*gMZWJcFjSEnvY+hii*>C(N7Zcd^32ue1~K$oC$UayOr@ zkh&pkI$>p(69Tqm$k7N-)8*Y_iTXEf6YxkMSGW(3sSmt<@-Z*;p=9@RX@N}U$u78i z_IcpvAP%DjO>e;cft@Wrta%GQmG_r8|8zpSV%0;eXd3`Q+fOpI4X|{yfVen1x$;>! zy1;(gpp5u|p9VAtC8f0Nv&d2qP{xu3_^!yxf|Q-+_L(yNC{smbGs_^RI-=hjzT|Dy zoMH08klym<1=3x<lpLlS!3@!G&3Ve|T{*Ug6_H*PF`~@H4#g!dFG)jEw^aulloA>8 zwJ2fa)0q`2`k;tf$KOb+Y{bt)<fd)8ib)D)%oHZXW-tav4vE##O91UXGOD!jFl83_ z&CloKg}6>3IT*lR$#hm~u#dFix)rVWw>FMo6k)%y_Tn;FT!4D2Msrfhk?2(D{DYU* zra^S@z03%V68u5Dx3Y~jde8YHooYkwH3RR?;?KvL48vzTl|sPtP(0a?+PmK@_6{Fa zLX(P4nFsg9O-Co<r)Lvjm+o|4U;S}<ox7XE@3zF9{kW;?|4&UH*A<O;pfx2$&uFCo zt*M!l(=SO|wKjjQRM4ZnwEKhGhq@BVuLBHs6$@?|(!xI*ir0Lj&P}fDQvDi-$yHS+ z<m&!Ru%>qMo#-Z0?p}pu2REEre4A^jhSg_sI^)WMI^HFzYF4i2C}2x1GhFWwgPFR8 zn^m0KNP*&3dLANMPh8#NCEL5$@?70co?~|h;c3r{S>zq?(1AL!B&LC!J42`JQ<X<< zhhxLNo0%k8VrOyt`L)EYH0A6U`R9&qhii7d2oIXF`H>tIIlE!hr{TvdNNx2uqrGi{ z*nP%EH(Hx%78!J#-zEu?6|7l*dd|iuB+O`I=bGHe8N^UznGvBZVU9bMLsd<r0&O}u z2_XXH%v-p|>7aDe2#g3rShS*jZ>avDaJJ~i1dnoo)+raw)uj0U04~+7a{2AjYyU`Y zJamBY^2Eh%wAPCG;?w%);l*r9IYhYUG3&15bh^h9IcL@8ZeR2%f8f!*KQtuge>xP3 z%Nu#htv%<o+LbwP>S*ML2~o$uq`>;$%P(}K{`>?y|9Sk&D(pJJ_3h0sH~<jvJOCa2 z|JvnT2VP%t{07FO%kY1%Jg)OxUk3c<sY0h7n&)3v1J_xuPoTe90@2RzFP6XO(d*#r zlhkkU3C_RIRo5A=4<f%A&TxM*{AVn=4!!P9e?xEM{|UYBRj(6V?|#1tFwuqk|9atd k`1L~n4cABa(*MB!Dtm}JHd+z@03Uq?pyPZ-{`1%W0b7D-GXMYp diff --git a/Aubree Coleman_statistics.xlsx b/Aubree Coleman_statistics.xlsx deleted file mode 100644 index 3fbcb6617a7cbfae85a41cbe295aa31ab8e7bc8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5528 zcmZ`-1yoe~`W-;Jk)cZvq&q}l=&l)3T4HDzQV@_BLb?P5=>`#0N~A;S5)q_f;L<RZ zbo|GA?|Z(>|Gk+t=eO3Zwf9+Pe{sHVgVizakOKe!9Mn%5U}>iMNE;0RNVo$4+(rFk zA`f%*g1UNH=sk0TdYbY2x;R&+47hgklPI2CMfc8d3V1>Efgy^F0~F;)7^ePm+;lSs z1mxGPFZaMEkUY5NTbtck&z^WmDjwQbJWTn7t>jk)4+QrfQEinL`{qin`7q1t%(GKU zrdVOJD|J<L*Z|RlT#p||zh<9Tk7|rivLt2pt<t+E5`8M73Dxr}DPe;7wV0HLKG;jq z-MSYMs$4cc3puV`8QEgOrHkIS<Z(7C1`9l@0J@v;HlHc>iG{%>BnT%&5hD0uv+DL- zK^UUX-!%*M(e!q6evNT_%&IxMOwOz}LHWY$_%ne%ROEe6^HLi6v<#L8!xR~r(GMu7 zcj8{h&C-mNW0UrM-fRV9@%9?!FX=MWZ_&!!zf2$DWSj=Uf7S$vw$+HEUlKSRlXh;8 zb=5n4W#7_X^s!2r^SB<D4&A;?pnq0LmM*3iKxlfo(&i8I?A--X2cm)hq5nay>huOm zcXf0C03UT)ctD*!`FMX_E0a64y7&oXkO7J-7q4AaaPo_rn2P4ughB21U1{s$3O|SL zBBK&z2;v;D<K4H{>;|@mB;z*YbdKo=xGQMLF$acU47U$lJGc{b;$yvF!4`BYBFJ2| zz0zP&EAMMbFaoOdV)-SV=6TmkX{K|<llN;6ILL8~jBi9fZI3^CQ-$<8?+acHE3Y4x znQmk)yAl`^adtI<Z6xhj7BJZvU-q-xXwXN6JR3)5MHsH;bAm_L%nT-*E~QFyR7Ugj z>a*-gb<4F71IBIMbTekSYa_AhavyI#(Y+3bv-lX{T3-r|JrElW0Q^%C1#gqRb(9jH zP>Rr?PG4ufzeMqYc{o|YU{1es@?QcucJY%aAg}N~oESePQ{zbT<OnyNIl>65t=Di? zwg2dFbwY}(Nsp6{o%=cVM+SD&*3igk3<ldK+z<?8#W`a8G5iq^<O53>VT!E#*htI( zj8%DG&NzYm;WR9?(x}4x!dGW8eK{t@hK}fUG|AVsT(%-v&$RMXNM?&Ggtz}dwZs8y z+%Ut+30PEFDYM-jdDBOv`Heb&aMej>M2vIAN5$VGGE3guF$rkOom^VV>A~4M!yhAV z`EUfm*sGc|)I=~KP950;;yXfjpE%hxteKF=9u0KspA;=lpKjwn*hFly{8JxYc<f98 zs$vls007lr`utMH(;f=-^5pyT5cnlg+)Gth7C(6~@(h@U{L;<+k{S(C!0t$#^oF~| ze-X`~U8!E^+vUY{Vl2siKIPE_l1GwKET{)9TZT5@CTcm->Q1#mT%uW&g#|;PskIIF zD?-MUFtVWF4zch0?gr;WM*s@(U}4tX%50*r^u`xSnJSu0*`@k^D--37EVg6qnc@y~ zIEBIwSSZQ(!a}bZBOFa2T`g}GloOwZ*i$ul?_`>5U>Pd1WQ~l33fHo>#u597v*`;M zUb8GZ8wgfko)Tb;Q_zS>D+RtU)Pc>P4P=yQvo3fru9gHkjmr!yU|$psOUrt-cqeY_ z?Btl31C6tja+Yinfrk4bpFmEq=ARQ&Yl6>DN~0-OR@5ePNqrVr5bAf_x7E=oxZ4e) zoI`DEL~xgrnRtzsk_mZ@qDT4p2oJ`9d~<ta&}rf6HIAm?r~3zl%QZ|OlcgF$kjb7= z`YY^bXVI@<zGu}b_C1Iz&|Fgq$IREAr+u4(Z1Wu~li7(_grkoH<DOD&{E=uo^~ND> zmPr{}Nz+z4FU2-$?%7tP-yg_vZO%7RbB_JbxQ0?WvZ|os%7)5&;@@%oSH{Od22kCA zr1=myG4H_O$YLx~{#jj5E?B`~gl%5ffL@}Se(YLmOOL~CxmIX-?(4AMr$?gE&-1;< z*6ET}2?)F$!p1M?K%xngV(nRL#%@sIRW~{83WVbnt^cX;YP-F86P+V+Mv?qeb$3Kl zlmq0OI@GyK3euEd>Xd|U$a1cv=s;%&=_-z>>FT`h>C#K(-k(n~3!To@<mTLU@HZTo zkp1wssB=f0WZC7Slh*j6ESO{WGBlAvkw~|oq(>UQGd-jAM#grZpa4O3FeDfPM5Zi^ zIu=S~b7hw}P&|^KG_XPjMxaA`vd24*#EWzrw;gQy2p&r>W|OzF-HTbH+`;{$^;mqc zhMQ>hE8oddpf%JF=Y+vc?uLBx_3;B|%H&|P7#laL9<?epwY&YJ=~{MubdSGtcq>m= z1d0am<H%blBWV9AdUYM^)mN0*_9)?hy%bT+#?#)?18Sq|<>BCJ=lQFUyc37i?g)^C zAwi1kO_@f-oXLI6a9=m=>)A|I7#sga>_(3M!u&cjysGETJG{mLm-z#mV?9>ju4T(+ zI|(uC{dg%!srejpIH@AhLtqKRyy}x>?X1Yx2G9*lz3g{yQ!R^Pt2u?-S(<c&9AAnU zXK-02CaE0Sj5O}f+G-Hkvg11uQ$C^4;=`W{a6;aHRvM^o{B7~ApPh7e=tb-|xwfH; z1GSy9#{!p@J{<8kom<BsrAI^`$;l4fkN4`-3E4(L`SqBZQ}hJ~FY8=5Z*IMT9IC>o zE>Mpzg$V!<{w;ymGiT_Z&)%Z95R=7E5{R@QJqTRmJhG4RJHo>cuP1lKe;!98lE|1G z8#8aQpo(~d@54PSZ!tKyk_oeI{k)R!GI?dN@~#r4aEmm!)7yn6zX^UVPLBjZ5WyP} zs)f&F?RM9#&+hr~t6$H065XM$<+3N{4^SmDJTVpUfnim-mx>q&$V@(sqUE-WJ5*I; zn_AjSWM>oRIh?R}D-tb?fZM9)4bI_<3q`pU3v(P!t61YQNgb0izvf^dT}UTS1%iGE zvaZl|We|tOQ)H1%KW5ah3O}t(zJYLY6TJ*ene4L48^p$HuLKpyQ(OoWKQ=GiOJZAe z&65~d6~1Ut$HAYdjCI+|J4v-J8)Su{-F>_6*9NC1Yr}m)P80Ve`>Tduzj`<5W!L~1 zyxwK0wDSYUHi>sXFZ_y4G*1p+EI;y-*R#8{mhVQYsn{Vy#R10}K{NWL<Yy&m>kxWi z01Pj>EmFEKCJMo8TND+)wos$EOYd^bYb;pDbz?HMK|8gPrul=v_skv<@YNr$edvZ$ zu@u;*($34f5eMW;-$eSxp}Cd^$;ym_;4jD`a;FtTyib|Fq`q}ZIc=-RYrC|*=i_2f zn8<X*mCS4><l-1%_5|3fYN(%BxWq%tnl&*5cRkjgkAyrohqQf}YKKp6GhS<z5a);P zEOFh=5~_10z4xdL(V_ioPDB-omp#-4`q%Z(7tW56X2OgDRqG*_QtQX~yAnfHuPa5T zio$p5E9Pp;dZMI0lv4Y@&FFLWl;0u6#f6Yi-gl)V0hgyXq*&B|?<j6sEdEqZ-nXqD zs*eHGiQmuJKMV{yrC-~u!xoTNR#54GS^tM=l~Lq<5V1X3eWgU`b#YpFQKxD!wYJL4 zYcdD3ne#=?c|Fo7T=WA4S42IKBh_`f{>YMcU_g=;cb3+j)EZNrbULKHr(M+cX^Vl= zv_MHzI2j$r<V+#yPh1)s?#fE)Lx#|I3VqI9c8Jjt)=hG8Q7Vb4gsgtvyX!bL^_U*$ zfs#zbDdALUc&@dT#@8RVD=Ut(BFllbG-lE_DPF9y{8ejS%yh%J*{x0PP`lwa^F531 zpMEW_BN>MSXg^LmbnI}qj!m@ex^*#tuLhc%MBc3$?9<$IlLZ!j+wi3Y23UvqyxOZY z{x(--xVMXr<k?!7+I^Y{Z2s6T_G<5ni&pbv^oT5JVV^H<_7_iv3~`&!Q-mzdn0pi4 zXcX)w166Pkq{4%z`{dI)1`{!_fv~LO>txbnw8<~~U~m?0d*&S{pJ*NnUKeO};t{5% z{>(Z17ceP)Z^fE)v)?s&i{JIi%2LhC7t*<seqINA4=|Ppv%(%N4In``TbbIUx!P^d z&ra2a%r{RL0xypyEn4|8Qi%fgzrS3_m3p@S(=I6B<_BPb!ndpoTbPY(j=5(&xaUcx zEPy)t5JJGL!A1TMy$J1xE(FupDLMmp@}B<M9B>q%(Z2Qa0%%6eA^;f&%*G+`+!8z| zmOAZ+UD?#d?2^N5m#hkwiTFW+eY-h$F0f=dHr=}et_qxvyF!toM5=P+{k!`D_pqw{ zQw%N}m7jO8GIDq&6cCjty&_l#XGFP<QXvFIIB@c-PHmCAn{KvNZSwJNRM>F_HMnsr z8ulOMu+!0sbPIe-68jLXp~j#UZsFdbN3xN~AMb~jG^XHbqQSMfYqhS>{T}(j!Bi1X zv4?F%bMRCA?9#Gp*z$OpkR~(zMLwN;v{mg$Dg@WOGSQjPy}hsBZJ}5J)!~t&{DKcu zp4u_@SD9_J31|*GcE`$z1un$e?Ya00XQ&~(@Xf<77)9slB~_1cSI#e5FIthUG0%PU zdEU*qP!di|tRb>2nmtq)Al*dYQ<5?TVMAmoMCb1__&f^EG;);OjG`+R<w6df?l+vL zzgg$+<cM_lz|H42dO=of+Ns)Z+$SNerNa+eIJC8sk+H7p3AJj<&m~-QKG0|PmW_+; zXzZjhoYzX%1x%)_`r10oXN)-yWr7KD?68AMjrbJgyPqh*2a%YeMvr+V6$CrcIILHw z2;FI%8Y_SLy>l27rGY(g$!6L>%mNY3_>np;9BRiN;?+fsay@yeh9}%B%e5|XPm<vS z4>1D;on+F(Rc8+L9r~SO&T2bWYrPz~2&*Dh!u2E`D`DyfIvsD`H(IwinH?miv<}Xv ztt?e6{Npml_(!R{x)KYb0w@s!eU_k2PWl4k78~KrOvJywLoo#e<Br6hJKxKbn-koB zlWJkmv0*3-^?s73)Ud6}!*h%&*_N}F_)hreHn6cRpCb-m_=~@fW}hHs_k>a+W7!h| z5-O<pbbSMu^aXE<(l`>Iiq69*j}l(pt0%|pzmT<|7EkfKVi6+ziC+g>SOG3qs++`Q zW0Cr_H6lZIGWVU35;QlXg6kW?M<pJI*5>=n;Pywb@D^J!i^uFn-c-pZO~lpB-pX=S zdcZIPF$H|~aFDrb;;2r!qkE>@ZCKf5&e?s=<N}h}xr70=7;Pxuo3d)9-@}Lmz1B{_ zA=}rf;BGrxCGm1~=!U+%o)T~*g-=BLTCD7qi#L7foU)7Y_q6lJvhcTSnl|T!m`L=l zR1{0+obG{o=R-or!Z?hYHT?j}L%Z927>m|?Dj%=0{y7Of0=#lzMU4Sq)c8q?8Ut)# z)?g2qn<t+&%meys49ZR(__b}JYyiB%79Q!>I$=99Ce@C4qbX_IVZy2kmDtI~JwX;< zK4jl%-t_Q7W_=PWGi89@y@GqoRp3EYqnW`Pp83bX^B->!%H-nOz|uGaa6S>8@q`bn zP?!Tg%z*a2d2kH6ig>3+IMF;U{DU=i;y7zZKD^<ZfexcuQ%^)StPwk_bOR%8k)t#R zahG58E-9hPFk8{t2TkHd0(lIw6rYFcf&u$}@5hEjkNQ(}@fN7l>*5hBphp7KGxeI& z1s@|WsjrROT2Csv<+8QD0KT)@g&F0U&oq9XRD5VEpKbBtF7nP^Det-vtc!UKv<ShG z8Fp9xqsBLI>Mc0C^ckt$vn)Q*Dfn#ZeZKnAB(W>XJi3U>%!la1pJ39mSGPub^TyI| zJ}6B|P^%ire`;#!=JuDQ9a>wzBt>obQr<fEj`YNp%7P#7DHKyYrnMV;{ILEH>VmX) zJ*wXm(YdM{g*?5V3)VMG*NJX173^2peBrjEez?Q6T+ix1J)3=FO`YtKT0Jk@cO1N} zmJ_9agvLzW&dvIe+en_ABCF6fPyeC1^((fzgvtWFZk`iw7vWjot9dvJXyj0xNCMqZ z)|;VQ=BbLQ*U{u?|5grhuGmH5K~V!y2TdjWRnaBP>uBAn-_?ia?c%q56<McI<kwO2 zRk*hLhl&19LCgVTqdOgKGzbR0wwhEy(&BaduOV!VLc)v=PM&EkoM8;5Hrdfi;#Sx* z`Bb%pDv;LG(+EO9{-U*KqApS|6W@p+;=Wc~z#Y|da(C-qbkGDBaDx(Ir6$S$9(TEM zjVo}EUi&<)<;Vrh%afR}+0h^tfJYlth!ejh=@RW-$gH=4)$N@?=$_k9uyZw_^od7L zd1OR3=xpQ#HgC)sxAubDT2IcR1<WWA9juOqPLA=vJup<H{`>@o{5t-NBX*nMwu$o> z8~_Lo2}VW#KP;Wwz}sHOZ(uU24F9+DahvD1C-9r68kKq|p8x6)+-AAGf&ONRMooTy zv;1oxy$!y-N&N=jVEy;K>NdmeMdUXFI?Ag=-QM%xYsqcs?dkM4lpXI+=<QkcHo@)g v_nQD0Rk;7J7v6^7F7)4UGgL4AH~jCi2diVEBmn^MP~TuwoY8+7uYmsp_^)XY diff --git a/Cooper Lopez_statistics.xlsx b/Cooper Lopez_statistics.xlsx deleted file mode 100644 index 720b644c99765c7763b608ac59a0cdbe19c4010b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5531 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 diff --git a/overall_statistics.xlsx b/overall_statistics.xlsx deleted file mode 100644 index a1f752b154bcd6908d51748127d31b5f3f2a7121..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5521 zcmZ`-1yodP+Z{k+XpoT(5s>Z_7#eA2q)|j-7;<Py0f%m+1nHK(A|lcuor=;8(lC^S z)IVPD{roQf{pPGW@0wX_@3qc;;_T;vsAJur0001Z=&uaG%tZB`HU<C?djkNtiT>xI zf+NBWhHx|0^>Tu_n(%r$*q0~vA=>y!m5whWx~Dh=+@N}(=Sqxyw~7z39{I>~(@pIY zQd~AA>_Q$wvyqx*mOIm~T`^KrJhU%)m~x1kC@ymE3hv&c+AJ#Y%#vF5U{-iA%T6hk zXpYUU++Nyh3BnLU92rKuVxLtHuM1H&BV+cg(7i1ZaU!A#)AcSaWODRwd{`WKcQ;XI z^L9w!{nuZnp-0urLz_%Mx`-_^9($t#h`_y4kh2MI!>Lk_SP)WDl4w+PQG_69THTt< zA4~LEWrI);O?M~fr$}2vR?Xoh3TCxY%21P|kA!+Kkw3Z`7LqY1WpOkZCdkQ+#$n*@ z(c7(83scgz_1Y}F8H&adEpP94q{vd2VZ3(km^{QwJ@H3=f9o&W{8j?<oY3ZotZnOa zdyU;E_D$`15A(zsm&-3Qfm`RX^j_uUDPn5AM32swn|&NzyLZ6Uei)E{=)a$(I=PP4 zT^$nuAV8m{E--snKHi`A^7vM*c78%xl&{kA*(-z!UQR(hQ~nH_Ft~*ULHjN`?_=N& zDm+e>Fxmz;#(8TM-nTg*6}=Jt;E0ZpyOf3kyKgXbu%++P#+ihZ04MYguAoysVcLq- zg~lDV;-1D>Balirj`xd`Z1);z%@nQ}ieBwL8+neQFY94XTVf7NDo}1edIDC0ifaaC zC+k>WUkH2_u}3^~Tz|1`mdgY;KJR6>)SwT4?)3$g9%8VP!wDH)HPIidKbJ1bR2k06 zu1U8h(<#<k>@#k5r<*bXt`0@1%fG++K=&#bdB?*DXmKw1`L5WoFW{ewD7rt~T|+DJ z0j&rP`t-Et`z4Bpql=xnqodu=ocvoL+jf3ZMbriUn`7gr<Z2u*TseXtO&wwdRo7_P zt6IOexi}^RYSQE7;AVY{8c)To-y9ekj>KZyKpH?mtayiP<Ad+<!5)sWLrh`s-q(>Z zfTC3XC}tc*joS?hE!U|qhk8DkPg#mgw4@_`6+!xGHH$4@&NaC>37Xc3fb#b4s}|be zd@)Ehw*%#um&<N-hF$d#YmQL+60O+D4vBFtd#L!hgrzIE+r9uj;*KvW;&kEcp5l*` zFcTkIWb9VW9H=Mklb{ak0`nbWI*%T27`z>o%oz4_>Kzj;NSSQr-``l=xbshafY{=S zY3PbwzybiMe(Cd58CPo<%*~bW&qLs+M9~SVj_Ldq0jLX5GOG1Sa!*tMJCvdzR88-F zJubr&Y<o*dq3vdrkT4z@#dq_@?>>>+=R3#42?SJJ?>Ma~f)WEt+<5dJ4rj?^A`l#J zv|bw@8q3LD1r&IED>^S3h};Iy$putlZ>Q60M@^Ij%8kp$W)F{83*m*9*rd`Eg?X#d zcz3q*TLi{M3<f2fGKL^%j9T+59^*m~AyjL@?MDuG@2mGUB(EJDkYZ`dq4Gu)l#Nog zll)a{CzCYN#r;DWIB`V=wZj>=%DzW>_$lkG=}gp57Zn#*hI|<g8=HMLG6s)xSS5|; z{mKx06NWfUN&zD7FL;15#E*=;mKxt{f%^|<Ondp^l-x!ak)EE6WISYq6Y3aE4+AR6 zPjLoh+B)iMJ%b~~YCStU&KfLVzAW?X33=JyFfS^t2s9mh=35u3ZE)fis4epfJk<f? zdQ{U2JJ7;pV8|7h2ssbya;_(=@uteNUWnu`*G)bgW|ANzPE0wa*Q^>@Vp*VrZ>KZN zRuf;5Q&lcR3meyqb;yi;^GNo;)&c^lY*|&%0cArcJjw5X{+;U4&^~k<AZ<7Rjn3LI z*xoS~DgLOgD<7a}GsHG4tWPglMgRFydQ+FfX{lOhY39?Q_lJ9;5zlhmKd;fns}d5r z+XQ_%qXUb^j)}FTuNphSgjby8aZ49%Cun_6gjZUuAJ@~_qNbE6K2&vv)Q8(ZN7P~V z?b6Wt*hh9R2n_E0P*$>`gG1X3Lf*EwU3RtWCUNi0CYl6JW@&PB?%4Pk^o`2BDa&u$ zmLOenIBTOdK6@R&v2z|6$Dl;4lUvv&gWR5+(khX)+9S+eB;Owpd=5e-&JEk<NoH_m z6x!Unr!b~(j`9n^gmq<nX*-n2*QwjGvFsr<l$p<<Xkxn^xk|YW{MK|N(f^j4c;yq{ z@q(WP%p32R!Abs#V&m1(U3<#-0Fy{dC#o*B3N^Kxy~8P5@E$tDuN?08CrkZAefjYe zEaDew|5-&<?^rKBp~bdF3;*+Ni0(43)@Cj+OC2{C8wA|-X9c;(4XE7^APqu+mDcLh zj7T`+dzg`)PTH5#X{wHF{OeKcnR;`xYs|=su98apx;}^5eaj<VR?v=F<3<Z92`fvC zw3PI0=3^w860ta_kYQH!$&z+@*eiY5x|wc9Wm%G0epD5wkn^4T2ST<9BF3p)W^pf6 z4lIZ2cBZW~2(8!&>_{k|+|uGBnDMnkv3M2vsT+^XmwCfwG6K({M&z3Z&i2)|UmFUX zn|W}=T(xZ;ftBwOzo#JIcRt#Er%uE+49=;+)|{Zv-A{Puz<G5o?`$f9sLs%jFO3ZV z5d9^Ao0mQ8&u4Gcor_H8C-p;_lI{DgavoYodLQBw1lLd?2%bgLh{Q3*M@7z>&Z#bz z5O{D;E1358FQ++LHGN!;O^9FaFTbfwDcmRnX>)g=$*D(PO3<Ug(8YlD5Y;>{Irz?+ z#p!Jie)Y>~SK=Gg)m+vj{JyH>2FH&CJRET<oQp*C1!TvbhSPGxqYqTo*d`Ws<Jj4R zc@9Rco$^KVLXcMK+5IyF5<=k)1;QK$lPVTKCg~$G=2sjHWOFGLNg(jJAnP(+dn!p# z%&m0tNkc{r^Wc;6_$w$EH*rEx;#j+Rc0VpoOF1}K;ntZjiQ(hC-4|^0h-}He72&g5 zbv%O6@+gPh?BgVh*Zr)H7&pt-yql5K<jue*6g1IKGCpZ|_o{b-6N366khOL*<?V4i zs~5a`*})fVqS^8UVmV<S+`MkmnpF-}QL#e@3Ve?={HOGaC{7EL*P!$uUq}3i<}jI_ z$nZs8tNieo)w#DyJM<1myvBm>xUL>ftkX`cCu@%Lcb{4>`hN1kZyC7aR4M{BtF-X) zu1ACTQZ`VY(HMwge>vGNU}PwHNY<p%bN3Ubj-)cX#FOUI?B;We+a3=3d2vjKT=C3s zAqU$KlP91iRRg`ayagUw*7VT<B;rVWHVpdgF|@g3q6Im*#dxVzNRkt{y})%nOQ?P* z>;8exkO#EC3?jNv+^k^^uwVB--!$7snz2)gR80q5%1!TMZb}YRyeb!+$PeDGDV?c) z-4!nVrij|7EVT#Ws<2H41VTwESrBxjkm97;MANsB8%i6d^WX2s?^#t1)I<W_Nw8$@ z9r*d5(64U1!xd1tuc*?SQ1k6kg;5v_n8cdArd%@cvLHD)zfCoOT3co66}gSc)Q@@2 zSzWSlAm+XzVzCCqk%XA6IW(i~>yu&yPSZM*SzxP^O+IhwY7w=1+Nf_gDNq<5OiqV2 zHkC*A9Y|xzU0zOozz|re*kj)gUmPA{-Jp;VrIMV8P4DHsxrX<)2HOSGPl|~oF_<bD zA5mRyeEDXpy!0qNtQb^HV<K~v=*B9?U$N@OOg9M3XsUOH!3Uck@0xag_ijWCr5^NQ zj32i?fCD#=9%{imb+AA$`x@#+Dp&OPXs$ZR{qjcEJ!wI{7SBCi?v@*m%v2cc?qH&L zHs>aGo~D5s-nWRo+`ZtU)qEc@BuAFl;|a{@aAio9u>3edbf*D(ca$6B7W>1#3M3d> z>cZ1`{9z4?iG){QSkCrUJlPS(SjQd&k`8Q1yJ6=M!DGtn0IP~S#MacC`oZ1-AtUH6 zU6pC@zNBdMzFb~jc$*L^lO^Ttw!eE9Yk?>|=-xsf3VgMhrahdc-TdtIL|y3d#>t%D z`Qeyp6F*iGvG3m3gt;tfuf6YZf8VQdz}zj**X_8%Y~(Y{U26edPtxQ7)DZ_zLS_vv z3USPQjBy<(wx?Z0Dsb$!-s%i!7@*OznQ#U&A-N*}{Q{VdUc`5bbsb%3vmQjSsf)qm zgRB<JbC-zu!Gb+InfMNl@$zgsH~SEZoVGhcVWPyU@)W&0djhv{s(cdl&+G0#Yh`8R zaEr|)E>wO=xCTiLM+{Rf3W{*x<y4$lp?Ei(tjwDgVoFrl@%lBmfu*&3_cGb(Xhk{& zMqY@$iO^7E&<ZwnuGJ-7kK>Q=#(42r(e<GQ*T#<dnquc4s5dr`l<<|h*p@Z>Kg3Kg zEFprHzPuLFWTrpMp;L%3uO3Q*0w0&h*%LXp^z=H-6)2)RJZhL<@UF^JICF1>$$GPZ z=Adn7l)RYVToioQ!BaR@ZPAV3aqt<V=q$aI>Jf1H$63=^6RIilnTH-v<&*;@(dg*v zV!COAiwXm@llW`mi!?#U0rEuRAAh9sx#XT|WGXuuMU>9VKR>Wzsr`{svc})W5$5ay z%;7c)B`<i?rrKiMBPpZxfFC?}U<H?zwRqPRXkMR_MYL+augC5#7ai4F*G6M7tCgYy z7)xC7w6d8^{cJyw1|h<O<N6mF@hK{FK2b*Yqp$;w40)v#1=}z<ES9N=oN4Up%D;P8 z+I$wJalGr0!L+_O4O(m<2z%hbp?2gVQI%gO-<6$YaLm2DRP7M`Bp%r(j_oICCz}$i zI<>E7(`y%bTHU%*?PkkGR1u~UtSf1#jIHNqceKG`v}Srd-A_Vk5s*V$UZj-w?L5+W zyhuS^`Oab~NHP-U6{}4_77BHW3bAJ<=3m>sH35PEhoXMi-_Dkw5!@?DGSzQgHxP!o zKS@@u-BRV@Il`7|&fJWv6#l*is%y^Sh$ay3@bS>>5v1%KRgPnP{e+N|3MMgGQwt#r z<xN!nf+C=zb1}-ML{@d{%5(e7rLU{S+<I0z4;B8v{{UB55h-7!^Mc9JH0fzmNUF|Q zR;7?KEGxB?Yh=+wB?gby^6OOp)_aKXCR@QBm+AHFiNXz<kc+F`<)w-g-$4eFTgd5y ze&&kN!*};vJEw}B2Jbt}*gMZWJcFjSEnvY+hii*>C(N7Zcd^32ue1~K$oC$UayOr@ zkh&pkI$>p(69Tqm$k7N-)8*Y_iTXEf6YxkMSGW(3sSmt<@-Z*;p=9@RX@N}U$u78i z_IcpvAP%DjO>e;cft@Wrta%GQmG_r8|8zpSV%0;eXd3`Q+fOpI4X|{yfVen1x$;>! zy1;(gpp5u|p9VAtC8f0Nv&d2qP{xu3_^!yxf|Q-+_L(yNC{smbGs_^RI-=hjzT|Dy zoMH08klym<1=3x<lpLlS!3@!G&3Ve|T{*Ug6_H*PF`~@H4#g!dFG)jEw^aulloA>8 zwJ2fa)0q`2`k;tf$KOb+Y{bt)<fd)8ib)D)%oHZXW-tav4vE##O91UXGOD!jFl83_ z&CloKg}6>3IT*lR$#hm~u#dFix)rVWw>FMo6k)%y_Tn;FT!4D2Msrfhk?2(D{DYU* zra^S@z03%V68u5Dx3Y~jde8YHooYkwH3RR?;?KvL48vzTl|sPtP(0a?+PmK@_6{Fa zLX(P4nFsg9O-Co<r)Lvjm+o|4U;S}<ox7XE@3zF9{kW;?|4&UH*A<O;pfx2$&uFCo zt*M!l(=SO|wKjjQRM4ZnwEKhGhq@BVuLBHs6$@?|(!xI*ir0Lj&P}fDQvDi-$yHS+ z<m&!Ru%>qMo#-Z0?p}pu2REEre4A^jhSg_sI^)WMI^HFzYF4i2C}2x1GhFWwgPFR8 zn^m0KNP*&3dLANMPh8#NCEL5$@?70co?~|h;c3r{S>zq?(1AL!B&LC!J42`JQ<X<< zhhxLNo0%k8VrOyt`L)EYH0A6U`R9&qhii7d2oIXF`H>tIIlE!hr{TvdNNx2uqrGi{ z*nP%EH(Hx%78!J#-zEu?6|7l*dd|iuB+O`I=bGHe8N^UznGvBZVU9bMLsd<r0&O}u z2_XXH%v-p|>7aDe2#g3rShS*jZ>avDaJJ~i1dnoo)+raw)uj0U04~+7a{2AjYyU`Y zJamBY^2Eh%wAPCG;?w%);l*r9IYhYUG3&15bh^h9IcL@8ZeR2%f8f!*KQtuge>xP3 z%Nu#htv%<o+LbwP>S*ML2~o$uq`>;$%P(}K{`>?y|9Sk&D(pJJ_3h0sH~<jvJOCa2 z|JvnT2VP%t{07FO%kY1%Jg)OxUk3c<sY0h7n&)3v1J_xuPoTe90@2RzFP6XO(d*#r zlhkkU3C_RIRo5A=4<f%A&TxM*{AVn=4!!P9e?xEM{|UYBRj(6V?|#1tFwuqk|9atd k`1L~n4cABa(*MB!Dtm}JHd+z@03Uq?pyPZ-{`1%W0b7D-GXMYp diff --git a/projet_personnel/algorithme_gestion_etudiants.py b/projet_personnel/algorithme_gestion_etudiants.py index 693394b..d565739 100644 --- a/projet_personnel/algorithme_gestion_etudiants.py +++ b/projet_personnel/algorithme_gestion_etudiants.py @@ -747,15 +747,11 @@ def see_the_data(data, columns_to_show=None): # STATS def statistics_analysis(data): - print_menu([ - "Get basic statistics of a student", - "Get all grades of a student", - "Get all grades of a course", - ]) - + print_menu(["Get basic statistics of a student", "Get all grades of a student", "Get all grades of a course"]) + stats_choice = get_valid_input("Enter the number of what you want to do: ", 1, 3) - if stats_choice == 1 : + if stats_choice == 1: results = search_and_display_stats(data, "Statistics") elif stats_choice == 2: results = search_and_display_stats(data, "Grades") @@ -797,13 +793,15 @@ def search_and_display_stats(data, stats_type): if not results.empty: if stats_type == "Statistics": - display_statistics(results) + display_statistics(results, data) elif stats_type == "Grades": - display_student_grades(results) + display_student_grades(results, data) else: print(f"No students found with the specified {field_name}.") -def display_statistics(results): + +# STATISTICAL_STUDENT +def display_statistics(results, data): numeric_columns = results.select_dtypes(include=['number']).columns for index, row in results.iterrows(): @@ -812,11 +810,39 @@ def display_statistics(results): if student_grades: print_student_statistics(student_name, student_grades) - else: - print(f"\nNo grades found for student {student_name}.") + + # Move the export_statistics call outside the loop + export_statistics(results, data, numeric_columns) + + +def export_statistics(results, data, numeric_columns): export_choice = input("Do you want to export these statistics? (YES/NO): ").upper() if export_choice == 'YES': - export_stats(results) + file_name = input("Enter the Excel file name (without extension): ") + '.xlsx' + export_path = file_name + export_df = calculate_student_stats(results, numeric_columns) + export_df.to_excel(export_path, index=False) + print(f"Statistics exported to {export_path}.") + + +def calculate_student_stats(results, numeric_columns): + student_grades = pd.Series(results[numeric_columns].stack().dropna()) + + # Check if the student_grades Series is empty + if student_grades.empty: + # If no grades are found, return an empty DataFrame + return pd.DataFrame(columns=["Metric", "Value"]) + + student_stats = { + "Lowest grade": min(student_grades), + "Highest grade": max(student_grades), + "Average grade": statistics.mean(student_grades), + "Median grade": statistics.median(student_grades), + "Standard deviation of grades": statistics.stdev(student_grades) + } + + return pd.DataFrame(list(student_stats.items()), columns=["Metric", "Value"]) + def print_student_statistics(student_name, student_grades): lowest_grade = min(student_grades) @@ -836,16 +862,31 @@ def print_student_statistics(student_name, student_grades): print(f"\nStatistics for student {student_name}:") print(tabulate(table, headers=["Metric", "Value"], tablefmt="pretty")) -def display_student_grades(results): +# STUDENT_GRADES +def display_student_grades(results, data): for index, row in results.iterrows(): student_name = f"{row['Firstname']} {row['Lastname']}" print(f"\nGrades for student {student_name}:") table = [[column, grade] for column, grade in row.items() if pd.notna(grade) and column not in ['Firstname', 'Lastname', 'Academic Year', 'Curriculum', 'Place of Birth', 'Telephone', 'Address', 'Gender', 'Email', 'Campus', 'Date of Birth', 'Matricule']] print(tabulate(table, headers=["Course", "Grade"], tablefmt="pretty")) + export_student_grades(results, data) + +def export_student_grades(results, data): export_choice = input("Do you want to export these statistics? (YES/NO): ").upper() if export_choice == 'YES': - export_stats(results) + file_name = input("Enter the Excel file name (without extension): ") + '.xlsx' + export_path = file_name + columns_to_remove = ['Firstname', 'Lastname', 'Academic Year', 'Curriculum', 'Place of Birth', 'Telephone', 'Address', 'Gender', 'Email', 'Campus', 'Date of Birth', 'Matricule'] + export_df = results.drop(columns=columns_to_remove) + + # Melt the DataFrame to have data in columns with courses and grades + export_df_melted = pd.melt(export_df, id_vars=[], value_vars=export_df.columns, var_name='Course', value_name='Grade') + + export_df_melted.to_excel(export_path, index=False) + print(f"Data exported to {export_path}.") + +# COURSE_GRADES def course_grades(data): print("Here is the list of courses:") for course in data.columns[13:]: @@ -857,53 +898,32 @@ def course_grades(data): students_in_course = data[data[course_name].notnull()] if not students_in_course.empty: - display_course_grades(students_in_course, course_name) + display_course_grades(students_in_course, course_name, data) + export_course_grades(students_in_course, course_name) else: print(f"No students participated in the course {course_name}.") else: print(f"The specified course ({course_name}) was not found.") - - export_choice = input("Do you want to export these statistics? (YES/NO): ").upper() - if export_choice == 'YES': - export_stats(students_in_course) - - return students_in_course + return -def display_course_grades(students_in_course, course_name): +def display_course_grades(students_in_course, course_name, data): print(f"\nGrades of students for the course {course_name}:") - table = [ - ["Matricule", "Grade"], - *[[row['Matricule'], row[course_name]] for _, row in students_in_course.iterrows() if not pd.isnull(row[course_name])] + table = [["Firstname", "Lastname", "Matricule", "Grade"], + *[[row['Firstname'], row['Lastname'], row['Matricule'], row[course_name]] for _, row in students_in_course.iterrows() if not pd.isnull(row[course_name])] ] print(tabulate(table, headers="firstrow", tablefmt="pretty")) -def export_stats(data): - # Ensure numeric columns only - numeric_columns = data.select_dtypes(include=['number']).columns - - # Calculate and save statistics for each student - for index, row in data.iterrows(): - student_name = f"{row['Firstname']} {row['Lastname']}" - student_stats = calculate_student_stats(row, numeric_columns) - student_stats.to_excel(f"{student_name}_statistics.xlsx", index=False) - - print("Statistics exported successfully.") - - +def export_course_grades(students_in_course, course_name): + export_choice = input("Do you want to export these statistics? (YES/NO): ").upper() + if export_choice == 'YES': + file_name = input("Enter the Excel file name (without extension): ") + '.xlsx' + export_path = file_name + export_df = students_in_course[['Firstname', 'Lastname','Matricule', course_name]] + export_df.to_excel(export_path, index=False) + print(f"Data exported to {export_path}.") -def calculate_student_stats(row, numeric_columns): - student_grades = [row[column] for column in numeric_columns if not pd.isnull(row[column])] - student_stats = { - "Lowest grade": min(student_grades), - "Highest grade": max(student_grades), - "Average grade": statistics.mean(student_grades), - "Median grade": statistics.median(student_grades), - "Standard deviation of grades": statistics.stdev(student_grades) - } - - return pd.DataFrame(list(student_stats.items()), columns=["Metric", "Value"]) # Example of usage diff --git a/~$adrien.xlsx b/~$adrien.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d10daf560a7f8247050905285b3e618c244966d6 GIT binary patch literal 165 icmZQ~OexAt%~K!|uroL^q%agQWHO{O<S{7F7y<yg{SdVP literal 0 HcmV?d00001 -- GitLab