Maison >développement back-end >Tutoriel Python >Comment transformer les colonnes Pandas DataFrame en lignes avec une colonne « Date » et « Valeur » ?

Comment transformer les colonnes Pandas DataFrame en lignes avec une colonne « Date » et « Valeur » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 09:07:11619parcourir

How to Transform Pandas DataFrame Columns into Rows with a

Convertir des colonnes en lignes avec Pandas

Pour remodeler un ensemble de données de colonnes en lignes, où chaque colonne représente une date différente et la sortie souhaitée nécessite une colonne "Date" et la colonne "Valeur", utilisez le fondu Pandas fonction.

Solution :

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

Exemple :

import pandas as pd

df = pd.DataFrame(
    {
        "location": ["A", "B"],
        "name": ["test", "foo"],
        "Jan-2010": [12, 18],
        "Feb-2010": [20, 20],
        "March-2010": [30, 25],
    }
)

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

print(result)

Sortie :

  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) :

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

df2 = df2.sort(["location", "name"])

# Optionally, reset the index
# df2 = df2.reset_index(drop=True)

Ce code triera la sortie par « emplacement » et « nom » et fournira une sortie propre sans index.

Remarque : Dans les versions plus récentes de Pandas, utilisez sort_values ​​au lieu de sort.

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