Kuinka silmukoida DataFrames-kehyksiä pandas iterrows()-funktiolla
Python pandas -funktiota DataFrame.iterrows() käytetään toistamaan pandas DataFrame -taulukon rivejä. Se tarjoaa jokaiselle riville Python-tuple-tyyppisen objektin, joka sisältää rivin indeksin ja Series-objektin, jossa on rivin tiedot.
Mikä on pandas iterrows():n syntaksi?
Pandas DataFrame.iterrows():n perusrakenteet ovat yksinkertaiset, koska funktio ei vaadi parametreja:
df.iterrows()pythonTässä koodiesimerkissä df on DataFrame, jonka haluat iteroida.
Kuinka käyttää pandas iterrows() -funktiota
DataFrame.iterrows() -funktiota käytetään tyypillisesti, kun tietoja on käsiteltävä rivi riviltä. Se yhdistetään usein Pythonin for-silmukoihin.
Sarakkeen arvojen yhteenlaskeminen
Katsotaanpa esimerkkiä DataFrame-taulukosta, joka sisältää sarakkeet Name, Age ja Score:
import pandas as pd
# Creating an example DataFrame
data = {'Name': ['Anna', 'Ben', 'Clara'],
'Age': [23, 35, 29],
'Score': [88, 92, 85]}
df = pd.DataFrame(data)
print(df)pythonYllä oleva koodi tuottaa seuraavan DataFrame-kehyksen:
Name Age Score
0 Anna 23 88
1 Ben 35 92
2 Clara 29 85Lasketaan nyt pisteiden summa. Voimme käyttää tähän pandas DataFrame.iterrows():
# Calculating the total score
total_score = 0
for index, row in df.iterrows():
total_score += row['Score']
print(f"The total score is: {total_score}")pythonTässä esimerkissä käytimme pandas iterrows() -funktiota kiertämään jokaisen rivin läpi ja laskemaan yhteen Score -sarakkeen arvot yksi kerrallaan. Tämä tuottaa seuraavan tuloksen:
The total score is: 265Kun käytät pandas iterrows(), on tärkeää , ettet muokkaa suoraan toistettavia tietoja. Tietotyypistä riippuen tämä voi johtaa odottamattomiin tuloksiin ja tahattomaan toimintaan.
Rivien käsittely ehtojen avulla
iterrows() voidaan käyttää myös ehtojen soveltamiseen DataFrame-taulukon yksittäisiin riveihin. Oletetaan esimerkiksi, että haluat hakea DataFrame-taulukosta edellisen esimerkin kaikki yli 30-vuotiaat henkilöt:
# Retrieving names of people over 30 years old
names = []
for index, row in df.iterrows():
if row['Age'] > 30:
names.append(row['Name'])
print(f"People over 30 years old: {names}")pythonTässä esimerkissä käytimme DataFrame.iterrows() käydäksemme läpi jokaisen datarivin. For-silmukan sisällä se tarkistaa Age-sarakkeen arvot ja tallentaa vain yli 30-vuotiaiden henkilöiden nimet Python-listaan names. Tämä tehdään Pythonin append()-funktiolla. Tässä on tulos:
People over 30 years old: ['Ben']Vaikka DataFrames.iterrows() on helppokäyttöinen, on syytä muistaa, että se ei välttämättä toimi tehokkaasti suurissa DataFrame-kehyksissä. Monissa tapauksissa voidaan käyttää muita vaihtoehtoja, kuten apply() tai vektoroituja laskelmia, parempaan suorituskykyyn pääsemiseksi.