Skip to content

Wie man eine Spalte in einem Pandas DataFrame löscht

Updated on

Als Datenwissenschaftler führen Sie eine der häufigsten Operationen aus, die darin besteht, Daten in einem DataFrame zu manipulieren. Eine der häufigen Aufgaben, die in Ihrem Datenverarbeitungsworkflow auftreten, besteht darin, Spalten zu löschen, die für die Analyse nicht benötigt werden. In diesem Tutorial werden wir uns ansehen, wie man eine Spalte in einem Pandas DataFrame löscht. Wir werden verschiedene Methoden zum Entfernen von Spalten basierend auf dem Spaltennamen, dem Index und mehreren Spalten abdecken.

Möchten Sie schnell Datenvisualisierung von Python Pandas Dataframe erstellen, ohne Code zu schreiben?

PyGWalker ist eine Python-Bibliothek für explorative Datenanalyse mit Visualisierung. PyGWalker (opens in a new tab) kann Ihren Jupyter Notebook Datenanalysen und Datenvisualisierungsworkflow vereinfachen, indem es Ihr Pandas DataFrame (und Polars DataFrame) in eine Tableau-ähnliche Benutzeroberfläche für die visuelle Exploration umwandelt.

PyGWalker für Datenvisualisierung (opens in a new tab)

Übersicht über Pandas DataFrame

Bevor wir uns in die Details des Entfernens von Spalten stürzen, werfen wir einen Blick auf das Pandas DataFrame.

Ein DataFrame ist eine zweidimensionale tabellenähnliche Datenstruktur mit Zeilen und Spalten. Jede Spalte in einem DataFrame ist eine Series. Eine Series ist eine eindimensionale Datenstruktur, die ein Array von Werten mit einem Indexlabel enthält. Darüber hinaus kann ein DataFrame Zeilen- und Spaltenindizes haben, um einen schnellen und effizienten Zugriff auf Daten zu ermöglichen. -13 Das Pandas DataFrame ist ein leistungsfähiges Werkzeug zum Umgang mit und zur Manipulation von Daten in Python. Es ermöglicht komplexe Datenanalyse, Datenbereinigung, Datentransformation und datenvisualisierungsaufgaben.

Löschen einer Spalte in einem Pandas DataFrame

Nun lassen Sie uns mit dem Prozess des Löschen einer Spalte in einem Pandas DataFrame beginnen. Es gibt mehrere Möglichkeiten, eine Spalte in einem DataFrame zu löschen, abhängig von den Anforderungen. Wir werden uns einige der beliebten Methoden unten ansehen.

Löschen einer Spalte mit der Methode drop

Die einfachste Methode zum Entfernen einer Spalte aus einem DataFrame besteht darin, die Methode drop zu verwenden. Sie können die Methode drop mit dem Parameter axis=1 verwenden, um anzugeben, dass Sie eine Spalte entfernen möchten.

# Erstellen eines Beispieldatenframes
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# Die Spalte 'city' entfernen
df = df.drop('city', axis=1)
print(df.head())

Ausgabe:

     name  age
0    Alex   20
1     Bob   25
2  Clarke   19
3   David   18

In dem obigen Beispiel haben wir einen Beispieldatenframe mit drei Spalten namens name, age und city erstellt. Wir haben die Methode drop mit dem Parameter axis=1 verwendet, um die Spalte city zu entfernen. Dann haben wir den aktualisierten Datenframe gedruckt, der nur zwei Spalten, name und age, hat.

Löschen einer Spalte mit der Subset-Methode

Eine andere Möglichkeit, eine Spalte aus einem DataFrame zu löschen, besteht darin, die Subsetting-Methode [] mit dem del-Statement zu verwenden. Das del-Statement entfernt die Spalte direkt aus dem DataFrame-Objekt.

# Erstellen eines Beispieldatenframes
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# Die Spalte 'city' entfernen
del df['city']
print(df.head())

Ausgabe:

     name  age
0    Alex   20
1     Bob   25
2  Clarke   19
3   David   18

In dem obigen Beispiel haben wir einen Beispieldatenframe mit drei Spalten namens name, age und city erstellt. Wir haben die Subsetting-Methode [] mit dem del-Statement verwendet, um die Spalte city zu entfernen. Dann haben wir den aktualisierten Datenframe gedruckt, der nur zwei Spalten, name und age, hat.

Mehrere Spalten entfernen

Manchmal ist es notwendig, mehrere Spalten aus einem DataFrame zu entfernen. Sie können die Methode drop mit einer Liste von Spaltennamen verwenden, um mehrere Spalten zu entfernen.

# Erstellen eines Beispieldatenframes
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo'], 'occupation': ['Engineer', 'Doctor', 'Artist', 'Lawyer']}
df = pd.DataFrame(data)
# Die Spalten 'city' und 'occupation' entfernen
df = df.drop(['city', 'occupation'], axis=1)
print(df.head())

