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
Libérer: 2024-12-27 15:43:11
original
304 Les gens l'ont consulté

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>)
Copier après la connexion

Exemples :

  • Pivot sur une seule colonne :
df.pivot(index='row', columns='col', values='val')
Copier après la connexion
  • Pivot sur plusieurs colonnes :
df.pivot(index=['row', 'item'], columns='col', values='val')
Copier après la connexion
  • Pivot sur plusieurs valeurs :
df.pivot(index='row', columns='col', values=['val0', 'val1'])
Copier après la connexion
  • Pivot avec des fonctions d'agrégation personnalisées :
df.pivot(index='row', columns='col', values='val', aggfunc='mean')
Copier après la connexion
  • 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)
Copier après la connexion
  • Autres méthodes de pivotement :
  • groupby dépiler :

    df.groupby('row', 'col')['val'].mean().unstack(fill_value=0)
    Copier après la connexion
  • 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')
Copier après la connexion
  • Agrégation multiple fonctions :
df.pivot_table(index='row', columns='col', values='val', aggfunc=['mean', 'sum'])
Copier après la connexion
  • Subdivision en plusieurs colonnes :
df.pivot_table(index='row', columns=['item', 'col'], values='val', fill_value=0, aggfunc='mean')
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal