使用pandas按行遍歷是數(shù)據(jù)科學(xué)的常見(jiàn)需求之一。在本篇文章中,我們將從多個(gè)方面來(lái)詳細(xì)闡述如何使用pandas按行遍歷,包括遍歷、篩選、修改和使用apply函數(shù)進(jìn)行行操作。
一、遍歷
pandas有多種遍歷方法。我們可以使用iterrows、itertuples和iteritems三種方法來(lái)訪問(wèn)pandas數(shù)據(jù)幀的每一行。其中iterrows和itertuples方法是最常見(jiàn)的方法。
二、篩選
當(dāng)我們想要只訪問(wèn)數(shù)據(jù)中特定行時(shí),可以使用boolean indexing來(lái)進(jìn)行篩選。
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]})
# 篩選age大于30的行
for index, row in df[df['age'] > 30].iterrows():
print(f"Name: {row['name']}, Age: {row['age']}")
上述代碼將打印以下內(nèi)容:
Name: Charlie, Age: 35
三、修改
當(dāng)我們想要修改數(shù)據(jù)集中的特定行時(shí),可以使用at或iat方法進(jìn)行索引。
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]})
# 修改第一行的名字
df.at[0, 'name'] = 'Alicia'
for index, row in df.iterrows():
print(f"Name: {row['name']}, Age: {row['age']}")
上述代碼將打印以下內(nèi)容:
Name: Alicia, Age: 25
Name: Bob, Age: 30
Name: Charlie, Age: 35
四、使用apply函數(shù)進(jìn)行行操作
apply函數(shù)能夠操作每一行或每一列的值,從而實(shí)現(xiàn)自定義計(jì)算和處理。
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]})
# 將age值加上5
df['age'] = df['age'].apply(lambda x: x + 5)
for index, row in df.iterrows():
print(f"Name: {row['name']}, Age: {row['age']}")
上述代碼將打印以下內(nèi)容:
Name: Alice, Age: 30
Name: Bob, Age: 35
Name: Charlie, Age: 40
總結(jié)
本文從方方面面介紹了pandas按行遍歷的方法,包括遍歷、篩選、修改和使用apply函數(shù)進(jìn)行行操作。通過(guò)使用這些方法,我們可以更加靈活的處理pandas數(shù)據(jù)集。