In­dex­e­ring­en av Python pandas Da­taFrames möjliggör effektiv och direkt åtkomst till data. Det gör det enklare att välja specifika rader och kolumner, vilket förenklar da­taa­na­lys­upp­gif­ter­na.

Vad är in­dex­e­ring i pandas?

In­dex­e­ring 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 adress­sy­stem för dina data och hjälper dig att hitta och hantera dina data mer effektivt.

Vad är pandas DataFrame.index?

Du kan visa in­dex­e­ti­ket­ter­na för en DataFrame i pandas med hjälp av at­tri­bu­tet index. Syntaxen ser ut så här:

DataFrame.index
python

Vad är syntaxen för in­dex­e­ring av Da­taFrames i pandas?

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

In­dex­e­ring med etiketter (ko­lum­ne­ti­ket­ter)

Du kan använda ko­lumn­namn för att indexera pandas Da­taFrames. 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 ko­lumn­nam­net till­sam­mans med in­dex­e­rings­o­pe­ra­torn []. Ange bara ko­lumn­nam­net som en Python-sträng inuti in­dex­e­rings­o­pe­ra­torn:

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

Re­sul­ta­tet ä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 ko­lumn­nam­nen i in­dex­e­rings­o­pe­ra­torn och separerar dem med kom­ma­tec­ken.

In­dex­e­ring med loc[] (ra­de­ti­ket­ter)

Om du behöver komma åt en specifik rad i din DataFrame kan du använda pandas loc-in­dex­e­ra­ren. Du kan skicka ra­de­ti­ket­ten eller radnumret till in­dex­e­ra­ren. I det här exemplet använder vi samma DataFrame som ovan och ex­tra­he­rar 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

In­dex­e­ring med iloc[] (rad- och ko­lumn­num­mer)

Ett annat sätt att komma åt specifika element i din DataFrame är genom rad- och ko­lumn­num­mer. Detta är för­mod­li­gen det mest populära sättet att hitta element i en DataFrame. För att använda det numeriska indexet behöver du DataFrame-at­tri­bu­tet 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 re­sul­ta­tet 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 in­dex­e­ra­ren at ett snabbt och enkelt sätt att göra det. Med denna in­dex­e­ra­re 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.

Al­ter­na­tivt kan du använda in­dex­e­ra­ren iat, som fungerar på samma sätt som at men använder ko­lumn­po­si­tio­nen baserad på heltal istället för namnet. Koden nedan ger samma resultat som fö­re­gå­en­de exempel:

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

Boolesk in­dex­e­ring

Du kan också skapa del­mäng­der av en DataFrame baserat på ett villkor. Detta kallas boolesk in­dex­e­ring. Villkoret ska ut­vär­de­ras till antingen True eller False och placeras direkt i in­dex­e­rings­o­pe­ra­torn. Om du till exempel vill välja rader som in­ne­hål­ler 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