« Restructurer un tableau de données dyadiques » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 7 : Ligne 7 :
}}
}}


This script requires python3+ and pandas library.
Ce script nécessite python3+ et la librairie pandas. Pour installer pandas à partir de pip : python -m pip install –upgrade pandas in command prompt/terminal


Install pandas with pip : python -m pip install –upgrade pandas in command prompt/terminal
Structure individuelle :
 
Individual structure :


[[File:Attachment-dyadic_individual_structure.gif|Individual structure]]
[[File:Attachment-dyadic_individual_structure.gif|Individual structure]]


Dyadic structure :
Structure dyadique :


[[Fichier:Dyadic structure.gif|Dyadic structure]]
[[Fichier:Dyadic structure.gif|Dyadic structure]]
Ligne 25 : Ligne 23 :
import os
import os
import pandas as pd</source>
import pandas as pd</source>
<b>Specify folder path</b>
<b>Spécifier le chemin d'accès de votre dossier</b>


<source lang="python">os.chdir('D:\\Google Drive\\1-These\\13-EATMINT2\\Analyses\\Questionnaires')</source>
<source lang="python">os.chdir('path')</source>
<b>Specify .csv file name</b>
<b>Préciser le nom de votre fichier .csv</b>


<source lang="python">df1 = pd.read_csv('questionnaire_raw_data_individual_structure.csv',sep=';')</source>
<source lang="python">df1 = pd.read_csv('fichier.csv',sep=';')</source>
<b>Delete columns without data structure change needed</b>
<b>Supprimer les colonnes pour lesquelles vous ne souhaitez pas restructurer les données</b>


<source lang="python">data = df1.drop(['Dyade','Sujet','Sexe','Condition'], axis = 1)</source>
<source lang="python">data = df1.drop(['Dyade','Sujet','Sexe','Condition'], axis = 1)</source>
Ligne 37 : Ligne 35 :


<source lang="python">variables = data.columns</source>
<source lang="python">variables = data.columns</source>
<b>Create a new data frame</b>
<b>Créer un nouveau tableau de données</b>


<source lang="python">new_data = pd.DataFrame()</source>
<source lang="python">new_data = pd.DataFrame()</source>
<b>For each column, get even values and put them in p1 (resp. odd values in p2). Give the same index to both p1 and p2. Add both renamed columns in the data frame</b>
<b>Pour chaque colonne, mettre les valeur paires dans p1 et impaires dans p2. Attribuer le même index à chaque colonne. Ajouter les colonnes renommées dans le nouveau tableau de données.</b>


<source lang="python">for i in variables:
<source lang="python">for i in variables:
Ligne 55 : Ligne 53 :
     new_data[v1] = p1
     new_data[v1] = p1
     new_data[v2] = p2</source>
     new_data[v2] = p2</source>
<b>Export restructured data</b>
<b>Exporter le .csv restructuré</b>


<source lang="python">new_data.to_csv('out.csv',sep=';')</source>
<source lang="python">new_data.to_csv('out.csv',sep=';')</source>

Version du 16 novembre 2018 à 11:45

Restructurer un tableau de données dyadiques
Terminé intermédiaire
2018/11/16


Ce script nécessite python3+ et la librairie pandas. Pour installer pandas à partir de pip : python -m pip install –upgrade pandas in command prompt/terminal

Structure individuelle :

Individual structure

Structure dyadique :

Dyadic structure

Code

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import pandas as pd

Spécifier le chemin d'accès de votre dossier

os.chdir('path')

Préciser le nom de votre fichier .csv

df1 = pd.read_csv('fichier.csv',sep=';')

Supprimer les colonnes pour lesquelles vous ne souhaitez pas restructurer les données

data = df1.drop(['Dyade','Sujet','Sexe','Condition'], axis = 1)

Put columns names in a list

variables = data.columns

Créer un nouveau tableau de données

new_data = pd.DataFrame()

Pour chaque colonne, mettre les valeur paires dans p1 et impaires dans p2. Attribuer le même index à chaque colonne. Ajouter les colonnes renommées dans le nouveau tableau de données.

for i in variables:
    p1 = data[i].iloc[::2]
    p1.index = range(1,len(p1)+1)
    
    p2 = data[i].iloc[1::2]
    p2.index = range(1,len(p2)+1)

    v = i
    v1 = i + '_p1'
    v2 = i + '_p2'
    
    new_data[v1] = p1
    new_data[v2] = p2

Exporter le .csv restructuré

new_data.to_csv('out.csv',sep=';')