Sådan vælges data fra pandas DataFrames med loc[]
I Python pandas- biblioteket er DataFrame.loc[] en egenskab, der giver dig mulighed for at vælge data fra en DataFrame ved hjælp af etiketter. Dette gør det nemt at udtrække bestemte rækker og kolonner fra en DataFrame.
Hvad er syntaksen for pandas loc[]?
Syntaksen for loc[] er ganske enkel. Alt du skal gøre er at indtaste etiketterne for de kolonner og rækker, du vil vælge, som en parameter:
DataFrame.loc[selection]pythonMed pandas loc[] foretages valg primært ved hjælp af labels. Det betyder, at den parameter, du angiver, kan være en enkelt label, en liste eller en række labels. Boolean-arrays kan også bruges.
Hvad er forskellen mellem loc[] og iloc[]?
Mens pandas DataFrame.loc[] vælger data baseret på etiketter, vælger DataFrame.iloc data baseret på heltalbaserede positioner. Her er et kodeeksempel, der illustrerer forskellene. Først opretter vi 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ådan ser DataFrame ud:
Name Age
0 Alyssa 23
1 Brandon 35
2 Carmen 30For at udtrække ‘Alyssa’ fra DataFrame kan du bruge både pandas loc[] og iloc[]. Selvom fremgangsmåden er forskellig, er resultatet det samme:
# 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'pythonSådan bruges pandas DataFrame.loc[]
Pandas loc[] hjælper dig med at udtrække delmængder af din DataFrame. Med loc[] kan du udtrække en enkelt række eller kolonne, flere rækker og kolonner eller endda anvende betingelser til filtrering. Denne fleksibilitet gør det velegnet til en række forskellige anvendelsestilfælde.
Valg af en enkelt række
Lad os se på et eksempel med DataFrame:
import pandas as pd
data = {
'Name': ['Alyssa', 'Brandon', 'Carmen'],
'Age': [23, 35, 30],
'City': ['Sheffield', 'Glasgow', 'Belfast']
}
df = pd.DataFrame(data)
print(df)pythonSådan ser den resulterende DataFrame ud:
Name Age City
0 Alyssa 23 Sheffield
1 Brandon 35 Glasgow
2 Carmen 30 BelfastFor at vælge data fra den række, der indeholder oplysninger om Brandon (indeks 1), kan du bruge pandas loc[]:
brandon_data = df.loc[1]
print(brandon_data)pythonHer er resultatet:
Name Brandon
Age 35
City Glasgow
Name: 1, dtype: objectValg af flere kolonner
Du kan også bruge DataFrame.loc[] til at vælge en delmængde af kolonner. Følgende kode vælger kolonnerne ‘Navn’ og ‘By’:
name_city = df.loc[:, ['Name', 'City']]
print(name_city)pythonResultatet er en delmængde af den oprindelige DataFrame:
Name City
0 Alyssa Sheffield
1 Brandon Glasgow
2 Carmen BelfastValg af rækker baseret på betingelser
Med pandas loc[] kan du også vælge rækker, der opfylder bestemte kriterier. Det kan du gøre med boolske sammenligningsoperatorer. Her er et eksempel på, hvordan du filtrerer alle personer, der er ældre end 25 år:
older_than_25 = df.loc[df['Age'] > 25]
print(older_than_25)pythonOvenstående kode genererer en DataFrame, der kun indeholder data for personer i DataFrame, der er ældre end 25 år:
Name Age City
1 Brandon 35 Glasgow
2 Carmen 30 Belfast