Maison > développement back-end > Tutoriel Python > Comment la fonction Melt de Pandas peut-elle remodeler de larges trames de données dans un format long souhaité avec des colonnes supplémentaires ?

Comment la fonction Melt de Pandas peut-elle remodeler de larges trames de données dans un format long souhaité avec des colonnes supplémentaires ?

Barbara Streisand
Libérer: 2024-12-08 08:40:12
original
936 Les gens l'ont consulté

How Can Pandas' Melt Function Reshape Wide Dataframes into a Desired Long Format with Additional Columns?

Fonction Pandas Melt pour la transformation des données

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'])
Copier après la connexion
   Amy  Bob  Carl  Chris  Ben  Other  Year
0    2    4     7      8    1      3  2013
1    9    2     4      5    5      6  2014
Copier après la connexion

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

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

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

Le dataframe peut désormais être mis à jour avec la colonne "Groupe" :

m['Group'] = m['Name'].map(d2)
Copier après la connexion

Enfin, déplacez 'Autre' du 'Nom' à la colonne « Groupe » :

mask = m['Name'] == 'Other'
m.loc[mask, 'Name'] = ''
m.loc[mask, 'Group'] = 'Other'
Copier après la connexion

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

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!

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