Die In­de­xie­rung von Python Pandas Da­ta­Frames ist er­mög­licht den ef­fi­zi­en­ten und direkten Zugriff auf spe­zi­fi­sche Daten innerhalb eines Da­ta­Frames. Mithilfe eines Pandas-DataFrame-Index wählt man spe­zi­fi­sche Zeilen und Spalten aus, was die Da­ten­ana­ly­se erheblich er­leich­tern kann.

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

Was passiert bei der In­de­xie­rung?

Bei der In­de­xie­rung eines Pandas Da­ta­Frames soll die Auswahl be­stimm­ter Elemente des Da­ta­Frames er­leich­tert werden. Dies kann durch die Auswahl von Zeilen und Spalten anhand ihrer Po­si­tio­nen oder Be­zeich­nun­gen erfolgen. Indizes können dabei helfen, Daten schneller zu finden und zu be­ar­bei­ten, indem sie eine Art „Adress­sys­tem“ für die Da­ten­struk­tur bieten.

Syntax von Pandas DataFrame.index

Man kann sich die Index-Labels eines Pandas Da­ta­Frames mit der index-Ei­gen­schaft ansehen. De Syntax sieht wie folgt aus:

DataFrame.index
python

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

Es gibt ver­schie­de­ne Mög­lich­kei­ten der In­de­xie­rung von Pandas Da­ta­Frames. Die Syntax zur In­de­xie­rung variiert dabei je nach der ge­wünsch­ten Operation.

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

Pandas Da­ta­Frames können für die In­de­xie­rung Spal­ten­na­men nutzen. Hierfür wird zunächst ein Beispiel-DataFrame erstellt:

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

Der DataFrame sieht wie folgt aus:

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

Möchten Sie nun auf alle Werte einer spe­zi­fi­schen Spalte zugreifen, können Sie deren Namen in Ver­bin­dung mit dem In­di­zie­rungs­ope­ra­tor [] zur In­de­xie­rung nutzen. Geben Sie den Spal­ten­na­men einfach im In­di­zie­rungs­ope­ra­tor als Python-String an:

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

Als Resultat erhalten Sie die ver­schie­de­nen Al­ters­wer­te:

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

Wenn Sie sich nicht nur für eine, sondern für mehrere Spalten in­ter­es­sie­ren, können Sie deren Namen einfach mit Kommata getrennt im In­di­zie­rungs­ope­ra­tor angeben.

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

Wenn Sie auf eine bestimmte Zeile Ihres Da­ta­Frames zugreifen möchten, benötigen Sie hierzu den Pandas-Indexer loc. Diesem übergeben Sie entweder den Zei­len­na­men oder aber die Zei­len­num­mer. Im folgenden Code­bei­spiel wird derselbe DataFrame wie zuvor be­trach­tet; es soll die nullte Spalte mit den Werten für „Alice“ ex­tra­hiert werden:

print(df.loc[0])
python

Im Ergebnis sind nun also wie erwartet die Werte sichtbar, die zu „Alice“ gehören:

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

In­de­xie­rung mit iloc[] (Zeilen- und Spal­ten­num­mern)

Eine andere und die ver­mut­lich po­pu­lärs­te Mög­lich­keit, auf spe­zi­fi­sche Elemente Ihres Da­ta­Frames zu­zu­grei­fen, bieten die Zeilen- und Spal­ten­num­mern. Um mit dem nu­me­ri­schen Pandas-DataFrame-Index zu arbeiten, benötigen Sie die DataFrame-Ei­gen­schaft iloc.

# 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 Er­geb­nis­se der Arbeit mit iloc[] sehen fol­gen­der­ma­ßen aus und geben die er­war­te­ten Werte zurück:

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

Einzelne Werte in­di­zie­ren

Wenn Sie sich nur für einen spe­zi­fi­schen Wert aus Ihrem DataFrame in­ter­es­sie­ren, ist der Indexer at eine schnelle und elegante Mög­lich­keit, diesen spe­zi­el­len Wert zu ex­tra­hie­ren. De­fi­nie­ren Sie einfach die ent­spre­chen­de Zeile und Spalte, in der der Wert auf­zu­fin­den ist, mit ihren Namen. Wenn also der Wohnort von Bob von Interesse ist, benötigen wir die Spalte „Stadt“ und die erste Zeile:

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

Wie gewünscht ist die Ausgabe der Wohnort von Bob und somit „Los Angeles“.

Al­ter­na­tiv können Sie den iat-Indexer nutzen, der analog zu at funk­tio­niert, statt des Namens aber die Position erwartet. Dasselbe Ergebnis wie im vor­he­ri­gen Code­bei­spiel erhält man mit folgender Nutzung von iat:

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

Boolesche In­de­xie­rung

Teil­men­gen eines Da­ta­Frames lassen sich auch basierend auf einer be­stimm­ten Bedingung in­di­zie­ren. In diesem Fall spricht man von boole­scher In­di­zie­rung. Die Bedingung, die überprüft werden soll, muss entweder zu True oder zu False auswerten und wird direkt in den In­di­zie­rungs­ope­ra­tor gesetzt. Um nur die Zeilen zu ex­tra­hie­ren, in denen die Person älter als 30 ist, kann wie folgt vor­ge­gan­gen werden:

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

Wie erwartet trifft die obige Bedingung nur auf den 35-jährigen „Charlie“ zu. Die Ausgabe ergibt daher Folgendes:

Name  Alter    Stadt
2  Charlie     35  Chicago
Hinweis

Beachten Sie, dass Sie bei der boole­schen In­di­zie­rung sämtliche boole­schen Ver­gleichs­ope­ra­to­ren nutzen können, die entweder zu True oder zu False auswerten. Erfahren Sie mehr über die ver­schie­de­nen Python-Ope­ra­to­ren in unserem Ratgeber-Artikel zum Thema.

Zum Hauptmenü