Auswählen von DataFrame-Zeilen basierend auf Spaltenwerten in Python

Auswählen von DataFrame-Zeilen basierend auf Spaltenwerten in Python
Python

Verwenden von Pandas zum Filtern von DataFrames nach Spaltenwerten

Bei der Arbeit mit Daten in Python bietet die Pandas-Bibliothek leistungsstarke Tools zur Datenbearbeitung und -analyse. Eine häufige Aufgabe besteht darin, Zeilen aus einem DataFrame basierend auf den Werten in einer bestimmten Spalte auszuwählen. Dieser Vorgang ähnelt der SQL-Abfrage: SELECT * FROM table WHERE columns_name = some_value.

In diesem Artikel werden wir untersuchen, wie wir dies in Pandas mit verschiedenen Methoden erreichen können. Unabhängig davon, ob Sie nach einem einzelnen Wert oder nach mehreren Kriterien filtern, bietet Pandas intuitive und effiziente Möglichkeiten zur Abwicklung solcher Vorgänge. Lassen Sie uns in die Details eintauchen.

Befehl Beschreibung
pd.DataFrame() Erstellt ein DataFrame-Objekt aus einem Wörterbuch oder anderen Datenstrukturen.
df[condition] Filtert die DataFrame-Zeilen basierend auf einer Bedingung und gibt nur diejenigen zurück, die die Kriterien erfüllen.
print() Gibt die angegebene Nachricht oder den angegebenen DataFrame an die Konsole aus.
df['column'] == value Erstellt eine boolesche Reihe, die zum Filtern von Zeilen verwendet wird, in denen die Spalte mit dem angegebenen Wert übereinstimmt.
df['column'] >df['column'] > value Erstellt eine boolesche Reihe, die zum Filtern von Zeilen verwendet wird, deren Spaltenwerte größer als der angegebene Wert sind.
# Comment Wird verwendet, um Erklärungen oder Notizen innerhalb des Codes hinzuzufügen, die nicht als Teil des Skripts ausgeführt werden.

Implementierung der DataFrame-Zeilenauswahl in Pandas

In den bereitgestellten Skripten besteht die Hauptaufgabe darin, Zeilen aus einem DataFrame basierend auf bestimmten Spaltenwerten zu filtern, eine häufige Anforderung bei der Datenanalyse. Das erste Skript beginnt mit dem Importieren der Pandas-Bibliothek mit import pandas as pd. Dies ist wichtig, da Pandas eine leistungsstarke Datenbearbeitungsbibliothek in Python ist. Als nächstes erstellen wir einen Beispiel-DataFrame mit pd.DataFrame() mit einem Wörterbuch, das Daten zu Namen, Alter und Städten enthält. Diese Struktur ermöglicht es uns, Tabellendaten einfach zu visualisieren und zu bearbeiten. Der entscheidende Teil des Skripts besteht darin, wo wir Zeilen filtern df[df['city'] == 'New York']. Dieser Befehl wählt alle Zeilen aus, in denen der Wert der Stadtspalte „New York“ ist. Das Ergebnis wird in der Variablen gespeichert ny_rows, der dann gedruckt wird, um den gefilterten DataFrame anzuzeigen.

Das zweite Skript folgt einer ähnlichen Struktur, konzentriert sich jedoch auf das Filtern von Zeilen basierend auf einer numerischen Bedingung. Nach dem Import von Pandas und dem Erstellen eines DataFrame mit Produkt-, Preis- und Mengenspalten verwendet das Skript df[df['price'] > 150] um Zeilen zu filtern, bei denen der Preis größer als 150 ist. Dieser Befehl erzeugt eine Teilmenge des ursprünglichen DataFrame, die nur die Zeilen enthält, die die angegebene Bedingung erfüllen. Das Ergebnis wird in gespeichert expensive_products und zur Überprüfung ausgedruckt. Beide Skripte demonstrieren die Leistungsfähigkeit und Einfachheit von Pandas zur Datenmanipulation. Durch die Verwendung der booleschen Indizierung, einer Methode, bei der wir eine Reihe von Wahr/Falsch-Werten zum Filtern von Daten übergeben, können wir Teilmengen von Daten basierend auf verschiedenen Bedingungen effizient auswählen, was sie zu einem unschätzbar wertvollen Werkzeug für Datenanalysten und Wissenschaftler macht.

Filtern von Zeilen in einem DataFrame basierend auf Spaltenwerten

Python – Verwendung von Pandas für DataFrame-Operationen

import pandas as pd
# Create a sample DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
    'age': [24, 27, 22, 32, 29],
    'city': ['New York', 'Los Angeles', 'New York', 'Chicago', 'Los Angeles']
}
df = pd.DataFrame(data)

# Select rows where city is New York
ny_rows = df[df['city'] == 'New York']
print(ny_rows)

# Output:
#       name  age      city
# 0    Alice   24  New York
# 2  Charlie   22  New York

Abfragen von DataFrame-Zeilen basierend auf Spaltenwerten

