Entpivotieren Sie einen Python-Pandas-Datenrahmen

Luqman Khan 21 Juni 2023
  1. Verwenden Sie die Funktion melt(), um einen Python-Pandas-Datenrahmen zu entpivotieren
  2. Abschluss
Entpivotieren Sie einen Python-Pandas-Datenrahmen

Python ist aufgrund seines großartigen datenzentrierten Paket-Ökosystems eine bevorzugte Sprache für die Datenanalyse. Eines dieser Pakete ist Pandas, das den Datenimport und die Analyse erheblich vereinfacht.

Dieser Artikel verwendet die Pandas dataframe melt() function, um einen Dataframe vom Wide- ins Long-Format zu konvertieren, wobei optional Identifier-Variablen gesetzt bleiben.

Verwenden Sie die Funktion melt(), um einen Python-Pandas-Datenrahmen zu entpivotieren

Diese Funktion kann einen Datenrahmen in ein Format konvertieren, in dem eine oder mehrere Spalten Bezeichnervariablen (ID-Variablen) sind. Alle anderen Spalten, die als gemessene Variablen (Wert-Variablen) betrachtet werden, sind auf die Zeilenachse unpivotiert, sodass nur zwei Nicht-Identifikator-Spalten übrig bleiben, variable und Wert.

Syntax:

DataFrame.melt(id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)

Parameter:

  • frame:‎ Dies ist der DataFrame, den wir verwenden.‎
  • id_vars:‎ Dies ist die Spalte, die wir als Kennungsvariable verwenden.
  • value_vars:‎ Dies wird zum Unpivotieren verwendet.‎
  • var_name: ‎Dies gibt einen Namen für die Variablenspalte an. Wenn nichts angegeben ist, wird der Rahmen, die Variable oder der Spaltenname verwendet.
  • value_name:‎‎ Der Wertspalte sollte ein eindeutiger Name gegeben werden.
  • col_level: Verwenden Sie dieses Level, um die Spalten zu schmelzen, wenn es sich um MultiIndizes handelt.
  • Returns: Konvertieren Sie einen DataFrame in ein Format mit einer oder mehreren Identifier-Variablen in jeder Spalte.

Beispiel 1:

Erstellen Sie zuerst einen Datenrahmen mit den Spalten A, Bsc, Cse und xyz.

import pandas as pd

df = pd.DataFrame(
    {
        "A": [12, 4, 5, 44, 1],
        "Bsc": [5, 2, 54, 3, 2],
        "Cse": [20, 16, 7, 3, 8],
        "xyz": [14, 3, 17, 2, 6],
    }
)
df

Ausgang:

|      | A    | Bsc  | Cse  | xyz  |
| ---- | ---- | ---- | ---- | ---- |
| 0    | 12   | 5    | 20   | 14   |
| 1    | 4    | 2    | 16   | 3    |
| 2    | 5    | 54   | 7    | 17   |
| 3    | 44   | 3    | 3    | 2    |
| 4    | 1    | 2    | 8    |      |

Die folgende Funktion entpivotiert den Datenrahmen. Hier ist A ein Bezeichner und die Spalte Bsc ist die Wertvariable.

df.melt(id_vars=["A"], value_vars=["Bsc"])

Ausgang:

|      | A    | variable | value |
| ---- | ---- | -------- | ----- |
| 0    | 12   | Bsc      | 5     |
| 1    | 4    | Bsc      | 2     |
| 2    | 5    | Bsc      | 54    |
| 3    | 44   | Bsc      | 3     |
| 4    | 1    | Bsc      | 2     |

Beispiel 2:

Legen Sie mit der Funktion dataframe.melt() die Spalte A als Bezeichnervariable und die Spalten Bsc und Csc als Wertvariablen fest. ‎‎‎‎

df.melt(
    id_vars=["A"],
    value_vars=["Bsc", "Cse"],
    var_name="Variable_column",
    value_name="Value_column",
)

Ausgang:

| index | A    | Variable_column | Value_column |
| ----- | ---- | --------------- | ------------ |
| 0     | 12   | Bsc             | 5            |
| 1     | 4    | Bsc             | 2            |
| 2     | 5    | Bsc             | 54           |
| 3     | 44   | Bsc             | 3            |
| 4     | 1    | Bsc             | 2            |
| 5     | 12   | Cse             | 20           |
| 6     | 4    | Cse             | 16           |
| 7     | 5    | Cse             | 7            |
| 8     | 44   | Cse             | 3            |
| 9     | 1    | Cse             |              |

Abschluss

In diesem Artikel haben wir besprochen, wie Sie einen Datenrahmen entpivotieren oder einen Datenrahmen in ein langes Format konvertieren, um die Anzahl der Zeilen zu erhöhen.

Dazu haben wir die Funktion melt() verwendet. Eine Spalte wird als Variablenbezeichner bezeichnet, während die andere der Wert des Bezeichners ist.

Verwandter Artikel - Pandas Dataframe