Hur man väljer data från pandas DataFrames med loc[]
I Python -biblioteket 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 etiketterna för de kolumner och rader du vill välja som parameter:
DataFrame.loc[selection]pythonMed 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 skillnaden mellan loc[] och iloc[]?
Medan pandas DataFrame.loc[] väljer data baserat på etiketter, väljer DataFrame.iloc data baserat på heltalbaserade positioner. Här är ett kodexempel som illustrerar skillnaderna. 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)pythonSå här ser DataFrame ut:
Name Age
0 Alyssa 23
1 Brandon 35
2 Carmen 30För att extrahera “Alyssa” från DataFrame kan du använda både pandas loc[] och iloc[]. Även om tillvägagångssättet skiljer sig åt är resultatet 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'pythonHur man använder pandas DataFrame.loc[]
Pandas loc[] hjälper dig att extrahera delmängder 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 filtrering. Denna flexibilitet gör den lämplig för en mängd olika användningsfall.
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)pythonSå här ser den resulterande DataFrame ut:
Name Age City
0 Alyssa 23 Sheffield
1 Brandon 35 Glasgow
2 Carmen 30 BelfastFör att välja data från raden som innehåller information om Brandon (index 1) kan du använda pandas loc[]:
brandon_data = df.loc[1]
print(brandon_data)pythonHär är resultatet:
Name Brandon
Age 35
City Glasgow
Name: 1, dtype: objectVä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 kolumnerna “Namn” och “Stad”:
name_city = df.loc[:, ['Name', 'City']]
print(name_city)pythonResultatet är en delmängd av den ursprungliga DataFrame:
Name City
0 Alyssa Sheffield
1 Brandon Glasgow
2 Carmen BelfastVä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ämförelseoperatorer. 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)pythonKoden ovan genererar en DataFrame som endast innehåller data för personer i DataFrame som är äldre än 25 år:
Name Age City
1 Brandon 35 Glasgow
2 Carmen 30 Belfast