Python pandas -kir­jas­tos­sa DataFrame.loc[] on omi­nai­suus, jonka avulla voit valita tietoja DataFrame-tau­lu­kos­ta tun­nis­tei­den avulla. Tämä helpottaa tiettyjen rivien ja sa­rak­kei­den poi­mi­mis­ta DataFrame-tau­lu­kos­ta.

Mikä on pandas loc[]:n syntaksi?

loc[] n syntaksi on melko yk­sin­ker­tai­nen. Sinun tarvitsee vain välittää pa­ra­met­rik­si va­lit­se­mie­si sa­rak­kei­den ja rivien nimet:

DataFrame.loc[selection]
python

Pandas loc[]:ssä valinnat tehdään pää­asias­sa tun­nis­tei­den avulla. Tämä tar­koit­taa, että antamasi parametri voi olla yk­sit­täi­nen tunniste, luettelo tai tun­nis­tei­den osajoukko. Myös boolen mat­rii­se­ja voidaan käyttää.

Mitä eroa on loc[]:lla ja iloc[]llä?

Kun pandas DataFrame.loc[] valitsee tiedot tun­nis­tei­den pe­rus­teel­la, DataFrame.iloc valitsee tiedot ko­ko­nais­lu­ku­poh­jais­ten si­jain­tien pe­rus­teel­la. Seuraava koo­die­si­merk­ki ha­vain­nol­lis­taa eroja. Ensin luomme pandas DataFrame-kehyksen:

import pandas as pd
# Example DataFrame
data = {'Name': ['Alyssa', 'Brandon', 'Carmen'], 'Age': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)
python

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

Name    Age
0   Alyssa     	23
1 	Brandon     35
2  	Carmen     	30

Voit poimia Alyssan DataFrame-tau­lu­kos­ta käyt­tä­mäl­lä joko pandas loc[] tai iloc[]. Vaikka lä­hes­ty­mis­ta­vat eroavat toi­sis­taan, tulos on sama:

# Using loc and labels to extract Alyssa
print(df.loc[0, 'Name'])  # Output: 'Alyssa'
# Using iloc and integers to extract Alysa
print(df.iloc[0, 0])  # Output: 'Alyssa'
python

Kuinka käyttää pandas DataFrame.loc[]:tä

Pandas loc[] auttaa sinua poimimaan os­ajouk­ko­ja DataFrame-ke­hyk­ses­tä­si. loc[] avulla voit poimia yhden rivin tai sarakkeen, useita rivejä ja sa­rak­kei­ta tai jopa soveltaa suo­da­tuso­lo­suh­tei­ta. Tämä jous­ta­vuus tekee siitä sopivan mo­nen­lai­siin käyt­tö­tar­koi­tuk­siin.

Yhden rivin va­lit­se­mi­nen

Kat­so­taan­pa DataFrame-esi­merk­kiä:

import pandas as pd
data = {
    'Name': ['Alyssa', 'Brandon', 'Carmen'],
    'Age': [23, 35, 30],
    'City': ['Sheffield', 'Glasgow', 'Belfast']
}
df = pd.DataFrame(data)
print(df)
python

Tässä on lo­pul­li­sen DataFrame-kehyksen ulkoasu:

Name  	Age      City
0   Alyssa  23	 	Sheffield
1 Brandon  	35    Glasgow
2 Carmen    30    Belfast

Voit valita tiedot riviltä, joka sisältää Brandonia koskevat tiedot (indeksi 1), käyt­tä­mäl­lä pandas loc[]:

brandon_data = df.loc[1]
print(brandon_data)
python

Tässä on tulos:

Name         Brandon
Age              35
City        	Glasgow
Name: 1, dtype: object

Useiden sa­rak­kei­den va­lit­se­mi­nen

Voit myös käyttää DataFrame.loc[] va­li­tak­se­si osajoukon sa­rak­keis­ta. Seuraava koodi valitsee sarakkeet “Name” ja “City”:

name_city = df.loc[:, ['Name', 'City']]
print(name_city)
python

Tuloksena on al­ku­pe­räi­sen DataFrame-kehyksen osajoukko:

Name     City
0   Alyssa  Sheffield
1 Brandon   Glasgow
2  Carmen   Belfast

Rivien valinta ehtojen pe­rus­teel­la

Pandas loc[]:lla voit myös valita rivejä, jotka täyttävät tietyt kriteerit. Voit tehdä tämän boolen ver­tai­luo­pe­raat­to­reil­la. Esi­mer­kik­si näin voit suodattaa pois kaikki yli 25-vuotiaat henkilöt:

older_than_25 = df.loc[df['Age'] > 25]
print(older_than_25)
python

Yllä oleva koodi tuottaa DataFrame-kehyksen, joka sisältää vain DataFrame-ke­hyk­ses­sä olevat yli 25-vuotiaat henkilöt:

Name  	Age     City
1 Brandon     35   Glasgow
2  Carmen     30   Belfast
Siirry pää­va­lik­koon