Startrooper Dans Le Desert

Pandas est une bibliothèque d’analyse de données Python très puissante et polyvalente qui accélère les étapes de pré-traitement des projets de Data Science. Elle fournit de nombreuses fonctions et méthodes très utiles pour l’analyse de données. Voyons comment accélérer notre processus d’analyse de données grâce à ces quelques astuces simples.

Comme toujours, nous commençons par importer NumPy et Pandas :

import numpy as np
import pandas as pd

Créons un exemple de DataFrame sur lequel travailler. Pandas est une bibliothèque polyvalente qui offre généralement plusieurs façons d’effectuer une tâche. Ainsi, il existe de nombreuses façons de créer un dataframe. Une méthode courante consiste à passer un dictionnaire qui comprend des colonnes sous forme de paires clé-valeur (key-value).

values = np.random.randint(10, size=10)
years = np.arange(2013,2023)
groups = ['A','A','B','A','B','B','C','A','C','C']

df = pd.DataFrame({'group':groups, 'year':years, 'value':values})

df
Dataframe Pour Astuces Pandas

Nous avons également utilisé numpy pour créer des tableaux à utiliser comme valeurs dans les colonnes. np.arange renvoie une plage de valeurs dans l’intervalle spécifié. np.random.randint renvoie des valeurs entières aléatoires basées sur la plage et la taille spécifiées.

Calcul des sommes cumulées

Le dataframe contient des valeurs annuelles de 3 groupes différents. Il se peut que nous ne soyons intéressés que par les valeurs annuelles, mais dans certains cas, nous avons également besoin d’une somme cumulée. Pandas fournit une fonction facile à utiliser pour calculer la somme cumulée, à savoir cumsum.

df['cumsum'] = df['value'].cumsum()

df
Dataframe Avec Cumsum

Nous avons créé une colonne nommée “cumsum” qui contient la somme cumulée des nombres dans la colonne des valeurs. Cependant, elle ne tient pas compte des groupes. Ce type de valeurs cumulées peut s’avérer inutile dans certains cas, car nous ne sommes pas en mesure de faire la distinction entre les groupes. Ne t’inquiète pas ! Il existe une solution très simple et pratique à ce problème. Nous pouvons appliquer la fonction groupby.

Groupement des sommes cumulées

df['cumsum'] = df[['value','group']].groupby('group').cumsum()

df
Dataframe Cumsum Groupby

Nous avons d’abord appliqué la fonction groupby à la colonne “group”, puis la fonction cumsum. Les valeurs sont maintenant additionnées au sein de chaque groupe.

Tri des valeurs

Pour améliorer l’aspect du dataframe, nous pouvons trier les valeurs en fonction du groupe plutôt que de l’année afin de pouvoir séparer visuellement les groupes.

df.sort_values(by='group').reset_index()
Reset Index Dataframe

Nous avons appliqué la fonction sort_values et réinitialisé l’index avec la fonction reset_index. Comme nous pouvons le voir dans le dataframe retourné, l’index d’origine est conservé en tant que colonne. Nous pouvons l’éliminer en fixant le paramètre drop de la fonction reset_index à True.

df = df.sort_values(by='group').reset_index(drop=True)

df
Dataframe Trie Et Avec Nouvel Index

C’est mieux maintenant !

Insertion d’une nouvelle colonne

Lorsque nous voulons ajouter une nouvelle colonne à un dataframe, elle est ajoutée à la fin par défaut. Cependant, pandas offre la possibilité d’ajouter la nouvelle colonne à n’importe quelle position en utilisant la fonction insert.

new = np.random.randint(5, size=10)
df.insert(2, 'new_col', new)

df
Ajout Nouvelle Colonne Index 2

Nous avons spécifié la position en passant un index comme premier argument. Cette valeur doit être un entier. Les indices de colonne commencent à zéro, tout comme les indices de ligne. Le deuxième argument est le nom de la colonne et le troisième argument est l’objet qui contient les valeurs, qui peut être une série ou un objet de type tableau.

Suppression d’une colonne

Considérons que nous voulons supprimer une colonne d’un dataframe mais que nous voulons également conserver cette colonne en tant que série distincte. Une solution consiste à affecter la colonne à une série, puis à utiliser la fonction drop. Une méthode plus simple consiste à utiliser la fonction pop.

value = df.pop('value')

df
Suppression Colonne Dataframe

En une ligne de code, nous supprimons la colonne des valeurs de la base de données et la stockons dans une série pandas.

Filtre d’un DataFrame

Il est parfois nécessaire de filtrer un dataframe en fonction d’une condition ou d’appliquer un masque pour obtenir certaines valeurs. La fonction query est un moyen simple de filtrer un dataframe. Je vais utiliser l’exemple de dataframe que nous avons utilisé. Commençons par réinsérer la colonne “value” :

df.insert(2, 'value', value)

df
Reinsertion Colonne Value

Il est très simple d’utiliser la fonction query qui ne requiert que la condition.

df.query('value < new_col')
Filtrer Un Dataframe

Il renvoie les lignes dans lesquelles “value” est inférieur à “new_col”. Nous pouvons définir des conditions plus complexes et utiliser des opérateurs supplémentaires.

df.query('2*new_col > value')
Autre Condition De Filtre

Il est également possible de combiner plusieurs conditions en une seule requête.

df.query('2*new_col > value & cumsum < 15')
Combinaison De Plusieurs Conditions

Fonctions d’agrégation

Il existe de nombreuses fonctions d’agrégation que nous pouvons utiliser pour calculer des statistiques de base sur des colonnes, telles que la moyenne, la somme, le décompte, etc. Nous pouvons appliquer chacune de ces fonctions à une colonne. Toutefois, dans certains cas, il peut être nécessaire de vérifier plusieurs types de statistiques. Par exemple, le décompte et la moyenne peuvent être importants dans certains cas. Au lieu d’appliquer les fonctions séparément, pandas propose une fonction agg pour appliquer plusieurs fonctions d’agrégation.

df[['group','value']].groupby('group').agg(['mean','count'])
Dataframe Avec Fonctions Agregation

Il est plus logique de voir à la fois la moyenne (mean) et le nombre d’observations (count). Nous pouvons facilement détecter les valeurs aberrantes qui ont des valeurs moyennes extrêmes mais un très faible nombre d’observations.

Je pense que le succès et la prévalence de Pandas viennent des fonctions polyvalentes, puissantes et faciles à utiliser pour manipuler et analyser les données. Il y a presque toujours plusieurs façons d’effectuer une tâche avec Pandas. Étant donné qu’une grande partie du temps passé sur un projet de Data Science est consacrée aux étapes de nettoyage et de prétraitement des données, Pandas est un atout précieux à avoir dans sa boîte à outils.

Pour aller plus loin, tu peux consulter mon article sur GroupBy de Pandas pour maîtriser cette fonction en 10 étapes.

Publications similaires

0 Commentaires
Le plus récent
Le plus ancien Le plus populaire
Commentaires en ligne
Afficher tous les commentaires