L'organisation des données

Données : formats long et large

Avant d’être exploité, un jeu de données peut se présenter de deux façons : le format large (wide) et le format long. Et ce n’est pas toujours le plus pratique qui s’offre à nous.

Après avoir montré la différence entre les deux, nous verrons comment passer du long au large avec un tableur et avec Python.

 

Présentation

Les données longues (ou hautes) apparaissent en colonnes où chaque ligne représente une combinaison entre un caractère (identifiant), un attribut et une valeur.

Les données larges sont présentées en tableau, de sorte que chaque ligne correspond à un caractère et chaque colonne à une variable. À l’intersection des deux se trouvent les valeurs.

 

Exemple

Soit le tableau suivant (extrait d’une feuille de calcul). Ce sont des données larges.

données larges

dalmatien

En format long, il devient ceci :

Race Taille Cm
Husky Taille mini mâle 54
Husky Taille maxi mâle 60
Husky Taille mini femelle 51
Husky Taille maxi femelle 56
Pointer Taille mini mâle 55
Pointer Taille maxi mâle 62
Pointer Taille mini femelle 54
Pointer Taille maxi femelle 60
Dalmatien Taille mini mâle 56
Dalmatien Taille maxi mâle 61
Dalmatien Taille mini femelle 54
Dalmatien Taille maxi femelle 59

Dans cet exemple toutes les valeurs sont renseignées. Donc en format long le tableau \(3 \times 4\) devient une liste de 12 lignes.

expo canine

Remarques

Le format large est beaucoup plus facile à lire. Certes pas aussi bien qu’un graphique mais par rapport au format long, il n’y a pas photo.

Si une valeur n’est pas renseignée, on le remarque facilement avec le format large mais difficilement avec le long.

Il est donc plus fréquent de vouloir passer du long au large. L’inverse n’est nécessaire que dans quelques cas particuliers (réalisation de graphiques avec R, par exemple).

 

Tableurs

Avec un tableur, on peut passer du format long au large en réalisant un tableau croisé. L’ordre des lignes et des colonnes risque toutefois d’être chamboulé et les totaux ne signifieront rien.

 

Python

Supposons que les données se présentent en format long dans un fichier CSV (races.csv).

Nous souhaitons d’abord les visualiser avec Python. Notez que le séparateur est la virgule. Petite précision : dans cet exemple nous supprimons l’accent circonflexe de mâle que Python ne saurait pas lire.

Nous chargeons la bibliothèque pandas. En préambule, nous souhaitons visualiser le jeu de données. La fonction à employer est read.csv.

from pandas import *

sortie = read_csv('races.csv', sep=',')
print(sortie)

Nous obtenons une sortie conforme :

format long

Nous souhaitons à présent obtenir ces données en format large. La fonction à utiliser est pivot_table. Elle a besoin de trois arguments pour savoir quoi mettre en ligne, en colonne et en valeurs, comme vous le constatez ci-dessous.

from pandas import *

long = read_csv('races.csv', sep=',')
large = pivot_table(long, values='Cm', index='Race', columns='Taille')

print(large)

sortie Python

C’est pas beau, ça ?

Note : nous avons réduit les intitulés de colonnes dans le fichier CSV afin de visualiser le tableau en entier.

Remarquez que les intitulés apparaissent en ordre alphabétique, à l’instar du tableau croisé d’Excel.

 

formats longs