Python pandas Da­taF­ra­mes in­dek­sa­vi­mas leidžia efek­ty­viai ir tie­sio­giai pasiekti duomenis. Tai pa­leng­vi­na konkrečių eilučių ir stulpelių atranką, su­pa­pras­tin­da­mas duomenų analizės užduotis.

Kas yra in­dek­sa­vi­mas pandose?

In­dek­sa­vi­mas pandose reiškia įvairius metodus, kuriuos galite naudoti eilutėms ar stul­pe­liams atrinkti. Naudodami eilutės ir stulpelio žymes arba jų skait­me­ni­nę padėtį duomenų rėmelio viduje, galite lengvai atrinkti elementus duomenų rėmelyje. Indeksas veikia kaip adresų sistema jūsų duomenims, padėdamas jums efek­ty­viau rasti ir tvarkyti savo duomenis.

Kas yra pandos DataFrame.index?

Duomenų rėmo indeksų etiketes pandas galite per­žiū­rė­ti naudodami index atributą. Sintaksė atrodo taip:

DataFrame.index
python

Kokia yra pandas duomenų rėmelių in­dek­sa­vi­mo sintaksė?

Yra keletas būdų in­dek­suo­ti pandas Da­taF­ra­mes, o sintaksė skiriasi pri­klau­so­mai nuo ope­ra­ci­jos, kurią norite atlikti.

In­dek­sa­vi­mas su žymėmis (stulpelių žymėmis)

Galite naudoti stulpelių pa­va­di­ni­mus, kad in­dek­suo­tu­mė­te pandas Da­taF­ra­mes. Štai pavyzdys, kaip sukurti pavyzdinį 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)
python

Štai kaip atrodo duomenų rėmelis:

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

Norėdami pasiekti visas stulpelio reikšmes, galite naudoti stulpelio pa­va­di­ni­mą kartu su in­dek­sa­vi­mo ope­ra­to­riu­mi []. Tiesiog įveskite stulpelio pa­va­di­ni­mą kaip Python eilutę in­dek­sa­vi­mo ope­ra­to­riaus viduje:

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

Re­zul­ta­tas yra amžių sąrašas:

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

Norėdami gauti daugiau nei vienos stulpelio duomenis, įrašykite stulpelių pa­va­di­ni­mus in­dek­sa­vi­mo ope­ra­to­riaus laukelyje ir at­skir­ki­te juos kab­le­liais.

In­dek­sa­vi­mas su loc[] (eilučių žymėmis)

Jei norite pasiekti konkretų eilutę savo DataFrame, galite naudoti pandas loc in­dek­sa­to­rių. In­dek­suo­to­jui galite perduoti eilutės etiketę arba eilutės numerį. Šiame pavyzdyje naudosime tą patį DataFrame kaip ir aukščiau ir išgausime vertes iš pirmos eilutės (eilutė 0):

print(df.loc[0])
python

Pirmiau pateiktas kodas išveda Alice vertes, kurios yra pateiktos pirmoje DataFrame eilutėje:

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

In­dek­sa­vi­mas su iloc[] (eilutės ir stulpelių numeriais)

Kitas būdas pasiekti konk­re­čius elementus jūsų DataFrame yra per eilučių ir stulpelių numerius. Tai tik­riau­siai po­pu­lia­riau­sias būdas rasti elementus DataFrame. Norėdami naudoti skait­me­ni­nį indeksą, jums reikės DataFrame atributas 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

Štai re­zul­ta­tas dirbant su iloc[]:

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

Prieiga prie in­di­vi­dua­lių verčių

Jei norite pasiekti tik vieną reikšmę, at in­dek­sa­to­rius yra greitas ir paprastas būdas tai padaryti. Naudodami šį in­dek­sa­to­rių, galite apibrėžti eilutes ir stul­pe­lius naudodami jų etiketes. Pa­vyz­džiui, jei norite sužinoti, kur gyvena Bobas, įveskite „1“ eilutėje ir „Miestas“ stul­pe­ly­je:

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

Čia gauname rezultatą „London“.

Arba galite naudoti iat in­dek­sa­to­rių, kuris veikia panašiai kaip at, bet vietoj pa­va­di­ni­mo naudoja sveikųjų skaičių pagrįstą stulpelio poziciją. Toliau pateiktas kodas duoda tokį patį rezultatą kaip ir anks­tes­nis pavyzdys:

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

Būlio in­dek­sa­vi­mas

Taip pat galite kurti DataFrame pogrupius pagal sąlygą. Tai vadinama Būlio in­dek­sa­vi­mu. Sąlyga turėtų būti įvertinta kaip True arba False ir įrašoma tiesiai į in­dek­sa­vi­mo ope­ra­to­rius. Pa­vyz­džiui, jei norite atrinkti eilutes, kuriose yra vyresni nei 30 metų žmonės, galite naudoti šį kodą:

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

Vie­nin­te­lis asmuo, kuris yra vyresnis nei 30 metų, yra Charlie, todėl gaunamas toks re­zul­ta­tas:

Name  Age     City
2  Charlie   35    Cardiff
Go to Main Menu