Maison >développement back-end >Tutoriel Python >Comment puis-je transformer des colonnes en lignes à l'aide de Pandas melt() ?
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 |
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 |
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")
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"])
N'oubliez pas de réinitialiser l'index pour garantir un nettoyage propre sortie :
df2.reset_index(drop=True)
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!