Ausgabe:

     name  age
0    Alex   20
1     Bob   25
2  Clarke   19
3   David   18

In dem obigen Beispiel haben wir einen Beispieldatenframe mit vier Spalten namens name, age, city und occupation erstellt. Wir haben die Methode drop mit einer Liste von Spaltennamen verwendet, um die Spalten city und occupation zu entfernen. Dann haben wir den aktualisierten Datenframe gedruckt, der nur zwei Spalten, name und age, hat.

Spalten anhand eines Spaltenindexes entfernen

Sie können auch eine Spalte aus einem DataFrame anhand des Indexes der Spalte entfernen. Dazu können Sie die Methode drop mit dem Parameter columns verwenden und den Index der zu entfernenden Spalte angeben.

# Erstellen eines Beispieldatenframes
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# Die Spalte an Index 2, d.h. 'city', entfernen
df = df.drop(df.columns[2], axis=1)
print(df.head())

Ausgabe:

     name  age
0    Alex   20
1     Bob   25
2  Clarke   19
3   David   18

In dem obigen Beispiel haben wir einen Beispieldatenframe mit drei Spalten namens name, age und city erstellt. Wir haben die Methode drop mit dem Parameter columns verwendet und den Index der zu entfernenden Spalte, d.h. 2, angegeben. Dann haben wir den aktualisierten Datenframe gedruckt, der nur zwei Spalten, name und age, hat.

Spalten basierend auf einer Bedingung löschen

Sie können auch Spalten basierend auf bestimmten Bedingungen mit der drop-Methode entfernen. Zum Beispiel können Sie alle Spalten entfernen, die ausschließlich NaN-Werte enthalten.

# Erstellen Sie ein Beispieldatenframe mit einer Spalte, die alle NaN-Werte enthält
import pandas as pd
import numpy as np
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': [np.nan, np.nan, np.nan, np.nan], 'occupation': ['Engineer', 'Doctor', 'Artist', 'Lawyer']}
df = pd.DataFrame(data)
# Löschen Sie die Spalten, die alle NaN-Werte enthalten
df = df.dropna(how='all', axis=1)
print(df.head())

Ausgabe:

     name  age  occupation
0    Alex   20    Engineer
1     Bob   25      Doctor
2  Clarke   19      Artist
3   David   18      Lawyer

In dem obigen Beispiel haben wir einen Beispieldatenframe mit vier Spalten namens name, age, city und occupation erstellt. Wir haben die Werte in der city-Spalte auf NaN gesetzt. Wir haben die Methode dropna mit dem Parameter how='all' und axis=1 verwendet, um die Spalten zu entfernen, die ausschließlich NaN-Werte enthalten. Anschließend haben wir den aktualisierten Datenframe gedruckt, der nur noch die Spalten name, age und occupation enthält.

Fazit

Das Löschen einer Spalte aus einem Pandas DataFrame ist eine wichtige Operation, die Sie als Data Scientist beherrschen müssen. In diesem Tutorial haben wir verschiedene Methoden zum Entfernen von Spalten anhand von Spaltennamen, Indizes und mehreren Spalten behandelt. Wir hoffen, dass Ihnen dieses Tutorial geholfen hat, Ihren Workflow zu optimieren und Ihre Datenoperationen mit dem Pandas DataFrame zu verbessern.

Häufig gestellte Fragen

  1. Wie löscht man eine Spalte in einem Python DataFrame?

    Um eine Spalte in einem Python DataFrame zu löschen, können Sie die drop()-Methode verwenden und den Spaltennamen zusammen mit dem axis-Parameter auf 1 angeben. Dadurch wird die angegebene Spalte aus dem DataFrame entfernt. Alternativ können Sie das del-Schlüsselwort gefolgt vom Spaltennamen verwenden, um die Spalte direkt zu löschen.

  2. Können mehrere Spalten gleichzeitig in einem Python DataFrame gelöscht werden?

    Ja, es ist möglich, mehrere Spalten gleichzeitig in einem Python DataFrame zu löschen. Sie können eine Liste von Spaltennamen an die drop()-Methode übergeben oder die drop()-Methode mehrmals mit unterschiedlichen Spaltennamen angeben. Dadurch werden alle angegebenen Spalten aus dem DataFrame entfernt.

  3. Ist es möglich, Spalten basierend auf bestimmten Bedingungen in einem Python DataFrame zu löschen?

    Ja, es ist möglich, Spalten basierend auf bestimmten Bedingungen in einem Python DataFrame zu löschen. Sie können die boolesche Indizierung oder den loc-Indizierer verwenden, um die Spalten auszuwählen, die die gewünschte Bedingung erfüllen, und dann die drop()-Methode verwenden, um diese Spalten aus dem DataFrame zu entfernen. Dadurch können Sie Spalten selektiv basierend auf bestimmten Kriterien löschen.