I Python -bib­li­o­te­ket pandas är DataFrame.loc[] en egenskap som låter dig välja data från en DataFrame med hjälp av etiketter. Detta gör det enkelt att extrahera specifika rader och kolumner från en DataFrame.

Vad är syntaxen för pandas loc[]?

Syntaxen för loc[] är ganska enkel. Allt du behöver göra är att ange eti­ket­ter­na för de kolumner och rader du vill välja som parameter:

DataFrame.loc[selection]
python

Med pandas loc[] görs val främst med hjälp av etiketter. Det innebär att den parameter du anger kan vara en enskild etikett, en lista eller en delmängd av etiketter. Booleska matriser kan också användas.

Vad är skill­na­den mellan loc[] och iloc[]?

Medan pandas DataFrame.loc[] väljer data baserat på etiketter, väljer DataFrame.iloc data baserat på hel­tal­ba­se­ra­de po­si­tio­ner. Här är ett ko­dex­em­pel som il­lu­stre­rar skill­na­der­na. Först ska vi skapa en pandas DataFrame:

import pandas as pd
# Example DataFrame
data = {'Name': ['Alyssa', 'Brandon', 'Carmen'], 'Age': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)
python

Så här ser DataFrame ut:

Name    Age
0   Alyssa     	23
1 	Brandon     35
2  	Carmen     	30

För att extrahera “Alyssa” från DataFrame kan du använda både pandas loc[] och iloc[]. Även om till­vä­ga­gångs­sät­tet skiljer sig åt är re­sul­ta­tet detsamma:

# Using loc and labels to extract Alyssa
print(df.loc[0, 'Name'])  # Output: 'Alyssa'
# Using iloc and integers to extract Alysa
print(df.iloc[0, 0])  # Output: 'Alyssa'
python

Hur man använder pandas DataFrame.loc[]

Pandas loc[] hjälper dig att extrahera del­mäng­der av din DataFrame. Med loc[] kan du extrahera en enskild rad eller kolumn, flera rader och kolumner eller till och med tillämpa villkor för fil­tre­ring. Denna flex­i­bi­li­tet gör den lämplig för en mängd olika an­vänd­nings­fall.

Välja en enda rad

Låt oss titta på ett DataFrame-exempel:

import pandas as pd
data = {
    'Name': ['Alyssa', 'Brandon', 'Carmen'],
    'Age': [23, 35, 30],
    'City': ['Sheffield', 'Glasgow', 'Belfast']
}
df = pd.DataFrame(data)
print(df)
python

Så här ser den re­sul­te­ran­de DataFrame ut:

Name  	Age      City
0   Alyssa  23	 	Sheffield
1 Brandon  	35    Glasgow
2 Carmen    30    Belfast

För att välja data från raden som in­ne­hål­ler in­for­ma­tion om Brandon (index 1) kan du använda pandas loc[]:

brandon_data = df.loc[1]
print(brandon_data)
python

Här är re­sul­ta­tet:

Name         Brandon
Age              35
City        	Glasgow
Name: 1, dtype: object

Välja flera kolumner

Du kan också använda DataFrame.loc[] för att välja en delmängd av kolumner. Följande kod väljer ko­lum­ner­na “Namn” och “Stad”:

name_city = df.loc[:, ['Name', 'City']]
print(name_city)
python

Re­sul­ta­tet är en delmängd av den ur­sprung­li­ga DataFrame:

Name     City
0   Alyssa  Sheffield
1 Brandon   Glasgow
2  Carmen   Belfast

Välja rader baserat på villkor

Med pandas loc[] kan du också välja rader som uppfyller specifika kriterier. Du kan göra detta med booleska jäm­fö­rel­se­o­pe­ra­to­rer. Här är ett exempel på hur du filtrerar bort alla individer som är äldre än 25 år:

older_than_25 = df.loc[df['Age'] > 25]
print(older_than_25)
python

Koden ovan genererar en DataFrame som endast in­ne­hål­ler data för personer i DataFrame som är äldre än 25 år:

Name  	Age     City
1 Brandon     35   Glasgow
2  Carmen     30   Belfast
Gå till huvudmeny