Face à des tâches complexes de restructuration de données dans Pandas, la fonction Melt apparaît comme un outil puissant. Il transforme de manière transparente les dataframes de formats larges avec plusieurs colonnes en formats longs avec moins de colonnes.
Dans un scénario pratique, considérons un dataframe qui nécessite une refonte :
df = pd.DataFrame([[2, 4, 7, 8, 1, 3, 2013], [9, 2, 4, 5, 5, 6, 2014]], columns=['Amy', 'Bob', 'Carl', 'Chris', 'Ben', 'Other', 'Year'])
Amy Bob Carl Chris Ben Other Year 0 2 4 7 8 1 3 2013 1 9 2 4 5 5 6 2014
Pour transformer cela dataframe dans un format plus structuré, vous pouvez utiliser la fonction melt :
m = pd.melt(df, id_vars=['Year'], var_name='Name')
Cette opération génère ce qui suit dataframe :
Year Name value 0 2013 Amy 2 1 2014 Amy 9 2 2013 Bob 4 3 2014 Bob 2 4 2013 Carl 7 ...
Cependant, le résultat souhaité inclut une colonne supplémentaire nommée « Groupe ». Pour l'obtenir, remodelez le dictionnaire :
d2 = {} for k, v in d.items(): for item in v: d2[item] = k
Le dataframe peut désormais être mis à jour avec la colonne "Groupe" :
m['Group'] = m['Name'].map(d2)
Enfin, déplacez 'Autre' du 'Nom' à la colonne « Groupe » :
mask = m['Name'] == 'Other' m.loc[mask, 'Name'] = '' m.loc[mask, 'Group'] = 'Other'
La trame de données résultante s'aligne parfaitement avec la colonne souhaitée sortie :
Year Name value Group 0 2013 Amy 2 A 1 2014 Amy 9 A 2 2013 Bob 4 B 3 2014 Bob 2 B 4 2013 Carl 7 C ...
De cette manière, la fonction de fusion Pandas offre aux scientifiques des données un mécanisme polyvalent et efficace pour remodeler les trames de données, leur permettant de transformer et de réorganiser sans effort les données à diverses fins d'analyse et de visualisation.
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!