Pandas DataFrame.loc[] ist eine DataFrame-Ei­gen­schaft in der Python-Pandas-Bi­blio­thek, die dazu dient, Daten aus einem DataFrame basierend auf Be­zeich­nern (Labels) aus­zu­wäh­len. So können Zeilen und Spalten eines Da­ta­Frames gezielt ex­tra­hiert werden.

Web­hos­ting
Das beste Web­hos­ting zum Spit­zen­preis
  • 3x schneller und 60 % günstiger
  • Maximale Ver­füg­bar­keit mit > 99.99 %
  • Nur bei IONOS: Bis zu 500 GB Spei­cher­platz inklusive

Syntax von Pandas loc[]

Man übergibt loc[] als Parameter die ge­wünsch­te La­belaus­wahl. Ansonsten ist die Syntax sehr einfach:

DataFrame.loc[selection]
python

Bei Pandas loc[] wird die Auswahl vorrangig basierend auf Labeln vor­ge­nom­men. Der über­ge­be­ne 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 Po­si­tio­nen aus­zu­wäh­len.

Folgendes Code­bei­spiel hilft zur Ver­an­schau­li­chung der Un­ter­schie­de. Zunächst wird ein Pandas DataFrame erstellt:

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

Der re­sul­tie­ren­de DataFrame sieht wie folgt aus:

Name  Alter
0   Anna     23
1    Bob     35
2  Chris     30

Um nun „Anna“ aus dem DataFrame zu ex­tra­hie­ren, können sowohl Pandas loc[] als auch iloc[] genutzt werden. Das Ergebnis ist dasselbe, der Weg dahin un­ter­schei­det 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, Teil­men­gen Ihres Da­ta­Frames zu ex­tra­hie­ren. Hierbei kann es sich um einzelne oder mehrere Zeilen bzw. Spalten handeln – mit loc[] können ver­schie­de­ne An­wen­dungs­fäl­le umgesetzt werden.

Auswahl einer einzelnen Zeile

Im Folgenden wird ein Beispiel-DataFrame mit den folgenden Daten be­trach­tet:

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 re­sul­tie­ren­de 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 aus­zu­wäh­len (ent­spricht 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 Un­ter­men­ge 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 Un­ter­men­ge des ur­sprüng­li­chen Da­ta­Frames:

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 Ver­gleichs­ope­ra­to­ren ein­ge­setzt. 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 Code­schnip­sel liefert folgenden DataFrame, der nur noch die Daten der­je­ni­gen Personen enthält, die älter als 25 sind:

Name  Alter    Stadt
1    Bob     35  Hamburg
2  Chris     30  München
Zum Hauptmenü