HOWTO · Pandas

Pandas DataFrame-Spalte in Liste umwandeln

Dieser Artikel stellt vor, wie man eine Pandas DataFrame-Spalte in eine Liste konvertiert.

Auf dieser Seite

Bei der Arbeit mit Pandas DataFrames in Python müssen Sie häufig eine Spalte Ihres DataFrames in eine Python-Liste konvertieren. Dieser Prozess kann für verschiedene Aufgaben der Datenmanipulation und -analyse entscheidend sein. Glücklicherweise bietet Pandas mehrere Methoden, um dies zu erreichen, so dass es einfach ist, die benötigten Daten in Listenform zu extrahieren.

In diesem Artikel werden wir verschiedene Methoden zur Umwandlung einer Pandas DataFrame-Spalte in eine Python-Liste untersuchen. Wir werden diese Methoden anhand eines beispielhaften DataFrame demonstrieren, der Informationen über Namen, Geburtsdaten (DOB) und Gehälter enthält.

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

Wir werden vier verschiedene Methoden zur Durchführung dieser Konvertierung untersuchen: die Verwendung der Methode tolist(), der Funktion list(), der Eigenschaft .values und der List Comprehension.

Verwenden der Methode tolist(), um eine Dataframe-Spalte in eine Liste zu konvertieren

Eine Spalte im Pandas DataFrame ist eine Pandas-Serie. Wenn wir also eine Spalte in eine Liste konvertieren müssen, können wir die tolist()-Methode in der Serie verwenden. tolist() konvertiert die Serie des Pandas DataFrames in eine Liste.

Im folgenden Code gibt df['DOB'] die Serie bzw. die Spalte mit dem Namen DOB aus dem DataFrame zurück.

Die Methode tolist() konvertiert die Serie in eine Liste.

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

print("Pandas DataFrame:\n\n", df, "\n")

list_of_single_column = df["DOB"].tolist()

print(
    "the list of a single column from the dataframe\n",
    list_of_single_column,
    "\n",
    type(list_of_single_column),
)

Ausgabe:

Pandas DataFrame:

         Name       DOB Salary
0      James  1/1/2014   1000
1  Michelina  2/1/2014  12000
2       Marc  3/1/2014  36000
3        Bob  4/1/2014  15000
4     Halena  4/1/2014  12000 

the list of a single column from the dataframe
 ['1/1/2014', '2/1/2014', '3/1/2014', '4/1/2014', '4/1/2014'] 
 <class 'list'>

Verwenden der Funktion list(), um eine Dataframe-Spalte in eine Liste zu konvertieren

Wir können auch die Funktion list() verwenden, um eine DataFrame-Spalte in eine Liste zu konvertieren. Beachten Sie, was list() erhält: die ausgewählte Spalte, also eine Serie — wie in list(df["DOB"]) — und nicht den DataFrame selbst. Das Durchlaufen einer Serie liefert ihre Werte in der gegebenen Reihenfolge, so dass list() genau die Werte der Spalte sammelt.

Wir werden die gleichen Daten wie oben verwenden, um diesen Ansatz zu demonstrieren.

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

print("Pandas DataFrame:\n\n", df, "\n")

list_of_single_column = list(df["DOB"])

print(
    "the list of a single column from the dataframe\n",
    list_of_single_column,
    "\n",
    type(list_of_single_column),
)

Ausgabe:

Pandas DataFrame:

         Name       DOB Salary
0      James  1/1/2014   1000
1  Michelina  2/1/2014  12000
2       Marc  3/1/2014  36000
3        Bob  4/1/2014  15000
4     Halena  4/1/2014  12000 

the list of a single column from the dataframe
 ['1/1/2014', '2/1/2014', '3/1/2014', '4/1/2014', '4/1/2014'] 
 <class 'list'>

Verwenden der Eigenschaft .values, um eine Dataframe-Spalte in eine Liste zu konvertieren

Eine andere Möglichkeit, dies zu erreichen, ist die Verwendung der Eigenschaft .values.

Gehen wir die Schritte zur Umwandlung der Spalte ‘Salary’ dieses DataFrames in eine Python-Liste unter Verwendung der Eigenschaft .values durch.

Die Eigenschaft .values einer Pandas-Serie gibt eine NumPy-Array-Darstellung der Daten zurück. Um sie in eine Python-Liste zu konvertieren, können Sie die Methode .tolist() verwenden. So geht es:

salary_list = df["Salary"].values.tolist()

Hier ist der vollständige Code:

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

# Convert the 'Salary' column to a list using .values
salary_list = df["Salary"].values.tolist()

print(salary_list)

Ausgabe:

['1000', '12000', '36000', '15000', '12000']

Nach der Ausführung dieses Codes wird die Spalte Salary aus dem DataFrame in eine Python-Liste konvertiert, die in der Variable salary_list gespeichert wird.

Verwendung der List Comprehension, um eine DataFrame-Spalte in eine Liste zu konvertieren

Die List Comprehension kann die Liste auch erstellen, indem sie über die ausgewählte Spalte läuft. Für sich genommen kopiert sie die Werte eins zu eins, genau wie list(); die Comprehension-Form spielt ihre Stärke aus, wenn Sie jeden Wert beim Erstellen der Liste zusätzlich transformieren oder filtern möchten.

# Using list comprehension to convert the 'Salary' column to a list
salary_list = [salary for salary in df["Salary"]]

Hier ist der vollständige Code:

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

# Using list comprehension to convert the 'Salary' column to a list
salary_list = [salary for salary in df["Salary"]]

print(salary_list)

Ausgabe:

['1000', '12000', '36000', '15000', '12000']

Fazit

In diesem Artikel haben wir vier verschiedene Methoden zur Konvertierung einer Pandas DataFrame-Spalte in eine Python-Liste untersucht: die Verwendung der Methode tolist(), der Funktion list(), der Eigenschaft .values und der List Comprehension.

Für den üblichen Fall — Sie haben eine Spalte und wollen ihre Werte als Liste — ist die direkte Konvertierung der ausgewählten Serie mit tolist() oder list() die naheliegende Wahl. Der Weg über .values erreicht dieselbe Liste über ein NumPy-Array als Zwischenstufe, und die List Comprehension ist die richtige Option, wenn Sie die Werte beim Erstellen der Liste transformieren oder filtern möchten.