Pandas Dataframe數(shù)據(jù)幀的迭代之iterrows(),itertuples(),items()詳解
更新時間:2025年04月16日 09:17:53 作者:YH美洲大蠊
這篇文章主要介紹了Pandas Dataframe數(shù)據(jù)幀的迭代之iterrows(),itertuples(),items()使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
Pandas Dataframe數(shù)據(jù)幀的迭代
迭代數(shù)據(jù)幀通常不是推薦的做法,因為 pandas
的設(shè)計初衷是向量化操作以提高效率。然而,在某些情況下,也可能需要逐行或逐列迭代數(shù)據(jù)。
需要注意的是,迭代數(shù)據(jù)幀的行或列可能會導(dǎo)致性能下降,特別是對于大型數(shù)據(jù)集。在可能的情況下,最好使用向量化操作來提高效率。
迭代行
1.使用 .iterrows()
.iterrows()
是一個生成器,它迭代數(shù)據(jù)幀的索引和行。- 對于每一行,它返回一個包含索引和該行數(shù)據(jù)的元組。
import pandas as pd df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9] }) for index, row in df.iterrows(): print(f"Index: {index}") print(row)
2.使用 .itertuples()
.itertuples()
方法比.iterrows()
更快,因為它返回命名元組,這些元組在Python中的性能優(yōu)于字典。- 返回的元組的第一個元素是行的索引,其余元素是行中的數(shù)據(jù)。
.itertuples()
返回的是命名元組,可以通過屬性名稱訪問這些元素,例如row.A
、row.B
等。
import pandas as pd df = pd.DataFrame({ 'A': [10, 20, 30], 'B': [40, 50, 60], 'C': ['p', 'q', 'r'] }) for row in df.itertuples(): print(row) ''' Pandas(Index=0, A=10, B=40, C='p') Pandas(Index=1, A=20, B=50, C='q') Pandas(Index=2, A=30, B=60, C='r')'''
迭代列
迭代列通常更簡單,因為可以直接迭代數(shù)據(jù)幀的列名或訪問列數(shù)據(jù)。
import pandas as pd # 創(chuàng)建一個DataFrame df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9] }) # 方法1: 迭代列名 for column in df.columns: print(f"Column Name: {column}") # 通過列名訪問列數(shù)據(jù) print(df[column]) # 方法2: 直接迭代DataFrame對象(默認迭代列名) for column in df: print(f"Column Name: {column}") print(df[column]) # 方法3: 使用df.items()同時迭代列名和數(shù)據(jù) for column, data in df.items(): print(f"Column Name: {column}") # data變量直接包含列數(shù)據(jù),無需通過df[column]訪問 print(data)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
一文帶你掌握Pyecharts地理數(shù)據(jù)可視化的方法
這篇文章主要介紹了一文帶你掌握Pyecharts地理數(shù)據(jù)可視化的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02