Python – Erweiterte Filterung mit Pandas

import pandas as pd

# Create a sample DataFrame
data = {
    'product': ['A', 'B', 'C', 'D'],
    'price': [100, 150, 200, 250],
    'quantity': [30, 50, 20, 40]
}
df = pd.DataFrame(data)

# Select rows where price is greater than 150
expensive_products = df[df['price'] > 150]
print(expensive_products)

# Output:
#   product  price  quantity
# 2       C    200        20
# 3       D    250        40

Erweiterte Techniken zum Auswählen von DataFrame-Zeilen

Zusätzlich zur grundlegenden Filterung mit boolescher Indizierung bietet Pandas erweiterte Techniken zum Auswählen von Zeilen basierend auf Spaltenwerten. Eine solche Methode ist die query() Funktion, die es Ihnen ermöglicht, SQL-ähnliche Syntax zum Filtern von DataFrame-Zeilen zu verwenden. Sie können zum Beispiel verwenden df.query('age > 25 and city == "New York"') um Zeilen auszuwählen, in denen das Alter größer als 25 ist und die Stadt New York ist. Diese Methode kann Ihren Code insbesondere bei komplexen Bedingungen lesbarer machen. Darüber hinaus bietet Pandas die loc[] Und iloc[] Accessoren für eine präzisere Zeilenauswahl. Der loc[] Der Accessor ist labelbasiert, d. h. Sie können Zeilen nach ihren Labels oder einem booleschen Array filtern. Im Gegensatz dazu ist die iloc[] Der Accessor basiert auf ganzzahligen Positionen und ermöglicht Ihnen das Filtern von Zeilen nach ihren Indexpositionen.

Eine weitere leistungsstarke Funktion in Pandas ist die Möglichkeit, DataFrame-Zeilen mithilfe von zu filtern isin() Methode. Diese Methode ist nützlich, wenn Sie Zeilen basierend auf einer Werteliste filtern müssen. Zum Beispiel, df[df['city'].isin(['New York', 'Los Angeles'])] Wählt Zeilen aus, in denen der Stadtspaltenwert entweder New York oder Los Angeles ist. Darüber hinaus können Sie mit dem mehrere Bedingungen verketten & Und | Operatoren, um komplexere Filter zu erstellen. Zum Beispiel, df[(df['age'] > 25) & (df['city'] == 'New York')] Filtert Zeilen, in denen das Alter größer als 25 ist und die Stadt New York ist. Diese fortschrittlichen Techniken bieten ein robustes Framework für die Datenfilterung und machen Pandas zu einem vielseitigen Werkzeug für die Datenanalyse und -bearbeitung.

Häufige Fragen zur Auswahl von DataFrame-Zeilen in Pandas

  1. Wie filtere ich Zeilen in einem DataFrame basierend auf mehreren Spaltenwerten?
  2. Sie können die boolesche Indizierung mit mehreren kombinierten Bedingungen verwenden & Und |. Zum Beispiel: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Was ist der Unterschied zwischen loc[] Und iloc[]?
  4. loc[] ist etikettenbasiert, while iloc[] ist ganzzahlig positionbasiert. Verwenden loc[] zum Filtern nach Labels und iloc[] zum Filtern nach Indexpositionen.
  5. Wie kann ich das nutzen? query() Funktion zum Filtern von DataFrame-Zeilen?
  6. Der query() Mit der Funktion können Sie eine SQL-ähnliche Syntax verwenden. Zum Beispiel: df.query('age > 25 and city == "New York"').
  7. Kann ich Zeilen basierend auf einer Werteliste filtern?
  8. Ja, Sie können das verwenden isin() Methode. Zum Beispiel: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Was ist der beste Weg, Zeilen basierend auf der Zeichenfolgenübereinstimmung zu filtern?
  10. Du kannst den ... benutzen str.contains() Methode. Zum Beispiel: df[df['city'].str.contains('New')].
  11. Wie wähle ich Zeilen aus, in denen Spaltenwerte fehlen?
  12. Du kannst den ... benutzen isna() Methode. Zum Beispiel: df[df['age'].isna()].
  13. Wie kann ich Zeilen mithilfe einer benutzerdefinierten Funktion filtern?
  14. Du kannst den ... benutzen apply() Methode mit einer Lambda-Funktion. Zum Beispiel: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Kann ich Zeilen basierend auf Indexwerten filtern?
  16. Ja, Sie können das verwenden index.isin() Methode. Zum Beispiel: df[df.index.isin([1, 3, 5])].

Wichtige Erkenntnisse für die DataFrame-Zeilenauswahl

Das Auswählen von Zeilen aus einem DataFrame basierend auf Spaltenwerten ist eine grundlegende Fähigkeit bei der Datenanalyse mit Pandas. Verwendung der booleschen Indizierung, loc[], iloc[], query(), Und isin() Methoden ermöglichen eine effiziente Datenfilterung. Die Beherrschung dieser Techniken verbessert Ihre Fähigkeit, Datensätze effektiv zu bearbeiten und zu analysieren.