Mit DataFrame.loc auf Daten in Pandas zugreifen und sie manipulieren
Das Zugreifen auf Daten und die Manipulation sind wesentliche Bestandteile jedes Data-Science-Projekts, und die Pandas-Bibliothek ist eines der beliebtesten Tools für diese Aufgaben. Innerhalb von Pandas wird die Methode loc[] häufig verwendet, um Daten in einem DataFrame anhand von Bezeichnungen oder einem booleschen Array abzurufen und zu filtern. In diesem Artikel werden wir uns mit der Syntax und den Beispielen zur Verwendung von Pandas DataFrame loc[] befassen und die Vorteile im Vergleich zu anderen Methoden erkunden.
Möchten Sie schnell Datenvisualisierungen in Python erstellen?
PyGWalker ist ein Open-Source-Python-Projekt, das den Workflow der Datenanalyse und -visualisierung in Jupyter Notebook-Umgebungen beschleunigen kann.
PyGWalker (opens in a new tab) wandelt Ihr Pandas Dataframe (oder Polars Dataframe) in eine visuelle Benutzeroberfläche um, in der Sie Variablen per Drag & Drop ziehen und ablegen können, um Diagramme einfach zu erstellen. Verwenden Sie einfach den folgenden Code:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Sie können PyGWalker jetzt mit diesen Online-Notebooks ausführen:
Und vergessen Sie nicht, uns auf GitHub mit einem ⭐️ zu bewerten!
Was ist Pandas DataFrame loc[]?
Pandas DataFrame loc[] ist eine Methode zum Auswählen und Filtern von Daten in einem Pandas DataFrame. Die loc[]-Methode akzeptiert ein oder zwei Argumente, die entweder eine Zeilenbezeichnung oder ein boolesches Array sein können. Wenn eine Zeilenbezeichnung angegeben wird, gibt loc[] ein DataFrame zurück, das die zu der Bezeichnung passende(n) Zeile(n) enthält. Wenn ein boolesches Array bereitgestellt wird, gibt loc[] ein DataFrame zurück, das die Zeile(n) enthält, bei denen das boolesche Array den Wert True hat.
Wie verwendet man Pandas DataFrame loc[]?
Das Abrufen von Zeilen und Spalten anhand von Bezeichnungen mit Pandas DataFrame loc[] ist recht einfach. Hier ist ein Beispiel:
import pandas as pd
# Erstellen eines Beispiel-DataFrames
df = pd.DataFrame({'Age': [23, 24, 25, 26],
'Name': ['John', 'Mike', 'Sarah', 'Rachel'],
'Marks': [85, 90, 80, 95],
'ID': ['A101', 'A102', 'A103', 'A104']})
# Abrufen einer Zeile anhand der Zeilenbezeichnung
row = df.loc[1]
# Abrufen mehrerer Zeilen anhand einer Liste von Zeilenbezeichnungen
rows = df.loc[[0, 2]]
# Abrufen einer Spalte anhand der Spaltenbezeichnung
ages = df.loc[:, 'Age']
# Abrufen mehrerer Spalten anhand einer Liste von Spaltenbezeichnungen
subset = df.loc[:, ['Name', 'Marks']]
In obigem Beispiel haben wir ein Beispiel-DataFrame mit vier Zeilen und vier Spalten erstellt. Mit loc[] greifen wir auf Zeilen und Spalten anhand von Bezeichnungen zu. Wenn wir loc[] eine einzelne Bezeichnung übergeben, wird eine pandas Series zurückgegeben, während bei mehreren Bezeichnungen ein DataFrame zurückgegeben wird.
Wir können auch Zeilen basierend auf einer gegebenen Bedingung mit loc[] filtern. Hier ist ein Beispiel:
# Zeilen basierend auf einer Bedingung filtern
filtered_df = df.loc[df['Age'] > 24]
In obigem Beispiel verwenden wir loc[], um Zeilen zu filtern, bei denen die Spalte Age größer als 24 ist.
Welche Vorteile bietet die Verwendung von Pandas DataFrame loc[]?
Einer der Hauptvorteile der Verwendung von Pandas DataFrame loc[] besteht in seiner Fähigkeit zur behandlungsbasierten Indizierung. Da die behandlungsbasierte Indizierung intuitiver und besser lesbar ist als die indizierung mit Ganzzahlen, kann die Verwendung von loc[] Ihren Code ausdrucksstärker und weniger fehleranfällig machen.
Ein weiterer Vorteil von loc[] besteht darin, dass Sie es auch zum Zuweisen neuer Werte an einen Teil des DataFrames verwenden können.
# Werte für bestimmte Zeilen ändern
df.loc[0:1, 'Age'] = 24
In obigem Beispiel verwenden wir loc[], um den Wert von Age für die ersten beiden Zeilen des DataFrames zu ändern.
Wie unterscheidet sich Pandas DataFrame loc[] von Pandas iloc[]?
Pandas iloc[] ist ähnlich wie loc[], verwendet jedoch anstelle der bezeichnungsbasierten Indizierung eine indizierung mit Ganzzahlen. Hier ist ein Beispiel:
# Die erste Zeile mit iloc[] abrufen
df.iloc[0]
# Zeilen und Spalten anhand von Ganzzahlen abrufen
df.iloc[0:2, 1:3]
Im ersten Beispiel greifen wir mit iloc[] auf die erste Zeile des DataFrames zu. Im zweiten Beispiel verwenden wir iloc[], um mit Ganzzahlen auf einen Teil des DataFrames zuzugreifen.
Obwohl iloc[] schneller ist als loc[], ist es weniger ausdrucksstark und kann zu Fehlern führen, wenn das DataFrame geändert wird. Außerdem kann es bei Verwendung von iloc[] mit Ganzzahlen verwirrend werden, wenn das DataFrame sortiert oder verändert wird, während loc[] robuster gegen solche Änderungen ist.
Können Zeilen und Spalten mit Namen/Bezeichnungen mithilfe von Pandas DataFrame loc[] ausgewählt/gefiltert werden?
Ja, Sie können Zeilen und Spalten mit Bezeichnungen mithilfe von Pandas DataFrame loc[] auswählen und filtern. Hier ist ein Beispiel:
# Zeilen anhand der Spaltenbezeichnung und Bedingung filtern
filtered_df = df.loc[df['Name'] == 'Mike']
# Zugriff auf einen Teil der Zeilen und Spalten mithilfe von Bezeichnungen
subset_df = df.loc[0:1, ['Name', 'Age']]
Im ersten Beispiel verwenden wir loc[], um Zeilen anhand einer Bedingungsspalte und einer Spaltenbezeichnung zu filtern. Im zweiten Beispiel greifen wir mithilfe von loc[] und Spaltenbezeichnungen auf einen Teil der Zeilen und Spalten zu.
Fazit
In diesem Artikel haben wir uns die Methode Pandas DataFrame loc[] genauer angesehen, ihre Syntax und Beispiele sowie ihre Vorteile im Vergleich zu anderen Methoden. Wir haben gezeigt, wie loc[] zum Zugriff auf Daten und zum Filtern basierend auf Bezeichnungen oder einem booleschen Array verwendet werden kann und wie es sich von der indizierung mit Ganzzahlen mithilfe von iloc[] unterscheidet. Durch die Verwendung von Pandas DataFrame loc[] können Sie einen ausdrucksstarken und robusten Code für die Datenanalyse und -manipulation in Python schreiben.