Jak indexovat pandas DataFrames
Indexování datových rámců Python pandas umožňuje efektivní a přímý přístup k datům. Usnadňuje výběr konkrétních řádků a sloupců, čímž zjednodušuje úkoly související s analýzou dat.
Co je indexování v pandách?
Indexování v pandas odkazuje na různé metody, které můžete použít k výběru řádků nebo sloupců. Pomocí štítků řádků a sloupců nebo jejich číselné pozice v DataFrame můžete snadno vybrat prvky v DataFrame. Index slouží jako druh adresního systému pro vaše data a pomáhá vám efektivněji vyhledávat a spravovat data.
Co je pandas DataFrame.index?
Indexové štítky DataFrame v pandas můžete zobrazit pomocí atributu index. Syntaxe vypadá takto:
DataFrame.indexpythonJaká je syntaxe pro indexování datových rámců v pandas?
Existuje několik způsobů, jak indexovat pandas DataFrames, a syntaxe se liší v závislosti na operaci, kterou chcete provést.
Indexování pomocí štítků (štítky sloupců)
K indexování datových rámců pandas můžete použít názvy sloupců. Zde je příklad, jak vytvořit vzorový datový rámec:
import pandas as pd
# Creating a sample DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['Nottingham', 'London', 'Cardiff']
}
df = pd.DataFrame(data)
print(df)pythonTakto vypadá DataFrame:
Name Age City
0 Alice 25 Nottingham
1 Bob 30 London
2 Charlie 35 CardiffPro přístup ke všem hodnotám ve sloupci můžete použít název sloupce spolu s indexovacím operátorem []. Stačí zadat název sloupce jako řetězec Pythonu uvnitř indexovacího operátoru:
# Access the Age column
print(df['Age'])pythonVýstupem je seznam věků:
0 25
1 30
2 35
Name: Age, dtype: int64Chcete-li načíst data z více než jednoho sloupce, zadejte názvy sloupců do indexovacího operátoru a oddělte je čárkami.
Indexování s loc[] (označení řádků)
Pokud potřebujete přistupovat ke konkrétnímu řádku v DataFrame, můžete použít indexovač pandas loc. Do indexovače můžete zadat označení řádku nebo číslo řádku. V tomto příkladu použijeme stejný DataFrame jako výše a extrahujeme hodnoty z prvního řádku (řádek 0):
print(df.loc[0])pythonVýše uvedený kód vypisuje hodnoty pro Alice, které jsou obsaženy v prvním řádku DataFrame:
Name Alice
Age 25
City Nottingham
Name: 0, dtype: objectIndexování pomocí iloc[] (čísla řádků a sloupců)
Dalším způsobem, jak přistupovat ke konkrétním prvkům v DataFrame, je pomocí čísel řádků a sloupců. Jedná se pravděpodobně o nejoblíbenější způsob vyhledávání prvků v DataFrame. K použití číselného indexu potřebujete atribut DataFrame iloc.
# Access the first row
print(df.iloc[0])
# Access the value in the first row and second column
print(df.iloc[0, 1])pythonToto je výsledek při práci s iloc[]:
Name Alice
Age 25
City Nottingham
Name: 0, dtype: object
25Přístup k jednotlivým hodnotám
Pokud chcete získat přístup pouze k jedné hodnotě, indexátor at je rychlý a přímý způsob, jak toho dosáhnout. Pomocí tohoto indexátoru můžete definovat řádky a sloupce pomocí jejich štítků. Pokud například chcete zjistit, kde bydlí Bob, zadejte „1“ pro řádek a „City“ pro sloupec:
print(df.at[1, 'City'])pythonZde dostaneme výstup London.
Alternativně můžete použít indexovač iat, který funguje podobně jako at, ale místo názvu používá pozici sloupce založenou na celých číslech. Níže uvedený kód vede ke stejnému výsledku jako předchozí příklad:
print(df.iat[1, 2])pythonBooleovské indexování
Můžete také vytvořit podsady DataFrame na základě podmínky. Toto se nazývá booleovské indexování. Podmínka by měla mít hodnotu True nebo False a je umístěna přímo v indexovacím operátoru. Pokud například chcete vybrat řádky, které obsahují osoby starší 30 let, můžete použít následující kód:
# Select rows where Age is greater than 30
print(df[df['Age'] > 30])pythonJedinou osobou starší 30 let je Charlie, což vede k následujícímu výstupu:
Name Age City
2 Charlie 35 Cardiff