Maison > développement back-end > Tutoriel Python > Comment la fonction « melt » de Pandas peut-elle remodeler les données avec des colonnes de date en lignes ?

Comment la fonction « melt » de Pandas peut-elle remodeler les données avec des colonnes de date en lignes ?

Mary-Kate Olsen
Libérer: 2024-12-30 11:02:14
original
452 Les gens l'ont consulté

How Can Pandas' `melt` Function Reshape Data with Date Columns into Rows?

Convertir les colonnes en lignes avec des pandas

Lorsque les données tabulaires contiennent des dates comme en-têtes de colonne, la conversion de ces colonnes en lignes avec les valeurs correspondantes peut être une tâche précieuse. Pour réaliser cette transformation, la bibliothèque Pandas de Python offre une solution pratique.

Problème

L'ensemble de données fourni présente une structure dans laquelle les informations sont regroupées par emplacement pour différentes dates, chacune représentée par un en-tête de colonne distinct. L'objectif est de remodeler ces données dans un format où chaque ligne représente un lieu, une date et une valeur associée.

Solution

Pour convertir les colonnes en lignes, Pandas fournit la fonction de fusion. Cette fonction nous permet de spécifier quelles colonnes doivent servir d'en-têtes de colonnes et lesquelles doivent servir d'en-têtes de lignes. Dans ce contexte, le nom et l'emplacement sont définis comme en-têtes de ligne, et les en-têtes de date sont fusionnés dans une seule colonne Date, tandis que leurs valeurs deviennent la colonne Valeur.

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

Le DataFrame résultant sera similaire au résultat attendu :

  location  name        Date  Value
0        A  "test"    Jan-2010     12
1        B   "foo"    Jan-2010     18
2        A  "test"    Feb-2010     20
3        B   "foo"    Feb-2010     20
4        A  "test"  March-2010     30
5        B   "foo"  March-2010     25
Copier après la connexion

Pour les anciennes versions de Pandas (<0,20), une combinaison de pd.melt et de tri peut obtenir le résultat souhaité résultat :

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

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