Notebook séance 6
import pandas
df = pandas.read_excel("Donnees_M2_RD.xlsx")
Histogramme
Faire un histogramme de la quantité d’essais selon le temps de réaction.
On fait l’histogramme sur la série qui contient uniquement les RT
, car le tracé sur la dataframe est trop long.
df["RT"].plot.hist(bins=10)
<AxesSubplot:ylabel='Frequency'>
Ajout des réussites
reussites = (
((df['Response'] == 1) & (df['Dist_A'] < df['Dist_B']))
| ((df['Response'] == 2) & (df['Dist_A'] > df['Dist_B']))
)
df["reussit"] = reussites
Bar
Créer une dataframe contenant les essais en mode Dic(hotique) à gauche et enfaire une copie via
df_copie = pandas.DataFrame(df_a_copier)
Ajouter un attribut mode_side
contenant la valeur "Dic_G"
En créer deux autres versions: une pour Dic
à droite et une pour Dio
(tique) (sans différencier les côtés)
Assembler les 3 dataframes obtenues.
Faire un affichage de barres avec le nombre d’essais réussis (filtrer et compter).
df_d = pandas.DataFrame(df[(df["Mode"] == "Dic") & (df["Side"] == "D")])
df_d["mode_side"] = "Dic_D"
df_g = pandas.DataFrame(df[(df["Mode"] == "Dic") & (df["Side"] == "G")])
df_g["mode_side"] = "Dic_G"
df_dio = pandas.DataFrame(df[df["Mode"] == "Dio"])
df_dio["mode_side"] = "Dio"
df_mode = pandas.concat([df_d, df_g, df_dio])
s_reussits_mode_side = df_mode[df_mode["reussit"]].groupby(by="mode_side")["Subject"].count()
s_mode_side = df_mode.groupby(by="mode_side")["Subject"].count()
df_norm = pandas.DataFrame(
{
"total": s_mode_side,
"reussits": s_reussits_mode_side
}
)
df_norm["reussits_n"] = df_norm["reussits"] / df_norm["total"]
df_norm["reussits_n"].plot.bar()
<AxesSubplot:xlabel='mode_side'>
Changements d’indexes
Obtenir la DataFrame indexée par Subject et Space
df.set_index(["Subject","Space"])
Name_A | Name_B | Dist_A | Dist_B | Mode | Side | Response | RT | reussit | ||
---|---|---|---|---|---|---|---|---|---|---|
Subject | Space | |||||||||
P_ADI_331 | E | 0 | 2 | 2 | 4 | Dic | D | 2 | 18865 | False |
E | 1 | 4 | 4 | 1 | Dic | D | 2 | 13157 | True | |
E | 4 | 3 | 3 | 2 | Dic | D | 1 | 11628 | False | |
E | 2 | 4 | 4 | 1 | Dic | D | 1 | 10068 | False | |
E | 1 | 2 | 2 | 4 | Dic | D | 1 | 11801 | True | |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
P_VAR_330 | I | 0 | 1 | 3 | 5 | Dio | D | 1 | 7626 | True |
I | 3 | 2 | 5 | 1 | Dio | D | 2 | 6349 | True | |
I | 2 | 0 | 4 | 2 | Dio | D | 2 | 9031 | True | |
I | 0 | 2 | 2 | 1 | Dio | D | 2 | 16323 | True | |
I | 0 | 3 | 5 | 1 | Dio | D | 2 | 10139 | True |
9594 rows × 9 columns
Obtenir la DataFrame indexée par Subject, Space et l’index original avec un niveau nommé essai (on peut utiliser .rename
sur un index)
df.set_index(["Subject","Space", df.index.rename("essai")])
Name_A | Name_B | Dist_A | Dist_B | Mode | Side | Response | RT | reussit | |||
---|---|---|---|---|---|---|---|---|---|---|---|
Subject | Space | essai | |||||||||
P_ADI_331 | E | 0 | 0 | 2 | 2 | 4 | Dic | D | 2 | 18865 | False |
1 | 1 | 4 | 4 | 1 | Dic | D | 2 | 13157 | True | ||
2 | 4 | 3 | 3 | 2 | Dic | D | 1 | 11628 | False | ||
3 | 2 | 4 | 4 | 1 | Dic | D | 1 | 10068 | False | ||
4 | 1 | 2 | 2 | 4 | Dic | D | 1 | 11801 | True | ||
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
P_VAR_330 | I | 9589 | 0 | 1 | 3 | 5 | Dio | D | 1 | 7626 | True |
9590 | 3 | 2 | 5 | 1 | Dio | D | 2 | 6349 | True | ||
9591 | 2 | 0 | 4 | 2 | Dio | D | 2 | 9031 | True | ||
9592 | 0 | 2 | 2 | 1 | Dio | D | 2 | 16323 | True | ||
9593 | 0 | 3 | 5 | 1 | Dio | D | 2 | 10139 | True |
9594 rows × 9 columns