Das In­de­xie­ren von Python Pandas Da­ta­Frames erlaubt dir den direkten und schnellen Zugriff auf bestimmte Da­ten­punk­te. Mit einem Pandas-DataFrame-Index wählst du gezielt Zeilen oder Spalten aus, was deine Da­ten­ana­ly­se spürbar ver­ein­facht.

Was bewirkt die In­de­xie­rung?

Die In­de­xie­rung eines Pandas Da­ta­Frames dient dazu, die Auswahl einzelner Elemente zu op­ti­mie­ren. Das gelingt dir, indem du Zeilen und Spalten über ihre Position oder ihren Namen an­sprichst. Indizes fungieren dabei als prak­ti­sches Adress­sys­tem für deine Da­ten­struk­tur, damit du In­for­ma­tio­nen schneller findest und be­ar­bei­test.

Syntax von Pandas DataFrame.index

Du kannst dir die Index-Labels deines Pandas Da­ta­Frames mit der Ei­gen­schaft index anzeigen lassen. Die Syntax dafür sieht so aus:

DataFrame.index
python

Methoden zur In­di­zie­rung von Da­ta­Frames

Es stehen dir ver­schie­de­ne Wege offen, um Pandas Da­ta­Frames zu in­de­xie­ren. Je nachdem, was du erreichen möchtest, un­ter­schei­det sich die Syntax der Operation.

In­de­xie­rung über Labels (Spal­ten­na­men)

Pandas Da­ta­Frames nutzen oft Spal­ten­na­men für die In­de­xie­rung. Erstellen wir dazu zuerst einen Beispiel-DataFrame:

import pandas as pd
# Beispiel-DataFrame erstellen
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Alter': [25, 30, 35],
    'Stadt': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)
python

So ist der DataFrame aufgebaut:

Name  Alter      Stadt
0    Alice     25     New York
1    Bob     30  Los Angeles
2  Charlie     35    Chicago

Um auf alle Werte einer be­stimm­ten Spalte zu­zu­grei­fen, nutzt du den Namen zusammen mit dem In­di­zie­rungs­ope­ra­tor []. Den Spal­ten­na­men gibst du einfach als Python-String an:

# Zugriff auf die Spalte „Alter“
print(df['Alter'])
python

Das Ergebnis liefert dir die ent­spre­chen­den Al­ters­wer­te:

0    25
1    30
2    35
Name: Alter, dtype: int64

Möchtest du mehrere Spalten gleich­zei­tig aufrufen, listest du deren Namen einfach durch Kommata getrennt im Operator auf.

In­de­xie­rung via loc[] (Zei­len­na­men)

Für den Zugriff auf eine konkrete Zeile nutzt du den Pandas-Indexer loc. Du übergibst ihm entweder den Namen oder die Nummer der Zeile. Im Beispiel ziehen wir aus dem bekannten DataFrame die nullte Zeile mit den Daten für „Alice“ heraus:

print(df.loc[0])
python

Als Resultat erhältst du wie gewünscht die Werte, die Alice zu­ge­ord­net sind:

Name        Alice
Alter          25
Stadt    New York
Name: 0, dtype: object

In­de­xie­rung mittels iloc[] (Po­si­ti­ons­num­mern)

Der wohl gängigste Weg, um auf Elemente zu­zu­grei­fen, läuft über Zeilen- und Spal­ten­num­mern. Hierfür bietet Pandas die Ei­gen­schaft iloc an, die rein numerisch arbeitet.

# Zugriff auf die nullte Zeile
print(df.iloc[0])
# Zugriff auf den Wert in der nullten Zeile und ersten Spalte
print(df.iloc[0, 1])
python

Die Arbeit mit iloc[] liefert dir präzise die er­war­te­ten Werte zurück:

Name        Alice
Alter          25
Stadt    New York
Name: 0, dtype: object
25

Einzelne Werte gezielt abfragen

Suchst du nur einen ganz be­stimm­ten Wert, ist der Indexer at die schnells­te Lösung. Du de­fi­nierst die Zeile und Spalte einfach über deren Namen. Wenn du etwa wissen willst, wo Bob wohnt, nutzt du die Spalte „Stadt“ und die erste Zeile:

print(df.at(1, 'Stadt'))
python

Die Ausgabe bestätigt korrekt den Wohnort „Los Angeles“.

Al­ter­na­tiv steht dir der iat-Indexer zur Verfügung. Er arbeitet wie at, verlangt aber anstelle von Namen die genaue Position im Index. So kommst du mit iat zum selben Ergebnis:

print(df.iat(1, 2))
python

Boolesche In­de­xie­rung

Du kannst Daten auch basierend auf logischen Be­din­gun­gen filtern – das nennt man boolesche In­di­zie­rung. Die Bedingung muss entweder True oder False ergeben und wird direkt in den Operator ge­schrie­ben. Um etwa alle Personen an­zu­zei­gen, die älter als 30 Jahre sind, gehst du so vor:

# Auswahl der Zeilen, in denen das Alter größer als 30 ist
print(df[df[Alter] > 30])
python

Da dies nur auf den 35-jährigen „Charlie“ zutrifft, sieht das Ergebnis so aus:

Name  Alter    Stadt
2  Charlie     35  Chicago
Zum Hauptmenü