"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je faire pivoter efficacement un DataFrame Pandas ?

Comment puis-je faire pivoter efficacement un DataFrame Pandas ?

Publié le 2024-12-21
Parcourir:441

How Can I Effectively Pivot a Pandas DataFrame?

Comment puis-je faire pivoter un dataframe ?

Un pivot est une transformation qui prend un dataframe avec des colonnes représentant des catégories et des lignes représentant des valeurs, et le réoriente de sorte que les catégories sont dans les lignes, les valeurs sont dans les colonnes et l'index est défini sur les valeurs de ligne d'origine.

Basique syntaxe :

df.pivot(index=, columns=, values=)

Exemples :

  • Pivot sur une seule colonne :
df.pivot(index='row', columns='col', values='val')
  • Pivot sur plusieurs colonnes :
df.pivot(index=['row', 'item'], columns='col', values='val')
  • Pivoter sur plusieurs valeurs :
df.pivot(index='row', columns='col', values=['val0', 'val1'])
  • Pivot avec fonctions d'agrégation personnalisées :
df.pivot(index='row', columns='col', values='val', aggfunc='mean')
  • Gestion des clés en double :

Par défaut, s'il y a des clés en double dans les étiquettes de ligne ou de colonne, une erreur sera générée. Vous pouvez également utiliser :

df.pivot_table(index='row', columns='col', values='val', fill_value=0)
  • Autres méthodes pour pivotement :
  • groupby dépiler :

    df.groupby('row', 'col')['val'].mean().unstack(fill_value=0)
  • pd.DataFrame.set_index : utilisez set_index pour définir les axes de ligne et de colonne, puis dépilez pour pivoter.
  • pd.crosstab : spécialement conçu pour créer des tableaux croisés ou des tableaux croisés dynamiques.

Pivot avancé Techniques :

  • Tabulation croisée (comptage de fréquence) :
pd.crosstab(index=df['row'], columns=df['col'], values=df['val'], aggfunc='count')
  • Agrégation multiple fonctions :
df.pivot_table(index='row', columns='col', values='val', aggfunc=['mean', 'sum'])
  • Subdivision en plusieurs colonnes :
df.pivot_table(index='row', columns=['item', 'col'], values='val', fill_value=0, aggfunc='mean')
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3