Remodeler des données longues en grand format avec Pandas
Lorsque vous travaillez avec des données dans un format long, il peut être nécessaire de les remodeler en un format large pour une meilleure analyse et visualisation. Un défi courant consiste à remodeler les données en fonction de plusieurs variables.
Considérez le cadre de données suivant :
salesman height product price Knut 6 bat 5 Knut 6 ball 1 Knut 6 wand 3 Steve 5 pen 2
L'objectif est de remodeler ces données dans un format large :
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
Bien que les fonctions de fusion/empilement/déstack soient couramment utilisées pour remodeler les données, elles peuvent ne pas convenir à ce scénario spécifique.
Une solution à ce problème peut être trouvée en utilisant le code suivant :
<code class="python">import pandas as pd # Create sample data raw_data = { 'salesman': ['Knut', 'Knut', 'Knut', 'Steve'], 'height': [6, 6, 6, 5], 'product': ['bat', 'ball', 'wand', 'pen'], 'price': [5, 1, 3, 2] } df = pd.DataFrame(raw_data) # Reshape data df_wide = df.pivot_table(index=['salesman', 'height'], columns='product', values='price') # Reset index to get it in the desired format df_wide = df_wide.reset_index(level=[0, 1]) # Rename columns new_columns = ['salesman', 'height'] + [f'product_{i}' for i in range(1, df_wide.shape[1] - 1)] + [f'price_{i}' for i in range(1, df_wide.shape[1] - 1)] df_wide.columns = new_columns # Handle missing values df_wide.fillna("NA", inplace=True)</code>
La trame de données résultante df_wide sera au 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!