Pandas之pandas DataFrame iterrows詳解
Pandas2.2 DataFrame
Indexing, iteration
方法 | 描述 |
---|---|
DataFrame.head([n]) | 用于返回 DataFrame 的前幾行 |
DataFrame.at | 快速訪問和修改 DataFrame 中單個值的方法 |
DataFrame.iat | 快速訪問和修改 DataFrame 中單個值的方法 |
DataFrame.loc | 用于基于標簽(行標簽和列標簽)來訪問和修改 DataFrame 中的數據 |
DataFrame.iloc | 用于基于整數位置(行號和列號)來訪問和修改 DataFrame 中的數據 |
DataFrame.insert(loc, column, value[, …]) | 用于在 DataFrame 的指定位置插入一個新的列 |
DataFrame.iter() | 用于迭代 DataFrame 的列名 |
DataFrame.items() | 用于迭代 DataFrame 的列名和列數據 |
DataFrame.keys() | 返回 DataFrame 的列名 |
DataFrame.iterrows() | 用于逐行迭代 DataFrame |
pandas.DataFrame.iterrows()
pandas.DataFrame.iterrows()
方法用于逐行迭代 DataFrame,每次迭代返回一個包含行索引和行數據的元組。
行數據以 Series
對象的形式返回,其中索引是列名,值是該行對應列的值。
- 語法:
for index, row in DataFrame.iterrows(): # 處理行索引和行數據
- 示例:
假設我們有一個 DataFrame 如下:
import pandas as pd data = { 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9] } df = pd.DataFrame(data, index=['row1', 'row2', 'row3']) print(df)
輸出:
A B C
row1 1 4 7
row2 2 5 8
row3 3 6 9
迭代行索引和行數據
使用 iterrows()
方法逐行迭代 DataFrame:
for index, row in df.iterrows(): print(f"Index: {index}") print(f"Row: {row}") print()
輸出:
Index: row1
Row: A 1
B 4
C 7
Name: row1, dtype: int64Index: row2
Row: A 2
B 5
C 8
Name: row2, dtype: int64Index: row3
Row: A 3
B 6
C 9
Name: row3, dtype: int64
訪問特定列的值
在迭代行數據時,訪問特定列的值:
for index, row in df.iterrows(): print(f"Index: {index}, A: {row['A']}, B: {row['B']}, C: {row['C']}")
輸出:
Index: row1, A: 1, B: 4, C: 7
Index: row2, A: 2, B: 5, C: 8
Index: row3, A: 3, B: 6, C: 9
注意事項:
- 性能問題:
iterrows()
在處理大型 DataFrame 時性能較差,因為它會將每一行轉換為Series
對象,這會導致額外的開銷。對于性能敏感的操作,建議使用itertuples()
或向量化操作。 - 修改數據: 在迭代過程中修改 DataFrame 的數據可能會導致不可預測的結果。如果需要修改數據,建議先創(chuàng)建一個副本或使用其他方法。
總結
pandas.DataFrame.iterrows()
方法提供了一種逐行迭代 DataFrame 的方式,每次迭代返回一個包含行索引和行數據的元組。
雖然使用方便,但在處理大型數據集時需要注意性能問題。對于需要逐行處理數據的場景,iterrows()
是一個有用的工具。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解python如何正確使用時間戳,日期,時間,時區(qū)
這篇文章主要為大家介紹了如何在python中正確使用時間戳,日期,時間,時區(qū),文中通過簡單的示例進行了詳細介紹,希望對大家有一定的幫助2024-11-11