Cum să selectați date din pandas DataFrames cu loc[]
În biblioteca Python pandas, DataFrame.loc[] este o proprietate care vă permite să selectați date dintr-un DataFrame folosind etichete. Acest lucru facilitează extragerea anumitor rânduri și coloane dintr-un DataFrame.
Care este sintaxa pentru pandas loc[]?
Sintaxa pentru loc[] este destul de simplă. Tot ce trebuie să faceți este să treceți etichetele coloanelor și rândurilor pe care doriți să le selectați ca parametru:
DataFrame.loc[selection]pythonCu pandas loc[], selecțiile se fac în principal folosind etichete. Aceasta înseamnă că parametrul pe care îl furnizați poate fi o singură etichetă, o listă sau o secțiune de etichete. Se pot folosi și matrice booleene.
Care este diferența dintre loc[] și iloc[]?
În timp ce pandas DataFrame.loc[] selectează datele pe baza etichetelor, DataFrame.iloc selectează datele pe baza pozițiilor întregi. Iată un exemplu de cod care ilustrează diferențele. Mai întâi, vom crea un DataFrame pandas:
import pandas as pd
# Example DataFrame
data = {'Name': ['Alyssa', 'Brandon', 'Carmen'], 'Age': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)pythonIată cum arată DataFrame:
Name Age
0 Alyssa 23
1 Brandon 35
2 Carmen 30Pentru a extrage „Alyssa” din DataFrame, puteți utiliza atât pandas loc[], cât și iloc[]. Deși abordarea diferă, rezultatul este același:
# 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'pythonCum se utilizează pandas DataFrame.loc[]
Pandas loc[] vă ajută să extrageți subseturi din DataFrame. Cu loc[], puteți extrage un singur rând sau coloană, mai multe rânduri și coloane sau chiar aplica condiții de filtrare. Această flexibilitate îl face potrivit pentru o varietate de cazuri de utilizare.
Selectarea unui singur rând
Să vedem un exemplu de DataFrame:
import pandas as pd
data = {
'Name': ['Alyssa', 'Brandon', 'Carmen'],
'Age': [23, 35, 30],
'City': ['Sheffield', 'Glasgow', 'Belfast']
}
df = pd.DataFrame(data)
print(df)pythonIată cum arată DataFrame-ul rezultat:
Name Age City
0 Alyssa 23 Sheffield
1 Brandon 35 Glasgow
2 Carmen 30 BelfastPentru a selecta datele din rândul care conține informații despre Brandon (index 1), puteți utiliza pandas loc[]:
brandon_data = df.loc[1]
print(brandon_data)pythonIată rezultatul:
Name Brandon
Age 35
City Glasgow
Name: 1, dtype: objectSelectarea mai multor coloane
De asemenea, puteți utiliza DataFrame.loc[] pentru a selecta un subset de coloane. Codul următor selectează coloanele „Nume” și „Oraș”:
name_city = df.loc[:, ['Name', 'City']]
print(name_city)pythonRezultatul este un subset al DataFrame-ului original:
Name City
0 Alyssa Sheffield
1 Brandon Glasgow
2 Carmen BelfastSelectarea rândurilor pe baza condițiilor
Cu pandas loc[], puteți selecta și rânduri care îndeplinesc anumite criterii. Puteți face acest lucru cu ajutorul operatorilor de comparație booleană. De exemplu, iată cum puteți filtra toate persoanele care au peste 25 de ani:
older_than_25 = df.loc[df['Age'] > 25]
print(older_than_25)pythonCodul de mai sus generează un DataFrame care include numai datele persoanelor din DataFrame care au peste 25 de ani:
Name Age City
1 Brandon 35 Glasgow
2 Carmen 30 Belfast