df.iterrows() 是 Pandas 中的一個方法,用於在遍歷 DataFrame 時,逐行返回每一行的索引和資料

侬侬发發表於2024-08-22

df.iterrows() 是 Pandas 中的一個方法,用於在遍歷 DataFrame 時,逐行返回每一行的索引和資料。它生成一個迭代器,每次迭代時返回一個 (index, Series) 對,index 是行索引,Series 是該行的資料。

詳細解釋

  • df.iterrows():
    • 這個方法遍歷 DataFrame 的每一行。
    • 每次迭代時,返回的是 (index, Series),其中 index 是行的索引,Series 是表示行資料的 Pandas Series 物件。

示例

假設有一個 DataFrame df

import pandas as pd

data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)

這個 DataFrame 看起來像這樣:

ABC
0 1 4 7
1 2 5 8
2 3 6 9

如果使用 iterrows() 迭代:

for index, row in df.iterrows():
    print(index)
    print(row)

輸出將是:

0
A    1
B    4
C    7
Name: 0, dtype: int64

1
A    2
B    5
C    8
Name: 1, dtype: int64

2
A    3
B    6
C    9
Name: 2, dtype: int64

作用總結

  • 遍歷每一行iterrows() 允許你逐行遍歷 DataFrame 的資料,非常適合需要逐行處理資料的情況。
  • 返回行索引和行資料:在每次迭代中,你會得到當前行的索引和一個包含該行資料的 Series 物件。
  • 靈活的資料操作:你可以在遍歷過程中對行資料進行任何操作,例如資料處理、條件判斷、儲存等。

注意事項

  • iterrows() 的效能在處理大資料集時可能不如向量化操作高效,因為它逐行遍歷,不能充分利用 Pandas 的最佳化。
  • iterrows() 返回的是行的副本,而不是檢視,對 row 的修改不會影響原始 DataFrame。

因此,df.iterrows() 適用於需要逐行處理資料的場景,但在可能的情況下,應該優先選擇更高效的向量化操作。

相關文章