Pandas ist eine beliebte Python-Bibliothek zur Datenmanipulation und -analyse. Es bietet umfangreiche Funktionen zur Filterung, Sortierung und Transformation von Daten. In diesem Artikel werden wir uns darauf konzentrieren, wie man Zeilen in einem Pandas-Datenrahmen anhand einer Bedingung filtern kann.
Die pandas-Bibliothek importieren und einen Datenrahmen erstellen
Um mit der Filterung von Zeilen in einem Pandas-Datenrahmen zu beginnen, müssen wir zunächst die pandas-Bibliothek importieren und einen Datenrahmen erstellen. Ein Datenrahmen kann aus verschiedenen Datenquellen erstellt werden, wie z.B. einer CSV-Datei oder einer SQL-Tabelle. Für diesen Artikel werden wir einen einfachen Datenrahmen erstellen, um die verschiedenen Filtermethoden zu demonstrieren.
“’python
import pandas as pd
# Einen einfachen Datenrahmen erstellen
data = {‚Name‘: [‚Max‘, ‚Anna‘, ‚Peter‘, ‚Lisa‘],
‚Alter‘: [25, 30, 35, 40],
‚Stadt‘: [‚Berlin‘, ‚München‘, ‚Hamburg‘, ‚München‘]}
df = pd.DataFrame(data)
“‘
In diesem Beispiel haben wir einen Datenrahmen mit den Spalten „Name“, „Alter“ und „Stadt“ erstellt. Die Spalten enthalten Informationen über Personen.
Filtern von Zeilen basierend auf einer Bedingung mit dem Vergleichsoperator
Die einfachste Methode zum Filtern von Zeilen in einem Pandas-Datenrahmen besteht darin, den Vergleichsoperator zu verwenden. Hier ist ein Beispiel:
“’python
# Zeilen filtern, in denen das Alter größer als 30 ist
filtered_df = df[df[‚Alter‘] > 30]
“‘
In diesem Beispiel wird der Vergleichsoperator „>“ verwendet, um Zeilen zu filtern, in denen das Alter größer als 30 ist. Das Ergebnis des Filters wird in der Variablen „filtered_df“ gespeichert. Der resultierende Datenrahmen enthält nur diejenigen Zeilen, die die Bedingung erfüllen.
Filtern von Zeilen basierend auf mehreren Bedingungen
Manchmal möchten wir Zeilen basierend auf mehreren Bedingungen filtern. In Pandas können wir dies erreichen, indem wir den logischen Operator „&“ verwenden, um die Bedingungen zu kombinieren. Hier ist ein Beispiel:
“’python
# Zeilen filtern, in denen das Alter größer als 30 und die Stadt München ist
filtered_df = df[(df[‚Alter‘] > 30) & (df[‚Stadt‘] == ‚München‘)]
“‘
In diesem Beispiel verwenden wir den logischen Operator „&“, um die beiden Bedingungen zu kombinieren. Der resultierende Datenrahmen enthält nur diejenigen Zeilen, die beide Bedingungen erfüllen.
Python: csv-Daten filtern mit pandas | Tutorial für…
Filtern von Zeilen basierend auf Textbedingungen
Manchmal möchten wir Zeilen basierend auf Textbedingungen filtern. In Pandas können wir dies erreichen, indem wir die str.contains()-Funktion verwenden. Hier ist ein Beispiel:
“’python
# Zeilen filtern, in denen der Name ‚Peter‘ oder ‚Lisa‘ enthält
filtered_df = df[df[‚Name‘].str.contains(‚Peter|Lisa‘)]
“‘
In diesem Beispiel verwenden wir die str.contains()-Funktion, um Zeilen zu filtern, in denen der Name entweder „Peter“ oder „Lisa“ enthält. Der resultierende Datenrahmen enthält nur diejenigen Zeilen, die die Bedingung erfüllen.
Filtern von Zeilen basierend auf Nullwerten
Manchmal möchten wir Zeilen filtern, die Nullwerte in bestimmten Spalten enthalten. In Pandas können wir dies erreichen, indem wir die isnull()-Funktion verwenden. Hier ist ein Beispiel:
“’python
# Zeilen filtern, in denen das Alter einen Nullwert hat
filtered_df = df[df[‚Alter‘].isnull()]
“‘
In diesem Beispiel verwenden wir die isnull()-Funktion, um Zeilen zu filtern, in denen das Alter einen Nullwert hat. Der resultierende Datenrahmen enthält nur diejenigen Zeilen, die die Bedingung erfüllen.
Filtern von Zeilen basierend auf komplexen Bedingungen
Manchmal möchten wir komplexere Bedingungen auf die Zeilen anwenden. In solchen Fällen können wir eine Funktion definieren und apply() verwenden, um die Funktion auf jede Zeile anzuwenden und den Filter anhand des Rückgabewerts der Funktion zu erstellen. Hier ist ein Beispiel:
“’python
# Funktion definieren, die überprüft, ob der Name mehr als 3 Buchstaben hat
def name_length_condition(row):
return len(row[‚Name‘]) > 3
# Filtern von Zeilen basierend auf der name_length_condition-Funktion
filtered_df = df[df.apply(name_length_condition, axis=1)]
“‘
In diesem Beispiel definieren wir eine Funktion name_length_condition, die überprüft, ob der Name mehr als 3 Buchstaben hat. Wir wenden diese Funktion auf jede Zeile an und erstellen den Filter anhand des Rückgabewerts der Funktion.
Fazit
Das Filtern von Zeilen in einem Pandas-Datenrahmen anhand einer Bedingung ist eine grundlegende Operation zur Datenmanipulation. In diesem Artikel haben wir gelernt, wie man Zeilen basierend auf einfachen und komplexen Bedingungen filtern kann. Die vorgestellten Methoden bieten große Flexibilität bei der Datenfilterung und können auf verschiedene Arten von Daten angewendet werden.