De in­dexe­ring van Python pandas Da­taF­ra­mes maakt ef­fi­ci­ën­te en directe toegang tot gegevens mogelijk. Het maakt het ge­mak­ke­lij­ker om spe­ci­fie­ke rijen en kolommen te se­lec­te­ren, wat ge­ge­vens­ana­ly­se­ta­ken ver­een­vou­digt.

Wat is in­dexe­ring in pandas?

In­dexe­ring in pandas verwijst naar ver­schil­len­de methoden die u kunt gebruiken om rijen of kolommen te se­lec­te­ren. Met behulp van labels van rijen en kolommen of hun numerieke positie binnen het DataFrame kunt u eenvoudig elementen in een DataFrame se­lec­te­ren. Een index fungeert als een soort adrest­sys­teem voor uw gegevens, waardoor u uw gegevens ef­fi­ci­ën­ter kunt lo­ka­li­se­ren en beheren.

Wat is pandas DataFrame.index?

Je kunt de in­dex­la­bels van een DataFrame in pandas bekijken met behulp van het index. De syntaxis ziet er als volgt uit:

DataFrame.index
python

Wat is de syntaxis voor het indexeren van Da­taF­ra­mes in pandas?

Er zijn ver­schil­len­de manieren om pandas Da­taF­ra­mes te indexeren, en de syntaxis varieert af­han­ke­lijk van de bewerking die u wilt uitvoeren.

Indexeren met labels (ko­lom­la­bels)

Je kunt ko­lom­na­men gebruiken om pandas Da­taF­ra­mes te indexeren. Hier is een voorbeeld van hoe je een voorbeeld DataFrame kunt maken:

import pandas as pd
# Creating a sample DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['Nottingham', 'London', 'Cardiff']
}
df = pd.DataFrame(data)
print(df)
python

Zo ziet het DataFrame eruit:

Name  Age       City
0    Alice   25     Nottingham
1    Bob   30  	London
2  Charlie   35    Cardiff

Om toegang te krijgen tot alle waarden in een kolom, kunt u de kolomnaam samen met de in­dexe­rings­ope­ra­tor [] gebruiken. Voer gewoon de kolomnaam als een Python-string in binnen de in­dexe­rings­ope­ra­tor:

# Access the Age column
print(df['Age'])
python

De uitvoer is een lijst met leef­tij­den:

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

Om de gegevens van meer dan één kolom op te halen, schrijft u de ko­lom­na­men in de in­dexe­rings­ope­ra­tor en plaatst u komma’s tussen de ko­lom­na­men om ze te scheiden.

In­dexe­ring met loc[] (rijlabels)

Als u toegang wilt tot een spe­ci­fie­ke rij in uw DataFrame, kunt u de pandas loc-indexer gebruiken. U kunt het rijlabel of rijnummer doorgeven aan de indexer. In dit voorbeeld gebruiken we dezelfde DataFrame als hierboven en halen we de waarden uit de eerste rij (rij 0):

print(df.loc[0])
python

De bo­ven­staan­de code geeft de waarden voor Alice weer, die in de eerste rij van het DataFrame staan:

Name        Alice
Age            25
City      Nottingham
Name: 0, dtype: object

In­dexe­ring met iloc[] (rij- en ko­lom­num­mers)

Een andere manier om toegang te krijgen tot spe­ci­fie­ke elementen in uw DataFrame is via rij- en ko­lom­num­mers. Dit is waar­schijn­lijk de meest populaire manier om elementen in een DataFrame te lo­ka­li­se­ren. Om de numerieke index te gebruiken, hebt u het DataFrame-attribuut iloc nodig.

# Access the first row
print(df.iloc[0])
# Access the value in the first row and second column
print(df.iloc[0, 1])
python

Dit is het resultaat bij het werken met iloc[]:

Name        Alice
Age            25
City      Nottingham
Name: 0, dtype: object
25

Toegang tot in­di­vi­du­e­le waarden

Als u slechts één waarde wilt opvragen, is de at een snelle, een­vou­di­ge manier om dat te doen. Met deze indexer kunt u rijen en kolommen de­fi­ni­ë­ren aan de hand van hun labels. Als u bij­voor­beeld wilt weten waar Bob woont, typt u ‘1’ voor de rij en ‘City’ voor de kolom:

print(df.at[1, 'City'])
python

Hier krijgen we de uitvoer Londen.

Als al­ter­na­tief kunt u de 20-indexer gebruiken, die op dezelfde manier werkt als at, maar de op gehele getallen ge­ba­seer­de ko­lom­po­si­tie gebruikt in plaats van de naam. De on­der­staan­de code levert hetzelfde resultaat op als het vorige voorbeeld:

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

Boole­aan­se in­dexe­ring

U kunt ook subsets van een DataFrame maken op basis van een voor­waar­de. Dit staat bekend als Boole­aan­se in­dexe­ring. De voor­waar­de moet uitkomen op True of False en wordt recht­streeks in de in­dexe­rings­ope­ra­tor geplaatst. Als u bij­voor­beeld rijen wilt se­lec­te­ren die personen bevatten die ouder zijn dan 30 jaar, kunt u de volgende code gebruiken:

# Select rows where Age is greater than 30
print(df[df['Age'] > 30])
python

De enige persoon die ouder is dan 30 is Charlie, wat re­sul­teert in de volgende uitvoer:

Name  Age     City
2  Charlie   35    Cardiff
Ga naar hoofdmenu