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