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
Libérer: 2024-11-22 00:49:12
original
798 Les gens l'ont consulté

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

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

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

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

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!

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