« 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
 
(21 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
[[Fichier:indivdual_to_dyadic_structure.pdf|vignette]]
{{tutoriel
{viewpdf:name=indivdual_to_dyadic_structure.pdf}
|fait_partie_du_cours=Python
|statut=Terminé
|difficulté=intermédiaire
|derniere_modif=2018/11/16
|prérequis=Python
}}
Ce script nécessite python3+ et la librairie pandas. Il permet de passer d'un tableau de données de dyades structurées par individus à une structure par dyades.
 
Pour installer pandas à partir de pip dans l'invite de commande/terminal : <source>python -m pip install –upgrade pandas</source>
 
<br>
 
Structure individuelle :
 
[[File:Attachment-dyadic_individual_structure.gif|Individual structure]]
 
Structure dyadique :
 
[[Fichier:Dyadic structure.gif|Dyadic structure]]
 
= <b>Code</b> =
 
<source lang="python">#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import pandas as pd</source>
<b>Spécifier le chemin d'accès de votre dossier</b>
 
<source lang="python">os.chdir('path')</source>
<b>Préciser le nom de votre fichier .csv. Le fichier .csv doit être sauvegardé avec un encodage utf-8 pour que les caractères accentués soient pris en compte</b>
 
<source lang="python">df1 = pd.read_csv('fichier.csv',sep=';')</source>
<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>
<b>Mettre les noms de colonnes dans une liste</b>
 
<source lang="python">variables = data.columns</source>
<b>Créer un nouveau tableau de données</b>
 
<source lang="python">new_data = pd.DataFrame()</source>
<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:
    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</source>
<b>Exporter le .csv restructuré</b>
 
<source lang="python">new_data.to_csv('out.csv',sep=';')</source>
 
[[category: Python]]
[[category: Programmation]]
[[category: Technologies]]

Dernière version du 16 novembre 2018 à 14:26

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

Ce script nécessite python3+ et la librairie pandas. Il permet de passer d'un tableau de données de dyades structurées par individus à une structure par dyades.

Pour installer pandas à partir de pip dans l'invite de commande/terminal :

python -m pip install –upgrade pandas


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. Le fichier .csv doit être sauvegardé avec un encodage utf-8 pour que les caractères accentués soient pris en compte

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)

Mettre les noms de colonnes dans une liste

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=';')