In­de­ksi­ra­nje Python pandas Da­ta­Fra­mes omogoča učinkovit in ne­po­sre­den dostop do podatkov. Olajša izbiro po­sa­me­znih vrstic in stolpcev, kar po­e­no­sta­vi naloge analize podatkov.

Kaj je in­de­ksi­ra­nje v pandah?

In­de­ksi­ra­nje v pandas se nanaša na različne metode, ki jih lahko uporabite za izbiro vrstic ali stolpcev. Z uporabo oznak vrstic in stolpcev ali njihovega šte­vilč­ne­ga položaja znotraj DataFrame lahko enostavno izberete elemente v DataFrame. Indeks služi kot nekakšen sistem naslovov za vaše podatke, ki vam pomaga učin­ko­vi­te­je najti in upra­vlja­ti vaše podatke.

Kaj je pandas DataFrame.index?

Indeksne oznake DataFrame v pandas lahko pre­gle­da­te z uporabo atributa index. Sintaksa je naslednja:

DataFrame.index
python

Kakšna je sintaksa za in­de­ksi­ra­nje Da­ta­Fra­mes v pandas?

Obstaja več načinov in­de­ksi­ra­nja pandas Da­ta­Fra­mes, sintaksa pa se razlikuje glede na operacijo, ki jo želite izvesti.

In­de­ksi­ra­nje z oznakami (oznake stolpcev)

Za in­de­ksi­ra­nje po­dat­kov­nih okvirov pandas lahko uporabite imena stolpcev. Tukaj je primer, kako ustvariti vzorčni po­dat­kov­ni okvir:

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

Tako izgleda DataFrame:

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

Za dostop do vseh vrednosti v stolpcu lahko uporabite ime stolpca skupaj z indeksnim ope­ra­tor­jem []. V indeksni operator vnesite ime stolpca kot niz Python:

# Access the Age column
print(df['Age'])
python

Rezultat je seznam starosti:

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

Če želite pridobiti podatke iz več stolpcev, v indeksni operator vpišite imena stolpcev in jih ločite z vejicami.

In­de­ksi­ra­nje s loc[] (oznake vrstic)

Če po­tre­bu­je­te dostop do določene vrstice v DataFrame, lahko uporabite in­de­k­sa­tor pandas loc. In­de­k­sa­tor­ju lahko po­sre­du­je­te oznako vrstice ali številko vrstice. V tem primeru bomo uporabili isti DataFrame kot zgoraj in izvlekli vrednosti iz prve vrstice (vrstica 0):

print(df.loc[0])
python

Zgornja koda izpiše vrednosti za Alice, ki so vsebovane v prvi vrstici DataFrame:

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

In­de­ksi­ra­nje s iloc[] (številke vrstic in stolpcev)

Drugi način dostopa do po­sa­me­znih elementov v DataFrame je prek številk vrstic in stolpcev. To je verjetno najbolj pri­lju­bljen način iskanja elementov v DataFrame. Za uporabo šte­vilč­ne­ga indeksa po­tre­bu­je­te 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

Tukaj je rezultat pri delu z iloc[]:

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

Dostop do po­sa­me­znih vrednosti

Če želite dostopati le do ene vrednosti, je in­de­k­sa­tor at hiter in preprost način za to. S tem in­de­k­sa­tor­jem lahko vrstice in stolpce opre­de­li­te z njihovimi oznakami. Če na primer želite izvedeti, kje živi Bob, vnesite »1« za vrstico in »Mesto« za stolpec:

print(df.at[1, 'City'])
python

Tukaj dobimo izhod London.

Al­ter­na­tiv­no lahko uporabite in­de­k­sa­tor iat, ki deluje podobno kot at, vendar namesto imena uporablja ce­lo­šte­vilč­no pozicijo stolpca. Spodnja koda daje enak rezultat kot prejšnji primer:

print(df.iat[1, 2])
python

Boolovo in­de­ksi­ra­nje

Na podlagi pogoja lahko ustvarite tudi pod­sku­pi­ne DataFrame. To se imenuje boo­le­an­ska in­de­ksa­ci­ja. Pogoj mora biti izračunan kot True ali False in se vstavi ne­po­sre­dno v in­de­ksa­cij­ski operator. Če na primer želite izbrati vrstice, ki vsebujejo osebe, starejše od 30 let, lahko uporabite naslednjo kodo:

# Select rows where Age is greater than 30
print(df[df['Age'] > 30])
python

Edina oseba, ki je starejša od 30 let, je Charlie, kar daje naslednji izpis:

Name  Age     City
2  Charlie   35    Cardiff
Go to Main Menu