Jak vybrat data z pandas DataFrames pomocí loc[]
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]pythonV 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)pythonTakto vypadá DataFrame:
Name Age
0 Alyssa 23
1 Brandon 35
2 Carmen 30Chcete-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'pythonJak 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)pythonTakto vypadá výsledný DataFrame:
Name Age City
0 Alyssa 23 Sheffield
1 Brandon 35 Glasgow
2 Carmen 30 BelfastChcete-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)pythonTady je výsledek:
Name Brandon
Age 35
City Glasgow
Name: 1, dtype: objectVý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)pythonVýsledkem je podmnožina původního DataFrame:
Name City
0 Alyssa Sheffield
1 Brandon Glasgow
2 Carmen BelfastVý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)pythonVýš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