Indexeringen av Python pandas DataFrames möjliggör effektiv och direkt åtkomst till data. Det gör det enklare att välja specifika rader och kolumner, vilket förenklar dataanalysuppgifterna.

Vad är indexering i pandas?

Indexering i pandas avser olika metoder som du kan använda för att välja rader eller kolumner. Med hjälp av etiketter för rader och kolumner eller deras numeriska position i DataFrame kan du enkelt välja element i en DataFrame. Ett index fungerar som ett slags adresssystem för dina data och hjälper dig att hitta och hantera dina data mer effektivt.

Vad är pandas DataFrame.index?

Du kan visa indexetiketterna för en DataFrame i pandas med hjälp av attributet index. Syntaxen ser ut så här:

DataFrame.index
python

Vad är syntaxen för indexering av DataFrames i pandas?

Det finns flera sätt att indexera pandas DataFrames, och syntaxen varierar beroende på vilken operation du vill utföra.

Indexering med etiketter (kolumnetiketter)

Du kan använda kolumnnamn för att indexera pandas DataFrames. Här är ett exempel på hur du skapar en exempel-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å här ser DataFrame ut:

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

För att komma åt alla värden i en kolumn kan du använda kolumnnamnet tillsammans med indexeringsoperatorn []. Ange bara kolumnnamnet som en Python-sträng inuti indexeringsoperatorn:

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

Resultatet är en lista med åldrar:

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

För att hämta data från mer än en kolumn skriver du kolumnnamnen i indexeringsoperatorn och separerar dem med kommatecken.

Indexering med loc[] (radetiketter)

Om du behöver komma åt en specifik rad i din DataFrame kan du använda pandas loc-indexeraren. Du kan skicka radetiketten eller radnumret till indexeraren. I det här exemplet använder vi samma DataFrame som ovan och extraherar värdena från den första raden (rad 0):

print(df.loc[0])
python

Koden ovan visar värdena för Alice, som finns i den första raden i DataFrame:

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

Indexering med iloc[] (rad- och kolumnnummer)

Ett annat sätt att komma åt specifika element i din DataFrame är genom rad- och kolumnnummer. Detta är förmodligen det mest populära sättet att hitta element i en DataFrame. För att använda det numeriska indexet behöver du DataFrame-attributet 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

Här är resultatet när man arbetar med iloc[]:

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

Åtkomst till enskilda värden

Om du bara vill komma åt ett enda värde är indexeraren at ett snabbt och enkelt sätt att göra det. Med denna indexerare kan du definiera rader och kolumner med hjälp av deras etiketter. Om du till exempel vill ta reda på var Bob bor skriver du ”1” för raden och ”City” för kolumnen:

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

Här får vi utdata London.

Alternativt kan du använda indexeraren iat, som fungerar på samma sätt som at men använder kolumnpositionen baserad på heltal istället för namnet. Koden nedan ger samma resultat som föregående exempel:

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

Boolesk indexering

Du kan också skapa delmängder av en DataFrame baserat på ett villkor. Detta kallas boolesk indexering. Villkoret ska utvärderas till antingen True eller False och placeras direkt i indexeringsoperatorn. Om du till exempel vill välja rader som innehåller personer som är över 30 år kan du använda följande kod:

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

Den enda personen som är över 30 är Charlie, vilket ger följande resultat:

Name  Age     City
2  Charlie   35    Cardiff
Gå till huvudmeny