Ako vybrať údaje z pandas DataFrames pomocou loc[]
V knižnici Python pandas je DataFrame.loc[] vlastnosť, ktorá vám umožňuje vyberať údaje z DataFrame pomocou štítkov. Vďaka tomu je možné ľahko extrahovať konkrétne riadky a stĺpce z DataFrame.
Aká je syntax pre pandas loc[]?
Syntax pre loc[] je celkom jednoduchá. Stačí len ako parameter zadať názvy stĺpcov a riadkov, ktoré chcete vybrať:
DataFrame.loc[selection]pythonV pandas loc[] sa výbery vykonávajú predovšetkým pomocou štítkov. To znamená, že parameter, ktorý zadáte, môže byť jeden štítok, zoznam alebo časť štítkov. Použiť sa dajú aj boolovské polia.
Aký je rozdiel medzi loc[] a iloc[]?
Zatiaľ čo pandas DataFrame.loc[] vyberá údaje na základe štítkov, DataFrame.iloc vyberá údaje na základe pozícií založených na celých číslach. Tu je príklad kódu, ktorý pomôže ilustrovať rozdiely. Najskôr vytvoríme pandas DataFrame:
import pandas as pd
# Example DataFrame
data = {'Name': ['Alyssa', 'Brandon', 'Carmen'], 'Age': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)pythonTakto vyzerá DataFrame:
Name Age
0 Alyssa 23
1 Brandon 35
2 Carmen 30Na extrakciu „Alyssa“ z DataFrame môžete použiť pandas loc[] aj iloc[]. Hoci sa prístup líši, výsledok je rovnaký:
# 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'pythonAko používať pandas DataFrame.loc[]
Pandas loc[] vám pomáha extrahovať podmnožiny vášho DataFrame. S loc[] môžete extrahovať jeden riadok alebo stĺpec, viacero riadkov a stĺpcov alebo dokonca použiť podmienky na filtrovanie. Táto flexibilita ho robí vhodným pre rôzne prípady použitia.
Výber jedného riadku
Pozrime sa na príklad DataFrame:
import pandas as pd
data = {
'Name': ['Alyssa', 'Brandon', 'Carmen'],
'Age': [23, 35, 30],
'City': ['Sheffield', 'Glasgow', 'Belfast']
}
df = pd.DataFrame(data)
print(df)pythonTakto vyzerá výsledný DataFrame:
Name Age City
0 Alyssa 23 Sheffield
1 Brandon 35 Glasgow
2 Carmen 30 BelfastNa výber údajov z riadku, ktorý obsahuje informácie o Brandonovi (index 1), môžete použiť pandas loc[]:
brandon_data = df.loc[1]
print(brandon_data)pythonTu je výsledok:
Name Brandon
Age 35
City Glasgow
Name: 1, dtype: objectVýber viacerých stĺpcov
Pomocou DataFrame.loc[] môžete tiež vybrať podmnožinu stĺpcov. Nasledujúci kód vyberá stĺpce „Name“ a „City“:
name_city = df.loc[:, ['Name', 'City']]
print(name_city)pythonVýsledkom je podmnožina pôvodného DataFrame:
Name City
0 Alyssa Sheffield
1 Brandon Glasgow
2 Carmen BelfastVýber riadkov na základe podmienok
S pandas loc[] môžete tiež vybrať riadky, ktoré spĺňajú špecifické kritériá. Môžete to urobiť pomocou boolovských porovnávacích operátorov. Napríklad takto môžete odfiltrovať všetky osoby staršie ako 25 rokov:
older_than_25 = df.loc[df['Age'] > 25]
print(older_than_25)pythonVyššie uvedený kód vytvorí DataFrame, ktorý obsahuje iba údaje o osobách v DataFrame, ktoré sú staršie ako 25 rokov:
Name Age City
1 Brandon 35 Glasgow
2 Carmen 30 Belfast