Hoe gegevens selecteren uit pandas DataFrames met loc[]
In de Python pandas-bibliotheek is DataFrame.loc[] een eigenschap waarmee u gegevens uit een DataFrame kunt selecteren met behulp van labels. Dit maakt het eenvoudig om specifieke rijen en kolommen uit een DataFrame te extraheren.
Wat is de syntaxis voor pandas loc[]?
De syntaxis voor loc[] is vrij eenvoudig. Het enige wat u hoeft te doen is de labels van de kolommen en rijen die u wilt selecteren als parameter doorgeven:
DataFrame.loc[selection]pythonMet pandas loc[] worden selecties voornamelijk gemaakt met behulp van labels. Dit betekent dat de parameter die u opgeeft een enkel label, een lijst of een reeks labels kan zijn. Booleaanse arrays kunnen ook worden gebruikt.
Wat is het verschil tussen loc[] en iloc[]?
Terwijl pandas DataFrame.loc[] gegevens selecteert op basis van labels, selecteert DataFrame.iloc gegevens op basis van posities op basis van gehele getallen. Hier is een codevoorbeeld om de verschillen te illustreren. Eerst gaan we een pandas DataFrame maken:
import pandas as pd
# Example DataFrame
data = {'Name': ['Alyssa', 'Brandon', 'Carmen'], 'Age': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)pythonZo ziet het DataFrame eruit:
Name Age
0 Alyssa 23
1 Brandon 35
2 Carmen 30Om ‘Alyssa’ uit het DataFrame te halen, kun je zowel pandas loc[] als iloc[] gebruiken. Hoewel de aanpak verschilt, is het resultaat hetzelfde:
# 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'pythonHoe pandas DataFrame.loc[] te gebruiken
Pandas loc[] helpt u bij het extraheren van subsets van uw DataFrame. Met loc[] kunt u een enkele rij of kolom, meerdere rijen en kolommen extraheren of zelfs voorwaarden toepassen voor het filteren. Deze flexibiliteit maakt het geschikt voor verschillende gebruikssituaties.
Een enkele rij selecteren
Laten we eens kijken naar een voorbeeld van een DataFrame:
import pandas as pd
data = {
'Name': ['Alyssa', 'Brandon', 'Carmen'],
'Age': [23, 35, 30],
'City': ['Sheffield', 'Glasgow', 'Belfast']
}
df = pd.DataFrame(data)
print(df)pythonDit is hoe het resulterende DataFrame eruitziet:
Name Age City
0 Alyssa 23 Sheffield
1 Brandon 35 Glasgow
2 Carmen 30 BelfastOm de gegevens te selecteren uit de rij die informatie bevat over Brandon (index 1), kunt u pandas loc[] gebruiken:
brandon_data = df.loc[1]
print(brandon_data)pythonDit is het resultaat:
Name Brandon
Age 35
City Glasgow
Name: 1, dtype: objectMeerdere kolommen selecteren
Je kunt ook DataFrame.loc[] gebruiken om een subset van kolommen te selecteren. De volgende code selecteert de kolommen ‘Naam’ en ‘Stad’:
name_city = df.loc[:, ['Name', 'City']]
print(name_city)pythonHet resultaat is een subset van het oorspronkelijke DataFrame:
Name City
0 Alyssa Sheffield
1 Brandon Glasgow
2 Carmen BelfastRijen selecteren op basis van voorwaarden
Met pandas loc[] kunt u ook rijen selecteren die aan specifieke criteria voldoen. Dit kunt u doen met Booleaanse vergelijkingsoperatoren. Hier volgt bijvoorbeeld hoe u alle personen ouder dan 25 kunt filteren:
older_than_25 = df.loc[df['Age'] > 25]
print(older_than_25)pythonDe bovenstaande code produceert een DataFrame die alleen gegevens bevat voor personen in de DataFrame die ouder zijn dan 25 jaar:
Name Age City
1 Brandon 35 Glasgow
2 Carmen 30 Belfast