df.iterrows()
是 Pandas 中的一個方法,用於在遍歷 DataFrame 時,逐行返回每一行的索引和資料。它生成一個迭代器,每次迭代時返回一個 (index, Series)
對,index
是行索引,Series
是該行的資料。
詳細解釋
df.iterrows()
:- 這個方法遍歷
DataFrame
的每一行。 - 每次迭代時,返回的是
(index, Series)
,其中index
是行的索引,Series
是表示行資料的 PandasSeries
物件。
- 這個方法遍歷
示例
假設有一個 DataFrame df
:
import pandas as pd data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]} df = pd.DataFrame(data)
這個 DataFrame 看起來像這樣:
A | B | C | |
---|---|---|---|
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()
適用於需要逐行處理資料的場景,但在可能的情況下,應該優先選擇更高效的向量化操作。