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.
Ü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
-
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 demaxis
-Parameter auf 1 angeben. Dadurch wird die angegebene Spalte aus dem DataFrame entfernt. Alternativ können Sie dasdel
-Schlüsselwort gefolgt vom Spaltennamen verwenden, um die Spalte direkt zu löschen. -
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 diedrop()
-Methode mehrmals mit unterschiedlichen Spaltennamen angeben. Dadurch werden alle angegebenen Spalten aus dem DataFrame entfernt. -
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 diedrop()
-Methode verwenden, um diese Spalten aus dem DataFrame zu entfernen. Dadurch können Sie Spalten selektiv basierend auf bestimmten Kriterien löschen.