Hvordan velge data fra pandas DataFrames med loc[]
I Python pandas- biblioteket er DataFrame.loc[] en egenskap som lar deg velge data fra en DataFrame ved hjelp av etiketter. Dette gjør det enkelt å trekke ut bestemte rader og kolonner fra en DataFrame.
Hva er syntaksen for pandas loc[]?
Syntaksen for loc[] er ganske enkel. Alt du trenger å gjøre er å sende etikettene til kolonnene og radene du vil velge som parameter:
DataFrame.loc[selection]pythonMed pandas loc[] gjøres valg primært ved hjelp av etiketter. Dette betyr at parameteren du angir kan være en enkelt etikett, en liste eller en del av etiketter. Boolske matriser kan også brukes.
Hva er forskjellen mellom loc[] og iloc[]?
Mens pandas DataFrame.loc[] velger data basert på etiketter, velger DataFrame.iloc data basert på heltallsbaserte posisjoner. Her er et kodeeksempel som illustrerer forskjellene. Først skal vi opprette en pandas DataFrame:
import pandas as pd
# Example DataFrame
data = {'Name': ['Alyssa', 'Brandon', 'Carmen'], 'Age': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)pythonSlik ser DataFrame ut:
Name Age
0 Alyssa 23
1 Brandon 35
2 Carmen 30For å trekke ut «Alyssa» fra DataFrame, kan du bruke både pandas loc[] og iloc[]. Selv om tilnærmingen er forskjellig, 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'pythonHvordan bruke pandas DataFrame.loc[]
Pandas loc[] hjelper deg med å trekke ut delmengder av DataFrame. Med loc[] kan du trekke ut en enkelt rad eller kolonne, flere rader og kolonner eller til og med bruke betingelser for filtrering. Denne fleksibiliteten gjør det egnet for en rekke bruksområder.
Velge en enkelt rad
La oss se på et eksempel på DataFrame:
import pandas as pd
data = {
'Name': ['Alyssa', 'Brandon', 'Carmen'],
'Age': [23, 35, 30],
'City': ['Sheffield', 'Glasgow', 'Belfast']
}
df = pd.DataFrame(data)
print(df)pythonSlik ser den resulterende DataFrame ut:
Name Age City
0 Alyssa 23 Sheffield
1 Brandon 35 Glasgow
2 Carmen 30 BelfastFor å velge dataene fra raden som inneholder informasjon om Brandon (indeks 1), kan du bruke pandas loc[]:
brandon_data = df.loc[1]
print(brandon_data)pythonHer er resultatet:
Name Brandon
Age 35
City Glasgow
Name: 1, dtype: objectVelge flere kolonner
Du kan også bruke DataFrame.loc[] til å velge en delmengde av kolonner. Følgende kode velger kolonnene «Navn» og «By»:
name_city = df.loc[:, ['Name', 'City']]
print(name_city)pythonResultatet er en delmengde av den opprinnelige DataFrame:
Name City
0 Alyssa Sheffield
1 Brandon Glasgow
2 Carmen BelfastVelge rader basert på betingelser
Med pandas loc[] kan du også velge rader som oppfyller bestemte kriterier. Du kan gjøre dette med boolske sammenligningsoperatorer. Her er for eksempel hvordan du filtrerer ut alle personer som er eldre enn 25 år:
older_than_25 = df.loc[df['Age'] > 25]
print(older_than_25)pythonKoden ovenfor produserer en DataFrame som bare inneholder data for personer i DataFrame som er eldre enn 25 år:
Name Age City
1 Brandon 35 Glasgow
2 Carmen 30 Belfast