Maison >développement back-end >Tutoriel Python >Comment puis-je faire pivoter efficacement un DataFrame Pandas ?

Comment puis-je faire pivoter efficacement un DataFrame Pandas ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-27 15:43:11294parcourir

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=<row_labels>, columns=<col_labels>, values=<value_cols>)

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')
  • Pivot sur plusieurs valeurs :
df.pivot(index='row', columns='col', values=['val0', 'val1'])
  • Pivot avec des fonctions d'agrégation personnalisées :
df.pivot(index='row', columns='col', values='val', aggfunc='mean')
  • Gestion des doublons clés :

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. Alternativement, vous pouvez utiliser :

df.pivot_table(index='row', columns='col', values='val', fill_value=0)
  • Autres méthodes de 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 des lignes et des colonnes, puis dépilez-les pour pivot.
  • pd.crosstab : spécialement conçu pour créer des tableaux croisés ou des tableaux croisés dynamiques.

Techniques de pivotement avancées :

  • 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')

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn