Skip to content

Pandas Unstack : Explication claire

Updated on

Pandas est une puissante bibliothèque de manipulation de données en Python qui fournit des structures de données flexibles et efficaces. L'une des fonctionnalités les plus utiles de Pandas est la capacité de remodeler les données de différentes manières pour répondre à vos besoins d'analyse. Cet article se concentrera sur la fonction unstack(), une méthode souvent utilisée mais pas toujours bien comprise.

La fonction unstack() dans Pandas est une méthode pour remodeler les cadres de données. Elle fait partie d'un groupe plus large de méthodes qui sont utilisées pour pivoter les cadres de données entre les formats longs et larges. Comprendre comment utiliser unstack() efficacement peut grandement améliorer vos capacités de manipulation de données dans Pandas.

Vous souhaitez créer rapidement des visualisations de données à partir d'un dataframe Python Pandas sans écrire de code ?

PyGWalker est une bibliothèque Python pour l'analyse exploratoire de données avec visualisation. PyGWalker (opens in a new tab) peut simplifier votre flux de travail d'analyse et de visualisation de données dans Jupyter Notebook en transformant votre dataframe pandas (et dataframe polaires) en une interface utilisateur de style Tableau pour l'exploration visuelle.

PyGWalker pour la visualisation des données (opens in a new tab)

Que fait unstack() dans Pandas ?

La fonction unstack() dans Pandas est utilisée pour remodeler un cadre de données. C'est une méthode qui "pivot" un DataFrame d'un format long (ou empilé) à un format large. Elle déplace essentiellement les données des lignes vers les colonnes, offrant une nouvelle vue de vos données.

Par exemple, considérez un DataFrame avec des index multi-niveaux. La fonction unstack() peut déplacer les données d'un niveau interne de l'index des lignes vers les en-têtes des colonnes, créant ainsi une table pivot. Cela peut être particulièrement utile lors de la manipulation d'index hiérarchiques, car cela vous permet de réorganiser vos données d'une manière qui peut être plus propice à certains types d'analyses.

Comment dépiler les données dans Pandas ?

Dépiler les données dans Pandas est simple une fois que vous avez compris le concept. La fonction unstack() est appelée sur un objet DataFrame, et elle prend un argument optionnel : le niveau à "dépiler" ou pivoter.

Si aucun niveau n'est spécifié, la fonction unstack() dépile le dernier niveau de l'index du DataFrame. Si vous voulez dépiler un niveau différent, vous pouvez le spécifier soit par son numéro d'index, soit par son nom.

Voici un exemple de base :

import pandas as pd
 
## Création d'un DataFrame à index multiples
index = pd.MultiIndex.from_tuples([(i, j) for i in ['A', 'B', 'C'] for j in ['x', 'y', 'z']])
df = pd.DataFrame({'Données': range(9)}, index=index)
 
## Dépiler le DataFrame
df_depile = df.unstack()
 
print(df_depile)

Dans cet exemple, la fonction unstack() pivote le dernier niveau de l'index ('x', 'y', 'z') dans les en-têtes de colonne, créant ainsi une table pivot.

Quel est le niveau de dépaquetage ?

Le niveau dans unstack() fait référence au ou aux niveaux de l'index que vous souhaitez dépiler ou pivoter. Dans un DataFrame avec un index multi-niveaux, les niveaux sont numérotés du niveau le plus externe (0) au niveau le plus interne.

Lorsque vous appelez unstack(), vous pouvez spécifier le niveau que vous souhaitez dépiler. Si aucun niveau n'est spécifié, unstack() dépile le dernier (ou le niveau le plus interne) de l'index.

Par exemple, dans un DataFrame avec un index multi-niveaux de ['A', 'B', 'C'] et ['x', 'y', 'z'], le niveau de 'A', 'B', 'C' est 0 (le niveau le plus externe), et le niveau de 'x', 'y', 'z' est 1.

Quand utiliser unstack() avec pivot() dans Pandas ?

La fonction unstack() et la fonction pivot() dans Pandas sont toutes deux utilisées pour remodeler les données, mais elles ont des objectifs légèrement différents et sont utilisées dans des scénarios différents.

