# Pandas loc\[\]: Daten aus DataFrames auswählen

Pandas `DataFrame.loc[]` ist eine DataFrame-Eigenschaft in der [Python-Pandas](https://www.ionos.de/digitalguide/websites/web-entwicklung/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.

## Syntax von Pandas `loc[]`

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

```python
DataFrame.loc[selection]
```

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](https://www.ionos.de/digitalguide/websites/web-entwicklung/python-pandas-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](https://www.ionos.de/digitalguide/websites/web-entwicklung/python-pandas-dataframe/) erstellt:

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

Der resultierende DataFrame sieht wie folgt aus:

```none
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:

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

## 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:

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

Der resultierende DataFrame sieht wie folgt aus:

```none
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:

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

Das Resultat ist wie erwartet:

```none
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:

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

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

```none
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](https://www.ionos.de/digitalguide/online-marketing/web-analyse/boolesche-operatoren/) eingesetzt. Im folgenden Code sollen zum Beispiel alle Personen, die älter als 25 Jahre sind, gefiltert werden:

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

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

```none
Name  Alter    Stadt
1    Bob     35  Hamburg
2  Chris     30  München
```


This is a markdown version of: [https://www.ionos.de/digitalguide/websites/web-entwicklung/python-pandas-dataframe-loc/](https://www.ionos.de/digitalguide/websites/web-entwicklung/python-pandas-dataframe-loc/) for AI/LLM consumption.