UE8: notebook séance 3
Notebook de la séance 3
import pandas
df = pandas.read_excel("Donnees_M2_RD.xlsx")
df
Subject | Name_A | Name_B | Dist_A | Dist_B | Mode | Space | Side | Response | RT | |
---|---|---|---|---|---|---|---|---|---|---|
0 | P_ADI_331 | 0 | 2 | 2 | 4 | Dic | E | D | 2 | 18865 |
1 | P_ADI_331 | 1 | 4 | 4 | 1 | Dic | E | D | 2 | 13157 |
2 | P_ADI_331 | 4 | 3 | 3 | 2 | Dic | E | D | 1 | 11628 |
3 | P_ADI_331 | 2 | 4 | 4 | 1 | Dic | E | D | 1 | 10068 |
4 | P_ADI_331 | 1 | 2 | 2 | 4 | Dic | E | D | 1 | 11801 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
9589 | P_VAR_330 | 0 | 1 | 3 | 5 | Dio | I | D | 1 | 7626 |
9590 | P_VAR_330 | 3 | 2 | 5 | 1 | Dio | I | D | 2 | 6349 |
9591 | P_VAR_330 | 2 | 0 | 4 | 2 | Dio | I | D | 2 | 9031 |
9592 | P_VAR_330 | 0 | 2 | 2 | 1 | Dio | I | D | 2 | 16323 |
9593 | P_VAR_330 | 0 | 3 | 5 | 1 | Dio | I | D | 2 | 10139 |
9594 rows × 10 columns
Donner le nombre de sujets.
df['Subject'].drop_duplicates().count()
24
Donner le nombre d’essais pour lesquels le deuxième prénom est Justin.
# df[df['Name_B'] == 3].count()
# ne marche pas car fait un décompte par colonne
df[df['Name_B'] == 3]['RT'].count()
# Fonctionne mais ["RT"] est juste là pour obtenir une serie à décompter
1918
Donner le nombre d’essais ayant un temps de réponse supérieur à 20000 dixièmes de ms.
df[df["RT"] > 20000]["RT"].count()
943
Donner la moyenne des temps de réponse lorsque le prénom joué en premier est celui du sujet.
df[df["Name_A"] == 0]["RT"].mean()
12154.498435870699
Les sujets ayant au moins une fois répondu en plus de 50000 dixièmes de ms.
df[df["RT"] > 50000]["Subject"].drop_duplicates()
650 P_ALM_345
1733 P_BEH_340
2798 P_BOA_321
3232 P_BOC_342
3872 P_CAR_327
4953 P_GAM_338
6447 P_LAC_354
7609 P_ROS_336
8424 P_TAI_343
9091 P_VAL_329
9373 P_VAR_330
Name: Subject, dtype: object
(df["RT"] + 20000) > 50000
0 False
1 False
2 False
3 False
4 False
...
9589 False
9590 False
9591 False
9592 False
9593 False
Name: RT, Length: 9594, dtype: bool
df['Dist_A'] - df['Dist_B']
0 -2
1 3
2 1
3 3
4 -2
..
9589 -2
9590 4
9591 2
9592 1
9593 4
Length: 9594, dtype: int64
df
Subject | Name_A | Name_B | Dist_A | Dist_B | Mode | Space | Side | Response | RT | |
---|---|---|---|---|---|---|---|---|---|---|
0 | P_ADI_331 | 0 | 2 | 2 | 4 | Dic | E | D | 2 | 18865 |
1 | P_ADI_331 | 1 | 4 | 4 | 1 | Dic | E | D | 2 | 13157 |
2 | P_ADI_331 | 4 | 3 | 3 | 2 | Dic | E | D | 1 | 11628 |
3 | P_ADI_331 | 2 | 4 | 4 | 1 | Dic | E | D | 1 | 10068 |
4 | P_ADI_331 | 1 | 2 | 2 | 4 | Dic | E | D | 1 | 11801 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
9589 | P_VAR_330 | 0 | 1 | 3 | 5 | Dio | I | D | 1 | 7626 |
9590 | P_VAR_330 | 3 | 2 | 5 | 1 | Dio | I | D | 2 | 6349 |
9591 | P_VAR_330 | 2 | 0 | 4 | 2 | Dio | I | D | 2 | 9031 |
9592 | P_VAR_330 | 0 | 2 | 2 | 1 | Dio | I | D | 2 | 16323 |
9593 | P_VAR_330 | 0 | 3 | 5 | 1 | Dio | I | D | 2 | 10139 |
9594 rows × 10 columns
df[df["RT"]>10000]["Dist_A"] - df[df["RT"]<11000]["Dist_B"]
0 NaN
1 NaN
2 NaN
3 3.0
4 NaN
...
9589 NaN
9590 NaN
9591 NaN
9592 NaN
9593 4.0
Length: 9594, dtype: float64
df['diff_dist'] = df['Dist_A'] - df['Dist_B']
df
Subject | Name_A | Name_B | Dist_A | Dist_B | Mode | Space | Side | Response | RT | diff_dist | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | P_ADI_331 | 0 | 2 | 2 | 4 | Dic | E | D | 2 | 18865 | -2 |
1 | P_ADI_331 | 1 | 4 | 4 | 1 | Dic | E | D | 2 | 13157 | 3 |
2 | P_ADI_331 | 4 | 3 | 3 | 2 | Dic | E | D | 1 | 11628 | 1 |
3 | P_ADI_331 | 2 | 4 | 4 | 1 | Dic | E | D | 1 | 10068 | 3 |
4 | P_ADI_331 | 1 | 2 | 2 | 4 | Dic | E | D | 1 | 11801 | -2 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
9589 | P_VAR_330 | 0 | 1 | 3 | 5 | Dio | I | D | 1 | 7626 | -2 |
9590 | P_VAR_330 | 3 | 2 | 5 | 1 | Dio | I | D | 2 | 6349 | 4 |
9591 | P_VAR_330 | 2 | 0 | 4 | 2 | Dio | I | D | 2 | 9031 | 2 |
9592 | P_VAR_330 | 0 | 2 | 2 | 1 | Dio | I | D | 2 | 16323 | 1 |
9593 | P_VAR_330 | 0 | 3 | 5 | 1 | Dio | I | D | 2 | 10139 | 4 |
9594 rows × 11 columns
Création d’une colonne qui indique si le sujet s’est trompé dans sa réponse.
Si la réponse est 1, le sujet a bien répondu si Dist_A
est inférieur à Dist_B
.
Sinon, la bonne réponse est 2.
reponse1_et_juste = (df["Response"] == 1) & (df["Dist_A"] < df["Dist_B"])
reponse2_et_juste = (df["Response"] == 2) & (df["Dist_A"] > df["Dist_B"])
reponse_juste = reponse1_et_juste | reponse2_et_juste
reponse_juste
0 False
1 True
2 False
3 False
4 True
...
9589 True
9590 True
9591 True
9592 True
9593 True
Length: 9594, dtype: bool
df["reponse_juste"] = reponse_juste
df
Subject | Name_A | Name_B | Dist_A | Dist_B | Mode | Space | Side | Response | RT | diff_dist | reponse_juste | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | P_ADI_331 | 0 | 2 | 2 | 4 | Dic | E | D | 2 | 18865 | -2 | False |
1 | P_ADI_331 | 1 | 4 | 4 | 1 | Dic | E | D | 2 | 13157 | 3 | True |
2 | P_ADI_331 | 4 | 3 | 3 | 2 | Dic | E | D | 1 | 11628 | 1 | False |
3 | P_ADI_331 | 2 | 4 | 4 | 1 | Dic | E | D | 1 | 10068 | 3 | False |
4 | P_ADI_331 | 1 | 2 | 2 | 4 | Dic | E | D | 1 | 11801 | -2 | True |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
9589 | P_VAR_330 | 0 | 1 | 3 | 5 | Dio | I | D | 1 | 7626 | -2 | True |
9590 | P_VAR_330 | 3 | 2 | 5 | 1 | Dio | I | D | 2 | 6349 | 4 | True |
9591 | P_VAR_330 | 2 | 0 | 4 | 2 | Dio | I | D | 2 | 9031 | 2 | True |
9592 | P_VAR_330 | 0 | 2 | 2 | 1 | Dio | I | D | 2 | 16323 | 1 | True |
9593 | P_VAR_330 | 0 | 3 | 5 | 1 | Dio | I | D | 2 | 10139 | 4 | True |
9594 rows × 12 columns
- Découper les données en 2:
- une Dataframe pour les essais où le temps de réponse est plus petit ou égal à 2 s
- une Dataframe pour les essais où le temps de réponse est plus grand que 2 s
- Réassembler les Dataframes via concat
- Que dire de l’ordre de l’index ?
df_inf2 = df[df["RT"] <= 20000]
df_sup2 = df[df["RT"] > 20000]
pandas.concat([df_inf2, df_sup2])
Subject | Name_A | Name_B | Dist_A | Dist_B | Mode | Space | Side | Response | RT | diff_dist | reponse_juste | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | P_ADI_331 | 0 | 2 | 2 | 4 | Dic | E | D | 2 | 18865 | -2 | False |
1 | P_ADI_331 | 1 | 4 | 4 | 1 | Dic | E | D | 2 | 13157 | 3 | True |
2 | P_ADI_331 | 4 | 3 | 3 | 2 | Dic | E | D | 1 | 11628 | 1 | False |
3 | P_ADI_331 | 2 | 4 | 4 | 1 | Dic | E | D | 1 | 10068 | 3 | False |
4 | P_ADI_331 | 1 | 2 | 2 | 4 | Dic | E | D | 1 | 11801 | -2 | True |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
9525 | P_VAR_330 | 4 | 2 | 2 | 5 | Dic | I | G | 2 | 22072 | -3 | False |
9544 | P_VAR_330 | 1 | 4 | 3 | 2 | Dio | I | D | 2 | 26522 | 1 | True |
9549 | P_VAR_330 | 0 | 3 | 5 | 4 | Dio | I | D | 2 | 65102 | 1 | True |
9577 | P_VAR_330 | 3 | 1 | 3 | 5 | Dio | I | D | 1 | 21278 | -2 | True |
9583 | P_VAR_330 | 0 | 4 | 4 | 5 | Dio | I | D | 2 | 45627 | -1 | False |
9594 rows × 12 columns