Maison > développement back-end > Tutoriel Python > Comment la fonction « melt » de Pandas peut-elle remodeler un DataFrame avec des colonnes de groupe et de nom supplémentaires ?

Comment la fonction « melt » de Pandas peut-elle remodeler un DataFrame avec des colonnes de groupe et de nom supplémentaires ?

DDD
Libérer: 2024-11-28 00:04:11
original
1090 Les gens l'ont consulté

How Can Pandas' `melt` Function Reshape a DataFrame with Additional Group and Name Columns?

Fonction Pandas Melt : un outil de remodelage

Problème

Considérez un DataFrame df et un dictionnaire d. Vous souhaitez remodeler df en un tableau avec des colonnes supplémentaires, à savoir Group et Name. Le résultat souhaité doit ressembler à :

    Group   Name  Year  Value
 0      A    Amy  2013      2
 1      A    Amy  2014      9
 2      B    Bob  2013      4
 3      B    Bob  2014      2
 4      B    Ben  2013      1
 5      B    Ben  2014      5
 6      C   Carl  2013      7
 7      C   Carl  2014      4
 8      C  Chris  2013      8
 9      C  Chris  2014      5
10  Other         2013      3
11  Other         2014      6
Copier après la connexion

Solution

Pour réaliser ce remodelage, nous utiliserons la fonction de fusion Pandas.

m = pd.melt(df, id_vars=['Year'], var_name='Name')
Copier après la connexion

Cela créera un DataFrame fondu m avec les colonnes Année, Nom et valeur. Pour ajouter la colonne Groupe, nous remodelons d comme suit :

d2 = {}
for k, v in d.items():
  for item in v:
    d2[item] = k
Copier après la connexion

Nous mappons ensuite d2 à m['Name'] pour remplir la colonne Groupe.

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

Enfin, nous déplacez les valeurs « Autres » du nom vers le groupe :

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

Le DataFrame m résultant correspondra à la sortie souhaitée.

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal