Python pandas Da­taFra­mes -in­dek­soin­ti mah­dol­lis­taa tehokkaan ja suoran pääsyn dataan. Se helpottaa tiettyjen rivien ja sa­rak­kei­den valintaa, mikä yk­sin­ker­tais­taa data-ana­lyy­si­teh­tä­viä.

Mitä in­dek­soin­ti tar­koit­taa pandas-oh­jel­mis­tos­sa?

In­dek­soin­ti pandas-kir­jas­tos­sa viittaa eri­lai­siin me­ne­tel­miin, joita voit käyttää rivien tai sa­rak­kei­den va­lit­se­mi­seen. Rivien ja sa­rak­kei­den ni­mik­kei­den tai niiden nu­mee­ri­sen sijainnin avulla DataFrame-ke­hyk­ses­sä voit helposti valita ele­ment­te­jä DataFrame-ke­hyk­ses­tä. Indeksi toimii erään­lai­se­na osoi­te­jär­jes­tel­mä­nä tie­doil­le­si, mikä auttaa sinua löytämään ja hal­lin­noi­maan tietojasi te­hok­kaam­min.

Mikä on pandas DataFrame.index?

Voit tar­kas­tel­la DataFrame-kehyksen in­dek­si­mer­kin­tö­jä pandas-kir­jas­tos­sa käyt­tä­mäl­lä index. Syntaksi on seu­raa­van­lai­nen:

DataFrame.index
python

Mikä on pandas-kirjaston DataFrame-tau­lu­koi­den in­dek­soin­nin syntaksi?

Pandas Da­taFra­mes -kehyksiä voidaan in­dek­soi­da useilla tavoilla, ja syntaksi vaihtelee suo­rit­ta­ma­si toiminnon mukaan.

In­dek­soin­ti tarroilla (sa­rak­kei­den tarrat)

Voit käyttää sa­rak­kei­den nimiä pandas-tie­to­ke­hys­ten in­dek­soin­tiin. Tässä on esimerkki siitä, miten luodaan esi­merk­ki­tie­to­ke­hys:

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

DataFrame näyttää seu­raa­val­ta:

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

Voit käyttää kaikkia sarakkeen arvoja kir­joit­ta­mal­la sarakkeen nimen yhdessä in­dek­soin­tio­pe­raat­to­rin [] kanssa. Kirjoita sarakkeen nimi Python-merk­ki­jo­no­na in­dek­soin­tio­pe­raat­to­rin sisään:

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

Tuloksena on luettelo ikä­luo­kis­ta:

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

Jos haluat hakea useamman kuin yhden sarakkeen tiedot, kirjoita sa­rak­kei­den nimet in­dek­soin­tio­pe­raat­to­riin ja erota ne toi­sis­taan pilkuilla.

In­dek­soin­ti loc[]:lla (rivien nimikkeet)

Jos haluat käyttää DataFrame-taulukon tiettyä riviä, voit käyttää pandas loc -in­dek­soin­tia. Voit siirtää rivin tun­nis­teen tai rivin numeron in­dek­soi­jal­le. Tässä esi­mer­kis­sä käytämme samaa DataFrame-taulukkoa kuin edellä ja poimimme arvot en­sim­mäi­sel­tä riviltä (rivi 0):

print(df.loc[0])
python

Yllä oleva koodi tulostaa Alicen arvot, jotka si­säl­ty­vät DataFrame-taulukon en­sim­mäi­seen riviin:

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

In­dek­soin­ti numerolla iloc[] (rivin ja sarakkeen numerot)

Toinen tapa käyttää DataFrame-kehyksen tiettyjä ele­ment­te­jä on rivien ja sa­rak­kei­den nu­me­roi­den avulla. Tämä on luul­ta­vas­ti suosituin tapa etsiä ele­ment­te­jä DataFrame-ke­hyk­ses­tä. Nu­me­roin­dek­sin käyt­tä­mi­sek­si tarvitset DataFrame-att­ri­buu­tin 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

Tässä on tulos, kun työs­ken­te­let iloc[] kanssa:

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

Yk­sit­täis­ten arvojen käyt­tä­mi­nen

Jos haluat käyttää vain yhtä arvoa, at in­dek­soi­ja on nopea ja helppo tapa tehdä se. Tämän in­dek­soi­jan avulla voit mää­ri­tel­lä rivit ja sarakkeet niiden nimien avulla. Jos esi­mer­kik­si haluat selvittää, missä Bob asuu, kirjoita riviin ”1” ja sa­rak­kee­seen ”City”:

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

Tässä saamme tu­lok­sek­si London.

Vaih­toeh­toi­ses­ti voit käyttää 20-indeksiä, joka toimii samalla tavalla kuin at, mutta käyttää nimen sijaan ko­ko­nais­lu­ku­poh­jais­ta sarakkeen sijaintia. Alla oleva koodi tuottaa saman tuloksen kuin edellinen esimerkki:

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

Boolen in­dek­soin­ti

Voit myös luoda DataFrame-taulukon os­ajouk­ko­ja ehdon pe­rus­teel­la. Tätä kutsutaan boo­le­nai­sek­si in­dek­soin­nik­si. Ehdon tuloksen tulisi olla joko True tai False, ja se si­joi­te­taan suoraan in­dek­soin­tio­pe­raat­to­riin. Jos haluat esi­mer­kik­si valita rivit, jotka si­säl­tä­vät yli 30-vuotiaita hen­ki­löi­tä, voit käyttää seuraavaa koodia:

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

Ainoa yli 30-vuotias henkilö on Charlie, mikä tuottaa seuraavan tuloksen:

Name  Age     City
2  Charlie   35    Cardiff
Siirry pää­va­lik­koon