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.
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.
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")
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
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"])
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!