Pandas est une bibliothèque Python spécialisée dans l'analyse de données et le traitement des ensembles de données.
Pandas permet d'analyser de grands volumes de données et produit des résultats basés sur les statistiques.
Pandas fonctionne avec Python et s'installe par un simple pip install pandas
.
Pandas manipule les données sous forme de Dataframes (2D, lignes et colonnes) ou de séries (1D, lignes). Par défaut, sans autre paramétrage, chaque valeur dans une série est donnée par son index. Comportement identique à un parcours de liste sous python.
import pandas as pd
a = [1, 3, 4, 42]
myvar = pd.Series(a)
print(myvar) # Affiche la série complète sur deux colonnes : index + valeur
0 1
1 3
2 4
3 42
dtype: int64
Si l'on veut afficher une valeur simple, il faut utiliser la notation python des accès aux listes. Par défaut,
les valeurs se trouvent donc aux index dans la liste.print(myvar[0])
Si vous souhaitez nommer les index, vous pouvez utiliser une liste comme entêtes de labels.
import pandas as pd
a = [1, 3, 4]
myvar = pd.Series(a, index=["x", "y", "z"])
print(myvar) # Affiche sous la forme d'un tableau de deux dimensions avec les nouveaux entêtes de labels
print("Valeur de 'z' : ", myvar["z"]) # Affiche la valeur de l'élément dont l'index est "z"
Ce code produit le résultat suivant, où l'on voit bien que la dernière ligne est bien la valeur de la colonne 'z'
x 1
y 7
z 2
dtype: int64
Valeur de 'z' : 2
Il est également possible d'utiliser les dictionnaires python comme source de données.
import pandas as pd
temperatures = { "jour1": 23, "jour2": 25, "jour3": 42 }
myvar = pd.Series(temperatures)
print(myvar)
Le résultat obtenu est un tableau sur deux colonnes contenant les clés du dictionnaire comme index et
les valeurs du dictionnaire comme valeurs aussi dans Pandas.
Il n'est pas obligatoire d'utiliser l'ensemble des colonnes pour le traitement que vous souhaitez apporter à ces ensembles. Vous pouvez choisir sur quelles colonnes les sélections vont s'opérer en spécifiant une liste d'indexes à la méthode pd.Series().
import pandas as pd
temperatures = { "jour1": 23, "jour2" : 25, "jour3": 42 }
myvar = pd.Series(temperatures, index=["jour1", "jour3"])
print(myvar)
Le Résultat ainsi obtenu est le suivant :
jour1 23
jour3 42
dtype: int64
Comme énoncé plus haut, un Dataframe Pandas est un tableau multi-dimensionnel, quand la Série est un vecteur colonne.
import pandas as pd
data = {
"taille": [120, 180],
"age": [10, 20]
}
df = pd.DataFrame(data)
print(df)
Nous obtenons l'affichage sous forme de tableau de deux colonnes, dont les index sont numériques (nous n'avons rien
défini en ce sens) et les clés du dictionnaire sont les entêtes des colonnes.
taille age
0 120 10
1 180 20
Comme énoncé précédemment, un DataFrame Pandas est un tableau à deux dimensions et plus. Pour accéder au
contenu, il faut utiliser la méthode loc[] pour récupérer la valeur de la ligne. Dans l'exemple ci-dessus,
faire un print(df.loc[0])
renvoie
taille 120
age 10
Name: 0, dtype: int64
Nous obtenons alors un objet de type Series. Si nous voulons avoir plusieurs colonnes, il suffit de les
spécifier print(df.loc[0, 1])
pour renvoyer les colonnes 0 et 1. Et comme pour les Series, la
méthode DataFrame() peut contenir un ensemble de chaines de caractères représentant les noms des index
pour chaque ligne. df = pd.DataFrame(data, index=["age1", "age2"])
renverra
taille age
age1 120 10
age2 180 20
Une fois les index nommés il est possible évidemment de faire un accès selon le nom de la ligne par
print(df.loc["age2"])
.
Accès aux fichiers CSV
Utiliser la méthode read_csv('filename.csv')
pour ouvrir un fichier au format CSV. Cette méthode
renvoie un DataFrame. Faire un affichage avec print(df)
ne va pas afficher l'intégralité du DataFrame
mais va générer une ellipse pour avoir globalement les 5 premières lignes et les 5 dernières lignes. Si vous voulez
obtenir l'intégralité des lignes, il faut utiliser la méthode to_string()
de l'objet DataFrame.
Accès aux fichiers JSON
Utiliser la méthode read_json('filename.json')
pour ouvrir un fichier au format JSON. Cette méthode
renvoie un DataFrame. Faire un affichage avec print(df)
ne va pas afficher l'intégralité du DataFrame
mais va générer une ellipse pour avoir globalement les 5 premières lignes et les 5 dernières lignes. Si vous voulez
obtenir l'intégralité des lignes, il faut utiliser la méthode to_string()
de l'objet DataFrame.
Puisque JSON dispose globalement du même format que les dictionnaires python, la conversion d'un dictionnaire en DataFrame est quasiment immédiate.
import pandas as pd
data = {
"Duration": {
"0": 60,
"1": 40,
"2": 45
},
"Pulse": {
"0": 110,
"1": 117,
"2": 90
},
"Calories": {
"0": 450.1,
"1": 242.4,
"2": 500.0
}
}
df = pd.DataFrame(data)
print(df)
On obtient alors le tableau suivant Duration Pulse Calories
0 60 110 450.1
1 40 117 242.4
2 45 90 500.0
Visualisation de données
Une fois que le DataFrame est chargé en mémoire, vous disposez de plusieurs méthodes pour accéder et manipuler ces informations.
Affichage des 10 premières lignes du DataFrame : print(df.head(10))