Remodelage long à large de Pandas avec plusieurs variables
La conversion de données du format long au format large dans Pandas peut être difficile, en particulier lorsque plusieurs variables sont impliqué. Cette question explore une méthode de remodelage des données à l'aide de la fonction pivot.
Les données d'origine fournies sont :
Salesman Height product price Knut 6 bat 5 Knut 6 ball 1 Knut 6 wand 3 Steve 5 pen 2
Le format large souhaité est :
Salesman Height product_1 price_1 product_2 price_2 product_3 price_3 Knut 6 bat 5 ball 1 wand 3 Steve 5 pen 2 NA NA NA NA
Un L'approche, suggérée par Chris Albon, consiste à utiliser la fonction pivot comme suit :
df.pivot(index='Salesman', columns='product', values='price')
Cette approche crée un index à plusieurs niveaux, avec les colonnes Salesman et product comme indices de ligne et de colonne, respectivement. La colonne de prix devient les valeurs.
La trame de données résultante sera :
product bat ball wand Salesman Knut 5 1 3 Steve 2 NaN NaN
Pour obtenir le format souhaité, des étapes supplémentaires sont nécessaires pour empiler les colonnes et extraire les valeurs du produit et du prix dans colonnes séparées. Ceci peut être réalisé en utilisant les fonctions stack et reset_index comme suit :
df.pivot(index='Salesman', columns='product', values='price') \ .stack().reset_index() \ .rename(columns={'level_1':'product', 0:'price'})
Le résultat final sera le format large souhaité.
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!