logo

Traitement des données en table avec le module pandas

Présentation et installation

Pandas est une bibliothèque écrite pour le langage de programmation Python permettant la manipulation et l'analyse des données. Elle propose en particulier des structures de données et des opérations de manipulation de tableaux numériques et de séries temporelles. Pandas est un logiciel libre sous licence BSD1.

Pour installer ce module il suffit de saisir en ligne de commande:

pip install pandas

Lien utile : Site pandas

1La licence BSD est une licence libre utilisée pour la distribution de logiciels. Elle permet de réutiliser tout ou une partie du logiciel sans restriction, qu'il soit intégré dans un logiciel libre ou propriétaire.

Importer les tables

Premier fichier clients.csv

Vous pouvez télécharger le fichier clients.csv.

Voici un code en python, qui à partir du fichier clients.csv obtient un tableau tab1 doublement indexé contenant les données du fichier.

import pandas
tab1=pandas.read_csv("clients.csv")
print(tab1)

Analyser ce code.

Les tables lues dans les fichiers csv sont stockés par pandas sous forme de dataframes. On peut les voir comme un tableau de p-uplets nommés

Voici quelques méthodes de pandas pour visualiser rapidement des données :

Deuxième fichier commandes.csv

Vous pouvez télécharger le fichier commandes.csv.

Télécharger ce fichier et écrire le code pour obtenir le tableau tab2 contenant les données du second fichier.

Recherche dans les tables

Voici le code pour rechercher les éléments ayant un descripteur précis. Par exemple pour trouver pour qui le descripteur nom est "Jean".

tab1[tab1.nom == 'Jean']

Ecrire le code qui permet de trouver ceux qui ont un âge de 18 ans.

Voir une solution

Ecrire une fonction de recherche dont le paramètre est l'âge et qui renvoit tous ceux qui ont un âge supérieur ou égal

Voir une solution

Trier les tables

Il faut indiquer selon quels critères on veut effectuer ce tri. Pour cela, on appelle la fonction sorted ou la méthode sort avec l’argument supplémentaire key qui est une fonction renvoyant la valeur utilisée pour le tri. La méthode sort trie la liste en place et la remplace, alors que la fonction sorted renvoie une nouvelle liste correspondant la liste trié, la liste initiale étant conservée.

Trier en fonction d'un descripteur

Voici le code pour trier suivant le descripteur nom

tri=tab1.sort_values(by=['nom'], ascending=[True])
print(tri)

Analyser ce code.

Trier en fonction d'un descripteur numérique

Voici le code pour trier suivant le descripteur id

tri_num=tab1.sort_values(by=['id'], ascending=[True])
print(tri_num)

Analyser ce code.

Trier en fonction de deux descripteurs

On va trier selon le nom puis en cas d'ex-aequo suivant l'age.

Voici le code :

tri2=tab1.sort_values(by=['nom', 'age'], ascending=[True, True])
print(tri2)

Analyser ce code.

Fusion des 2 fichiers

On veut fusionner les deux fichiers en faisant coïncider leur id.
Voici le code :

t_fusion=pandas.merge(tab1, tab2, left_on='id', right_on='id',how = 'left')
print(t_fusion)

Quelques explications :

Dans notre exemple, left_on et right_on sont identiques, donc on peut simplifier le code :

t_fusion=pandas.merge(tab1, tab2, how = 'left')
print(t_fusion)