Sommaire
Dans ce tutoriel, vous serez amené à manipuler un des éléments de base de la bibliothèque Pandas : les Séries.
Installation et premier script
Pandas est une bibliothèque devenue standard sous Python pour l’analyse et le traitement des données.
Elle peut être installée sur n’importe quelle distribution par l’intermédiaire des commandes classiques :
pip install pandas conda install pandas
Pour pouvoir utiliser cette bibliothèque dans votre application, il suffit de l’importer. Il est aussi intéressant d’ajouter les bibliothèques Numpy et Matplotlib.plotly.
import pandas as pd import numpy as np import matplotlib.plotly as plt
Séries de données
Créer une série de données
Pandas se base sur des objets de type Series qui contiennent un nombre fini d’éléments de même type.
Pour créer une série de valeurs, on peut utiliser la commande suivante :
data_series = pd.Series([5, 1, 2, 5, 7, np.nan, np.pi])
On peut remarquer que le constructeur de la classe Series prend comme premier paramètre un objet de type array de la bibliothèque Numpy et qu’il est donc possible d’ajouter des nombres particuliers, tels que \(\pi\) ou NaN (not a number).
Les séries de données peuvent être des nombres mais également des chaînes de caractères.
Afficher une série de données
L’affichage de cette série par la commande suivante :
print(data_series)
donne le résultat suivant :
0 5.000000 1 1.000000 2 2.000000 3 5.000000 4 7.000000 5 NaN 6 3.141593 dtype: float64
Copier une série de données vers une autre
Il est possible de copier une série vers une autre série indépendante par la commande suivante :
data_series2 = data_series.copy()
Indexer une série (ou réindexer)
Il est possible d’indexer une série de données avec autre chose qu’une série numérique, de la même façon qu’un dictionnaire en Python. Pour indexer une série, il est possible d’ajouter le paramètre index au constructeur de la classe Series, comme dans l’exemple suivant :
data_series_index = pd.Series([5, 3, 1, 7], index = ['a', 'b', 'c', 'd'])
L’affichage de cette série donne alors :
a 5 b 3 c 1 d 7 dtype: int64
On remarque, par rapport à l’affichage d’une série sans index, que chacune des lignes est ici indexée par la chaîne de caractères fournie dans le paramètre index.
Il est également possible de réindexer une série existante par la commande suivante (en spécifiant le bon nombre de valeurs pour l’index) :
data_series2.reindex(['a','b','c','d','e','f','g'])
Histogramme d’une série
Il est possible de créer des séries à partir de fonctions de la bibliothèque Numpy (par exemple linspace ou random). Dans l’exemple suivant, une série de 10 nombres entiers compris entre 0 et 4 (5 non inclus) est générée puis affichée.
s = pd.Series(np.random.randint(0, 5, size=10)) print('Random List') print(s)
Il est possible de réaliser l’histogramme d’une série de données numériques par la commande suivante :
hist = s.value_counts()
On peut également classer les valeurs et afficher les valeurs de l’histogramme par les commandes suivantes :
hist.sort_index(ascending=True) print('histogramme') print(hist)
qui donnent le résultat suivant (les valeurs de la seconde colonne peuvent changer en fonction de la génération aléatoire des nombres de la série) :
histogramme 4 4 3 3 1 1 2 1 0 1 dtype: int64
Une autre méthode pour afficher un histogramme de manière graphique, en s’appuyant sur la bibliothèque matplotlib.pyplot, on peut exécuter les commandes suivantes :
plt.figure() s.hist(range = (0, 5), bins = 5,alpha=1) plt.show()
Les options de la fonction hist permettent de limiter l’axe des abscisses entre 0 et 5 (nombres aléatoires ici contraints entre 0 et 5 – non inclus), de définir le nombre de “bâtons” à 5 (bins) et de définir le pas entre chaque “bâton” à 1 (alpha). La fonction précédente donne le résultat suivant :