Maison > développement back-end > Tutoriel Python > Comment puis-je transformer des colonnes en lignes à l'aide de Pandas melt() ?

Comment puis-je transformer des colonnes en lignes à l'aide de Pandas melt() ?

Patricia Arquette
Libérer: 2024-12-21 13:35:09
original
432 Les gens l'ont consulté

How Can I Transform Columns into Rows Using Pandas melt()?

Convertir les colonnes en lignes avec des pandas

Dans l'analyse des données, il peut être utile de restructurer les ensembles de données pour améliorer la lisibilité et l'analyse. Une transformation courante consiste à convertir des colonnes en lignes. Cet article explique comment effectuer cette opération à l'aide de la bibliothèque Pandas.

Considérons un ensemble de données avec des informations spécifiques à l'emplacement et à la date stockées dans les en-têtes de colonnes, comme indiqué ci-dessous :

| location | name | Jan-2010 | Feb-2010 | March-2010 |
|---|---|---|---|---|
| A        | "test" | 12 | 20 | 30 |
| B        | "foo"  | 18 | 20 | 25 |
Copier après la connexion

L'objectif est pour remodeler les données dans un format où chaque date correspond à une ligne, comme suit :

| location | name | Date | Value |
|---|---|---|---|
| A        | "test" | Jan-2010 | 12 |
| A        | "test" | Feb-2010 | 20 |
| A        | "test" | March-2010 | 30 |
| B        | "foo"  | Jan-2010 | 18 |
| B        | "foo"  | Feb-2010 | 20 |
| B        | "foo"  | March-2010 | 25 |
Copier après la connexion

Pour réaliser cette transformation, Pandas fournit la fonction melt. Appliquez simplement melt au DataFrame, en spécifiant les colonnes à conserver comme identifiants de ligne (id_vars) et les en-têtes de colonnes pour les nouvelles colonnes (var_name et value_name).

import pandas as pd

df.melt(id_vars=["location", "name"],
        var_name="Date",
        value_name="Value")
Copier après la connexion

Pour les versions Pandas antérieures à 0.20, un léger une approche différente est nécessaire, impliquant une combinaison de fusion et de tri :

df2 = pd.melt(df,
                  id_vars=["location", "name"], 
                  var_name="Date",
                  value_name="Value")

df2 = df2.sort(["location", "name"])
Copier après la connexion

N'oubliez pas de réinitialiser l'index pour garantir un nettoyage propre sortie :

df2.reset_index(drop=True)
Copier après la connexion

Cette technique offre un moyen pratique de remodeler les cadres de données, facilitant l'analyse et la présentation des données tabulaires.

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