Pandas loc[]: Daten aus DataFrames auswählen

Pandas DataFrame.loc[] ist eine DataFrame-Eigenschaft in der Python-Pandas-Bibliothek, die dazu dient, Daten aus einem DataFrame basierend auf Bezeichnern (Labels) auszuwählen. So können Zeilen und Spalten eines DataFrames gezielt extrahiert werden.

Webhosting
Top-Hosting für Ihre Website
  • Flexibel: Hosting, das jedem Website-Traffic standhält
  • Verlässlich: Inklusive 24/7-Support und persönlicher Beratung
  • Sicher: Kostenloses SSL-Zertifikat, DDoS-Schutz und Backups

Syntax von Pandas loc[]

Man übergibt loc[] als Parameter die gewünschte Labelauswahl. Ansonsten ist die Syntax sehr einfach:

DataFrame.loc[selection]
python

Bei Pandas loc[] wird die Auswahl vorrangig basierend auf Labeln vorgenommen. Der übergebene Parameter kann daher ein einzelnes Label, eine Liste oder ein Slice von Labeln sein. Doch auch Boolesche Arrays können genutzt werden.

loc[] vs. iloc[]

Während Pandas DataFrame.loc[] Daten basierend auf Labels auswählt, wird das ähnlich klingende DataFrame.iloc verwendet, um Daten basierend auf Integer-basierten Positionen auszuwählen.

Folgendes Codebeispiel hilft zur Veranschaulichung der Unterschiede. Zunächst wird ein Pandas DataFrame erstellt:

import pandas as pd
data = {'Name': ['Anna', 'Bob', 'Chris'], 'Alter': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)
python

Der resultierende DataFrame sieht wie folgt aus:

Name  Alter
0   Anna     23
1    Bob     35
2  Chris     30

Um nun „Anna“ aus dem DataFrame zu extrahieren, können sowohl Pandas loc[] als auch iloc[] genutzt werden. Das Ergebnis ist dasselbe, der Weg dahin unterscheidet sich aber:

# Mit loc nach Label
print(df.loc[0, 'Name'])  # Ausgabe: 'Anna'
# Mit iloc nach Position
print(df.iloc[0, 0])  # Ausgabe: 'Anna'
python

Anwendung von Pandas DataFrame.loc[]

Pandas loc[] hilft Ihnen dabei, Teilmengen Ihres DataFrames zu extrahieren. Hierbei kann es sich um einzelne oder mehrere Zeilen bzw. Spalten handeln – mit loc[] können verschiedene Anwendungsfälle umgesetzt werden.

Auswahl einer einzelnen Zeile

Im Folgenden wird ein Beispiel-DataFrame mit den folgenden Daten betrachtet:

import pandas as pd
data = {
    'Name': ['Anna', 'Bob', 'Chris'],
    'Alter': [23, 35, 30],
    'Stadt': ['Berlin', 'Hamburg', 'München']
}
df = pd.DataFrame(data)
print(df)
python

Der resultierende DataFrame sieht wie folgt aus:

Name  Alter    Stadt
0   Anna     23   Berlin
1    Bob     35  Hamburg
2  Chris     30  München

Um die Daten der Zeile mit dem Index 1 auszuwählen (entspricht Bob), kann Pandas loc[] verwendet werden:

bob_data = df.loc[1]
print(bob_data)
python

Das Resultat ist wie erwartet:

Name         Bob
Alter         35
Stadt    Hamburg
Name: 1, dtype: object

Auswahl mehrerer Spalten

Auch für die Auswahl einer Untermenge an Spalten eignet sich DataFrame.loc[]. Folgender Code wählt die Spalten „Name“ und „Stadt“ für alle Zeilen aus:

name_stadt = df.loc[:, ['Name', 'Stadt']]
print(name_stadt)
python

Als Ergebnis erhält man eine Untermenge des ursprünglichen DataFrames:

Name    Stadt
0   Anna   Berlin
1    Bob  Hamburg
2  Chris  München

Bedingte Auswahl

Mit Pandas loc[] ist es ebenfalls möglich, Zeilen basierend auf einer Bedingung auswählen. Hierzu werden einfach Boolesche Vergleichsoperatoren eingesetzt. Im folgenden Code sollen zum Beispiel alle Personen, die älter als 25 Jahre sind, gefiltert werden:

older_than_25 = df.loc[df['Alter'] > 25]
print(older_than_25)
python

Der obige Codeschnipsel liefert folgenden DataFrame, der nur noch die Daten derjenigen Personen enthält, die älter als 25 sind:

Name  Alter    Stadt
1    Bob     35  Hamburg
2  Chris     30  München
War dieser Artikel hilfreich?
Page top