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 ?
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
Pour réaliser ce remodelage, nous utiliserons la fonction de fusion Pandas.
m = pd.melt(df, id_vars=['Year'], var_name='Name')
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
Nous mappons ensuite d2 à m['Name'] pour remplir la colonne Groupe.
m['Group'] = m['Name'].map(d2)
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'
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!