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]
python

V 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)
python

Takto vyzerá DataFrame:

Name    Age
0   Alyssa     	23
1 	Brandon     35
2  	Carmen     	30

Na 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'
python

Ako 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)
python

Takto vyzerá výsledný DataFrame:

Name  	Age      City
0   Alyssa  23	 	Sheffield
1 Brandon  	35    Glasgow
2 Carmen    30    Belfast

Na 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)
python

Tu je výsledok:

Name         Brandon
Age              35
City        	Glasgow
Name: 1, dtype: object

Vý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)
python

Výsledkom je podmnožina pôvodného DataFrame:

Name     City
0   Alyssa  Sheffield
1 Brandon   Glasgow
2  Carmen   Belfast

Vý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)
python

Vyšš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
Prejsť na hlavné menu