V knihovně Python pandas je DataFrame.loc[] vlastnost, která umožňuje vybírat data z DataFrame pomocí štítků. To usnadňuje extrahování konkrétních řádků a sloupců z DataFrame.

Jaká je syntaxe pro pandas loc[]?

Syntaxe pro loc[] je poměrně jednoduchá. Stačí zadat jako parametr názvy sloupců a řádků, které chcete vybrat:

DataFrame.loc[selection]
python

V pandas loc[] se výběry provádějí především pomocí štítků. To znamená, že parametr, který zadáte, může být jediný štítek, seznam nebo část štítků. Lze použít také booleovské pole.

Jaký je rozdíl mezi loc[] a iloc[]?

Zatímco pandas DataFrame.loc[] vybírá data na základě štítků, DataFrame.iloc vybírá data na základě celočíselných pozic. Zde je příklad kódu, který pomůže ilustrovat rozdíly. Nejprve vytvoří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 vypadá DataFrame:

Name    Age
0   Alyssa     	23
1 	Brandon     35
2  	Carmen     	30

Chcete-li extrahovat „Alyssa“ z DataFrame, můžete použít jak pandas loc[], tak iloc[]. Ačkoli se přístup liší, výsledek je stejný:

# 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

Jak používat pandas DataFrame.loc[]

Pandas loc[] vám pomůže extrahovat podsady vašeho DataFrame. S loc[] můžete extrahovat jeden řádek nebo sloupec, více řádků a sloupců nebo dokonce použít podmínky pro filtrování. Díky této flexibilitě je vhodný pro celou řadu použití.

Výběr jednoho řádku

Podívejme se na pří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 vypadá výsledný DataFrame:

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

Chcete-li vybrat data z řádku, který obsahuje informace o Brandonovi (index 1), můžete použít pandas loc[]:

brandon_data = df.loc[1]
print(brandon_data)
python

Tady je výsledek:

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

Výběr více sloupců

Pomocí DataFrame.loc[] můžete také vybrat podmnožinu sloupců. Následující kód vybere sloupce „Jméno“ a „Město“:

name_city = df.loc[:, ['Name', 'City']]
print(name_city)
python

Výsledkem je podmnožina původního DataFrame:

Name     City
0   Alyssa  Sheffield
1 Brandon   Glasgow
2  Carmen   Belfast

Výběr řádků na základě podmínek

S pandas loc[] můžete také vybrat řádky, které splňují konkrétní kritéria. Toho lze dosáhnout pomocí booleovských srovnávacích operátorů. Například takto můžete odfiltrovat všechny osoby starší 25 let:

older_than_25 = df.loc[df['Age'] > 25]
print(older_than_25)
python

Výše uvedený kód vytvoří datový rámec, který obsahuje pouze data pro osoby v datovém rámci starší 25 let:

Name  	Age     City
1 Brandon     35   Glasgow
2  Carmen     30   Belfast
Přejít do hlavního menu