Python pandas Da­taF­ra­mes in­dek­sē­ša­na nodrošina efektīvu un tiešu piekļuvi datiem. Tas atvieglo konkrētu rindu un kolonnu atlasi, vien­kār­šo­jot datu analīzes uzdevumus.

Kas ir in­dek­sē­ša­na pandās?

In­dek­sē­ša­na pandas attiecas uz dažādām metodēm, ko var izmantot, lai atlasītu rindas vai kolonnas. Iz­man­to­jot rindu un kolonnu mar­ķē­ju­mus vai to numerisko pozīciju DataFrame, var viegli atlasīt elementus DataFrame. Indekss darbojas kā sava veida adrešu sistēma jūsu datiem, palīdzot efektīvāk atrast un pārvaldīt datus.

Kas ir pandas DataFrame.index?

Jūs varat apskatīt DataFrame indeksa etiķetes pandas, iz­man­to­jot index atribūtu. Sintakse izskatās šādi:

DataFrame.index
python

Kāda ir sintakse Da­taF­ra­mes in­dek­sē­ša­nai pandas?

Ir vairāki veidi, kā indeksēt pandas Da­taF­ra­mes, un sintakse atšķiras atkarībā no darbības, ko vēlaties veikt.

In­dek­sē­ša­na ar etiķetēm (kolonnu etiķetēm)

Jūs varat izmantot kolonnu no­sau­ku­mus, lai indeksētu pandas Da­taF­ra­mes. Šeit ir piemērs, kā izveidot parauga 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

Šādi izskatās DataFrame:

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

Lai piekļūtu visām vērtībām kolonnā, varat izmantot kolonnas nosaukumu kopā ar in­dek­sē­ša­nas operatoru []. Vienkārši ievadiet kolonnas nosaukumu kā Python virkni in­dek­sē­ša­nas operatorā:

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

Rezultāts ir vecuma saraksts:

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

Lai iegūtu vairāku kolonnu datus, in­dek­sē­ša­nas operatorā ie­rak­stiet kolonnu no­sau­ku­mus un atdaliet tos ar komatiem.

In­dek­sē­ša­na ar loc[] (rindu etiķetēm)

Ja jums ir ne­pie­cie­šams piekļūt konkrētai rindai jūsu DataFrame, jūs varat izmantot pandas loc in­dek­sē­tā­ju. Jūs varat nodot rindas etiķeti vai rindas numuru in­dek­sē­tā­jam. Šajā piemērā mēs iz­man­to­sim to pašu DataFrame kā iepriekš un izvilksim vērtības no pirmās rindas (rinda 0):

print(df.loc[0])
python

Ie­priek­šē­jais kods izvada Alice vērtības, kas ir iekļautas DataFrame pirmā rindā:

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

In­dek­sē­ša­na ar iloc[] (rindu un kolonnu numuriem)

Vēl viens veids, kā piekļūt kon­krē­tiem ele­men­tiem DataFrame, ir iz­man­to­jot rindu un kolonnu numurus. Tas, iespējams, ir po­pu­lā­rā­kais veids, kā atrast elementus DataFrame. Lai izmantotu ciparu indeksu, jums ir ne­pie­cie­šams DataFrame atribūts 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

Šeit ir rezultāts, strādājot ar iloc[]:

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

Piekļuve at­se­viš­ķām vērtībām

Ja vēlaties piekļūt tikai vienai vērtībai, in­dek­sa­tors at ir ātrs un vienkāršs veids, kā to izdarīt. Ar šo in­dek­sa­to­ru varat definēt rindas un kolonnas, iz­man­to­jot to no­sau­ku­mus. Piemēram, ja vēlaties uzzināt, kur dzīvo Bobs, ievadiet “1” rindai un “Pilsēta” kolonnai:

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

Šeit mēs iegūstam rezultātu London.

Al­ter­na­tī­vi varat izmantot in­dek­sē­tā­ju iat, kas darbojas līdzīgi kā at, bet izmanto veselo skaitļu kolonnu pozīciju, nevis nosaukumu. Zemāk redzamais kods dod tādu pašu rezultātu kā ie­priek­šē­jais piemērs:

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

Būla in­dek­sē­ša­na

Jūs varat arī izveidot DataFrame ap­akš­ko­pas, pa­ma­to­jo­ties uz no­sa­cī­ju­mu. To sauc par Boole’a in­dek­sē­ša­nu. No­sa­cī­ju­mam jābūt True vai False, un tas tiek ievietots tieši in­dek­sē­ša­nas operatorā. Piemēram, ja vēlaties atlasīt rindas, kas satur personas, kuras ir vecākas par 30 gadiem, varat izmantot šādu kodu:

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

Vienīgais cilvēks, kurš ir vecāks par 30 gadiem, ir Čārlijs, kā rezultātā tiek iegūts šāds izvades rezultāts:

Name  Age     City
2  Charlie   35    Cardiff
Go to Main Menu