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
Barbara Streisandoriginal
2024-12-08 08:40:12938parcourir

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'])
   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!

Déclaration:
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