La fonction unstack() est utilisée lorsque vous avez un DataFrame avec un index multi-niveaux, et que vous souhaitez déplacer un ou plusieurs niveaux de l'index vers les en-têtes des colonnes. Cela est souvent utile lorsque vous avez des données hiérarchiques et que vous souhaitez réorganiser vos données pour les rendre plus faciles à analyser.

D'autre part, la fonction pivot() est utilisée lorsque vous souhaitez remodeler vos données en fonction des valeurs des colonnes. Elle vous permet de transformer ou remodeler les données du format long au format large. Elle est souvent utilisée lorsque vous avez des mesures répétées pour les mêmes sujets, et que vous souhaitez obtenir chaque sujet sur sa propre ligne avec chaque mesure dans une colonne distincte.

Voici un exemple de la façon dont vous pourriez utiliser à la fois unstack() et pivot() dans la même analyse :

import pandas as pd
 
## Création d'un DataFrame
df = pd.DataFrame({
    'date': pd.date_range(start='2023-01-01', periods=3),
    'country': ['US', 'UK', 'CA'] * 3,
    'product': ['A', 'B', 'C'] * 3,
    'sales': range(1, 10)
})
 
## Pivote le DataFrame
df_pivot = df.pivot(index='date', columns='country', values='sales')
 
## Dépiler le DataFrame
df_depile = df.set_index(['date', 'country']).unstack('country')
 
print(df_pivot)
print(df_depile)

Dans cet exemple, nous utilisons d'abord pivot() pour obtenir chaque pays dans sa propre colonne, avec les ventes comme valeurs. Puis nous utilisons unstack() pour obtenir le même résultat, mais en déplaçant le niveau 'country' de l'index vers les en-têtes de colonne.

En conclusion, l'utilisation de unstack() ou de pivot() dépend de la structure de vos données et de l'opération de remodelage spécifique que vous souhaitez effectuer. Les deux sont des outils puissants pour remodeler les données dans Pandas, et comprendre comment les utiliser efficacement peut grandement améliorer vos capacités d'analyse de données.

Conclusion

La maîtrise de l'art de la désérection dans Pandas peut considérablement améliorer vos capacités de manipulation des données. La fonction unstack() est un outil puissant qui vous permet de pivoter des données à partir de lignes en colonnes, offrant un nouveau point de vue sur vos données. Que vous traitiez d'indices hiérarchiques ou que vous souhaitiez pivoter un niveau de votre DataFrame, unstack() est une fonction qui devrait se trouver dans l'arsenal de chaque analyste de données. Avec les connaissances et les exemples fournis dans cet article, vous êtes désormais prêt à déséromper vos propres cadres de données dans Pandas. Bonne désérection!

Foire aux questions (FAQ)

Que fait unstack () dans pandas?

La fonction unstack() dans Pandas est utilisée pour remodeler un dataframe. C'est une méthode qui "pivote" un DataFrame d'un format long (ou empilé) à un format large. Il déplace essentiellement les données des lignes vers les colonnes, offrant une nouvelle vue sur vos données.

Comment désécrire des données dans pandas?

La désérecion des données dans Pandas est simple une fois que vous avez compris le concept. La fonction unstack() est appelée sur un objet DataFrame et prend un argument facultatif: le niveau à "désélectionner" ou à pivoter. Si aucun niveau n'est spécifié, la fonction unstack() désécalera le dernier niveau de l'index du DataFrame. Si vous souhaitez désérecter un niveau différent, vous pouvez le spécifier soit par son numéro d'index, soit par son nom.

Quand utiliser unstack() avec pivot() dans pandas?

La fonction unstack() et la fonction pivot() dans Pandas sont toutes deux utilisées pour remodeler les données, mais elles servent à des fins légèrement différentes et sont utilisées dans des scénarios différents. La fonction unstack() est utilisée lorsque vous avez un DataFrame avec un index à plusieurs niveaux et que vous souhaitez déplacer un ou plusieurs niveaux de l'index vers les en-têtes de colonne. La fonction pivot() est utilisée lorsque vous souhaitez remodeler vos données en fonction des valeurs de colonne.