Hur man indexerar pandas DataFrames
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.indexpythonVad ä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)pythonSå här ser DataFrame ut:
Name Age City
0 Alice 25 Nottingham
1 Bob 30 London
2 Charlie 35 CardiffFö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'])pythonResultatet är en lista med åldrar:
0 25
1 30
2 35
Name: Age, dtype: int64Fö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])pythonKoden 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: objectIndexering 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])pythonHä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'])pythonHä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])pythonBoolesk 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])pythonDen enda personen som är över 30 är Charlie, vilket ger följande resultat:
Name Age City
2 Charlie 35 Cardiff