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.index
python

Jaká 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)
python

Takto vypadá DataFrame:

Name  Age       City
0    Alice   25     Nottingham
1    Bob   30  	London
2  Charlie   35    Cardiff

Pro 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'])
python

Výstupem je seznam věků:

0    25
1    30
2    35
Name: Age, dtype: int64

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

Výš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: object

Indexová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])
python

Toto je výsledek při práci s iloc[]:

Name        Alice
Age            25
City      Nottingham
Name: 0, dtype: object
25

Pří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'])
python

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

Booleovské 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])
python

Jedinou osobou starší 30 let je Charlie, což vede k následujícímu výstupu:

Name  Age     City
2  Charlie   35    Cardiff
Přejít do hlavního menu