Notebook Contrôle 5

import pandas
  1. Charger les données du fichier Donnees_M2_RD.xlsx dans une DataFrame placée dans une variable df.
df = pandas.read_excel('Donnees_M2_RD.xlsx')
  1. Afficher les valeurs de la colonne Subject de df. On ne veut pas de doublon dans cet affichage.
df["Subject"].drop_duplicates()
0       P_ADI_331
400     P_ALM_345
800     P_AMY_346
1200    P_BAM_347
1600    P_BEH_340
2000    P_BLC_325
2399    P_BLR_321
2798    P_BOA_321
3197    P_BOC_342
3597    P_CAR_327
3995    P_CAV_333
4395    P_CON_336
4795    P_GAM_338
5195    P_GHM_334
5595    P_GRC_341
5995    P_GRF_322
6394    P_LAC_354
6794    P_LEG_335
7194    P_MOE_339
7594    P_ROS_336
7994    P_SOA_337
8394    P_TAI_343
8794    P_VAL_329
9194    P_VAR_330
Name: Subject, dtype: object
  1. Placer dans une DataFrame df_d les essais de la valeur pour Side est D.
    Placer dans une DataFrame df_g les essais de la valeur pour Side est G.
df_d = df[df["Side"] == 'D']
df_g = df[df["Side"] == 'G']
  1. Créer une Series s_rt_d contenant la moyenne des RT par Subject pour les essais ayant Side qui vaut D.
    Créer une deuxième Series s_rt_g sur le même principe, mais pour les essais ayant Side qui vaut G.
s_rt_d = df_d.groupby(by="Subject")["RT"].mean()
s_rt_g = df_g.groupby(by="Subject")["RT"].mean()
  1. Indiquer les Subjects dont le RT pour les essais ayant Side valant D est en moyenne inférieur à celui pour les essais ayant Side valant G.
# Assembler les deux Series en une DataFrame
s_rt = pandas.concat([s_rt_d.rename("RT_D"), s_rt_g.rename("RT_G")], axis=1, join="inner")
s_rt[s_rt["RT_D"] < s_rt["RT_G"]]

RT_D RT_G
Subject
P_BLC_325 11311.120603 11421.280
P_GHM_334 10762.345000 11679.255
P_SOA_337 9864.230000 10238.120
  1. Ranger dans la variable df_min_max une DataFrame contenant les valeurs minimales et maximales de RT pour chaque Subject.
s_rt_min = df.groupby(by="Subject")["RT"].min().rename("min")
s_rt_max = df.groupby(by="Subject")["RT"].max().rename("max")
# une autre manière de faire pour assembler 2 Series en une DataFrame
df_min_max = pandas.DataFrame({"min": s_rt_min, "max":s_rt_max}) 
df_min_max

min max
Subject
P_ADI_331 4851 18865
P_ALM_345 3181 51807
P_AMY_346 2703 29020
P_BAM_347 3500 24332
P_BEH_340 4582 50600
P_BLC_325 4728 32306
P_BLR_321 2885 44985
P_BOA_321 8414 89205
P_BOC_342 2851 103152
P_CAR_327 4088 65254
P_CAV_333 3105 36168
P_CON_336 3180 37280
P_GAM_338 4703 52262
P_GHM_334 3238 33643
P_GRC_341 3191 38528
P_GRF_322 6248 42200
P_LAC_354 5909 93540
P_LEG_335 3936 49580
P_MOE_339 3585 34250
P_ROS_336 3996 54405
P_SOA_337 4842 31123
P_TAI_343 6486 62619
P_VAL_329 5112 80916
P_VAR_330 2918 80729
Emmanuel Coquery
Emmanuel Coquery
Maître de conférences en Informatique