Ako indexovať pandas DataFrames
Indexovanie dátových rámcov Python pandas umožňuje efektívny a priamy prístup k dátam. Uľahčuje výber konkrétnych riadkov a stĺpcov, čím zjednodušuje úlohy analýzy dát.
Čo je indexovanie v pandas?
Indexovanie v pandas sa týka rôznych metód, ktoré môžete použiť na výber riadkov alebo stĺpcov. Pomocou označení riadkov a stĺpcov alebo ich číselnej pozície v rámci DataFrame môžete ľahko vybrať prvky v DataFrame. Index slúži ako druh adresného systému pre vaše dáta, ktorý vám pomáha efektívnejšie vyhľadávať a spravovať vaše dáta.
Čo je pandas DataFrame.index?
Indexové štítky DataFrame v pandas môžete zobraziť pomocou atribútu index. Syntax vyzerá takto:
DataFrame.indexpythonAká je syntax pre indexovanie DataFrames v pandas?
Existuje niekoľko spôsobov indexovania pandas DataFrames a syntax sa líši v závislosti od operácie, ktorú chcete vykonať.
Indexovanie pomocou štítkov (štítky stĺpcov)
Na indexovanie pandas DataFrames môžete použiť názvy stĺpcov. Tu je príklad, ako vytvoriť vzorový DataFrame:
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 vyzerá DataFrame:
Name Age City
0 Alice 25 Nottingham
1 Bob 30 London
2 Charlie 35 CardiffPre prístup ku všetkým hodnotám v stĺpci môžete použiť názov stĺpca spolu s indexovacím operátorom []. Stačí zadať názov stĺpca ako reťazec Python v indexovacom operátore:
# Access the Age column
print(df['Age'])pythonVýstupom je zoznam vekov:
0 25
1 30
2 35
Name: Age, dtype: int64Ak chcete získať údaje z viac ako jedného stĺpca, napíšte názvy stĺpcov do indexovacieho operátora a oddeľte ich čiarkami.
Indexovanie s loc[] (označenia riadkov)
Ak potrebujete pristupovať k určitému riadku vo vašom DataFrame, môžete použiť indexer pandas loc. Indexeru môžete odovzdať označenie riadku alebo číslo riadku. V tomto príklade použijeme rovnaký DataFrame ako vyššie a extrahujeme hodnoty z prvého riadku (riadok 0):
print(df.loc[0])pythonVyššie uvedený kód vypíše hodnoty pre Alice, ktoré sú obsiahnuté v prvom riadku DataFrame:
Name Alice
Age 25
City Nottingham
Name: 0, dtype: objectIndexovanie s iloc[] (čísla riadkov a stĺpcov)
Ďalším spôsobom, ako získať prístup ku konkrétnym prvkom vo vašom DataFrame, je prostredníctvom čísel riadkov a stĺpcov. Ide pravdepodobne o najpopulárnejší spôsob vyhľadávania prvkov v DataFrame. Na použitie numerického indexu potrebujete atribút 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])pythonTu je výsledok pri práci s iloc[]:
Name Alice
Age 25
City Nottingham
Name: 0, dtype: object
25Prístup k jednotlivým hodnotám
Ak chcete získať prístup len k jednej hodnote, indexér at je rýchly a jednoduchý spôsob, ako to urobiť. Pomocou tohto indexéra môžete definovať riadky a stĺpce pomocou ich označení. Ak napríklad chcete zistiť, kde býva Bob, zadajte „1“ pre riadok a „Mesto“ pre stĺpec:
print(df.at[1, 'City'])pythonTu dostaneme výstup London.
Alternatívne môžete použiť indexer iat, ktorý funguje podobne ako at, ale namiesto názvu používa pozíciu stĺpca založenú na celých číslach. Nižšie uvedený kód poskytuje rovnaký výsledok ako predchádzajúci príklad:
print(df.iat[1, 2])pythonBoolovské indexovanie
Môžete tiež vytvoriť podmnožiny DataFrame na základe podmienky. Toto sa nazýva booleovské indexovanie. Podmienka by mala mať hodnotu True alebo False a je umiestnená priamo v indexovacom operátore. Ak napríklad chcete vybrať riadky, ktoré obsahujú osoby staršie ako 30 rokov, môžete použiť nasledujúci kód:
# Select rows where Age is greater than 30
print(df[df['Age'] > 30])pythonJedinou osobou, ktorá má viac ako 30 rokov, je Charlie, čo vedie k nasledujúcemu výstupu:
Name Age City
2 Charlie 35 Cardiff