In­dek­se­ring af Python pandas Da­ta­F­ra­mes giver mulighed for effektiv og direkte adgang til data. Det gør det nemmere at vælge bestemte rækker og kolonner, hvilket forenkler da­ta­a­na­ly­se­op­ga­ver.

Hvad er in­dek­se­ring i pandas?

In­dek­se­ring i pandas henviser til for­skel­li­ge metoder, du kan bruge til at vælge rækker eller kolonner. Ved hjælp af etiketter på rækker og kolonner eller deres numeriske position i DataFrame kan du nemt vælge elementer i en DataFrame. Et indeks fungerer som en slags adres­se­sy­stem for dine data, der hjælper dig med at finde og ad­mi­ni­stre­re dine data mere effektivt.

Hvad er pandas DataFrame.index?

Du kan se in­deks­mær­ker­ne for en DataFrame i pandas ved hjælp af at­tri­but­ten index. Syntaksen ser således ud:

DataFrame.index
python

Hvad er syntaksen for in­dek­se­ring af Da­ta­F­ra­mes i pandas?

Der er flere måder at indeksere pandas Da­ta­F­ra­mes på, og syntaksen varierer afhængigt af den operation, du ønsker at udføre.

In­dek­se­ring med etiketter (ko­lon­ne­e­ti­ket­ter)

Du kan bruge ko­lon­ne­nav­ne til at indeksere pandas Da­ta­F­ra­mes. Her er et eksempel på, hvordan du opretter en eksempel-DataFrame:

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

Sådan ser DataFrame ud:

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

For at få adgang til alle værdierne i en kolonne kan du bruge ko­lon­ne­nav­net sammen med in­dek­se­rings­o­pe­ra­to­ren []. Indtast blot ko­lon­ne­nav­net som en Python-streng inden for in­dek­se­rings­o­pe­ra­to­ren:

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

Re­sul­ta­tet er en liste over aldre:

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

For at hente data fra mere end én kolonne skal du skrive ko­lon­ne­nav­ne­ne i in­dek­se­rings­o­pe­ra­to­ren og adskille dem med kommaer.

In­dek­se­ring med loc[] (ræk­ke­e­ti­ket­ter)

Hvis du har brug for at få adgang til en bestemt række i din DataFrame, kan du bruge pandas loc-in­dek­se­rin­gen. Du kan overføre ræk­ke­e­ti­ket­ten eller rækkens nummer til in­dek­se­rin­gen. I dette eksempel bruger vi den samme DataFrame som ovenfor og udtrækker værdierne fra den første række (række 0):

print(df.loc[0])
python

Oven­stå­en­de kode udskriver værdierne for Alice, som findes i den første række i DataFrame:

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

In­dek­se­ring med iloc[] (række- og ko­lon­ne­num­re)

En anden måde at få adgang til spe­ci­fik­ke elementer i din DataFrame er via række- og ko­lon­ne­num­re. Dette er sand­syn­lig­vis den mest populære måde at finde elementer i en DataFrame. For at bruge det numeriske indeks skal du bruge DataFrame-at­tri­but­ten iloc.

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

Her er re­sul­ta­tet, når man arbejder med iloc[]:

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

Adgang til in­di­vi­du­el­le værdier

Hvis du kun vil have adgang til en enkelt værdi, er at en hurtig og enkel måde at gøre det på. Med denne in­dek­se­ring kan du definere rækker og kolonner ved hjælp af deres etiketter. Hvis du f.eks. vil finde ud af, hvor Bob bor, skal du skrive ‘1’ for rækken og ‘City’ for kolonnen:

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

Her får vi re­sul­ta­tet London.

Al­ter­na­tivt kan du bruge 20-in­dek­se­rin­gen, som fungerer på samme måde som at, men bruger den hel­tal­ba­se­re­de ko­lon­nepo­si­tion i stedet for navnet. Koden nedenfor giver det samme resultat som det fo­re­gå­en­de eksempel:

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

Boolsk in­dek­se­ring

Du kan også oprette del­mæng­der af en DataFrame baseret på en be­tin­gel­se. Dette kaldes boolsk in­dek­se­ring. Be­tin­gel­sen skal evaluere til enten True eller False og placeres direkte i in­dek­se­rings­o­pe­ra­to­ren. Hvis du f.eks. vil vælge rækker, der in­de­hol­der personer, der er over 30 år, kan du bruge følgende kode:

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

Den eneste person, der er over 30, er Charlie, hvilket re­sul­te­rer i følgende output:

Name  Age     City
2  Charlie   35    Cardiff
Gå til ho­ved­me­nu­en