Maison >développement back-end >Tutoriel Python >Comment puis-je remodeler un DataFrame Pandas du format large au format long à l'aide de « pd.melt() » ?

Comment puis-je remodeler un DataFrame Pandas du format large au format long à l'aide de « pd.melt() » ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-22 14:43:14670parcourir

How Can I Reshape a Pandas DataFrame from Wide to Long Format Using `pd.melt()`?

Convertir les colonnes en lignes avec des pandas

Cette question répond à la nécessité de transformer un ensemble de données CSV dans lequel les informations relatives à la date sont réparties sur plusieurs colonnes dans un format dans lequel chaque date a sa propre ligne. Pour réaliser cette transformation, l'utilisateur utilise la fonction pd.melt.

La structure CSV originale ressemble à :

location    name    Jan-2010    Feb-2010    March-2010
A           "test"  12          20          30
B           "foo"   18          20          25

Le résultat souhaité est un tableau avec l'emplacement des colonnes, le nom, la date et Valeur :

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

La fonction pd.melt fournit le moyen de restructurer les données. Il faut plusieurs arguments :

  • id_vars : Les colonnes qui restent inchangées lorsque la table est fondue. Dans ce cas, emplacement et nom.
  • var_name : Le nom de la nouvelle colonne qui contiendra les noms de colonnes d'origine (tels qu'ils étaient avant la fusion). Dans ce cas, Date.
  • value_name : Le nom de la colonne qui contiendra les valeurs des colonnes de données d'origine. Dans ce cas, Value.
df.melt(id_vars=["location", "name"],
        var_name="Date",
        value_name="Value")

Le DataFrame résultant correspond à la sortie souhaitée, chaque mois occupant désormais une ligne distincte.

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!

Déclaration:
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