Maison >développement back-end >Tutoriel Python >Comment la fusion des pandas et la manipulation du dictionnaire peuvent-elles remodeler une large trame de données dans un format ordonné ?

Comment la fusion des pandas et la manipulation du dictionnaire peuvent-elles remodeler une large trame de données dans un format ordonné ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-22 00:49:12896parcourir

How Can Pandas Melt and Dictionary Manipulation Reshape a Wide Dataframe into a Tidy Format?

Fonction Pandas Melt : remodeler facilement des trames de données

La fonction de fusion Pandas est un outil puissant pour remodeler des trames de données, transformant des données larges en un format long et ordonné. Cela rend les données plus faciles à analyser et à manipuler.

Problème : remodeler un dataframe

Considérez le dataframe et le dictionnaire suivants :

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

d = {'A': ['Amy'], 'B': ['Bob', 'Ben'], 'C': ['Carl', 'Chris']}

L'objectif est de remodeler le dataframe en un format soigné avec des colonnes supplémentaires :

    Group   Name  Year  Value
0      A    Amy  2013      2
1      A    Amy  2014      9
2      B    Bob  2013      4
...
10  Other         2013      3
11  Other         2014      6

Utiliser Melt et Reshaping Dictionnaire

La fonction de fusion à elle seule ne complètera pas la transformation. Pour obtenir le résultat souhaité, nous devons également manipuler le dictionnaire :

m = pd.melt(df, id_vars=['Year'], var_name='Name')

d2 = {}
for k, v in d.items():
    for item in v:
        d2[item] = k

m['Group'] = m['Name'].map(d2)

Gestion des valeurs 'Autres'

Enfin, nous déplaçons 'Autre' de la colonne 'Nom' vers la colonne Colonne « Groupe » :

mask = m['Name'] == 'Other'
m.loc[mask, 'Name'] = ''
m.loc[mask, 'Group'] = 'Other'

Le dataframe résultant correspond désormais au format souhaité. La fonction de fusion, combinée à quelques manipulations supplémentaires, offre un moyen flexible et efficace de remodeler les trames de données.

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