Pandas Dataframe數(shù)據(jù)幀的迭代之iterrows(),itertuples(),items()詳解
Pandas Dataframe數(shù)據(jù)幀的迭代
迭代數(shù)據(jù)幀通常不是推薦的做法,因?yàn)?pandas
的設(shè)計(jì)初衷是向量化操作以提高效率。然而,在某些情況下,也可能需要逐行或逐列迭代數(shù)據(jù)。
需要注意的是,迭代數(shù)據(jù)幀的行或列可能會(huì)導(dǎo)致性能下降,特別是對(duì)于大型數(shù)據(jù)集。在可能的情況下,最好使用向量化操作來(lái)提高效率。
迭代行
1.使用 .iterrows()
.iterrows()
是一個(gè)生成器,它迭代數(shù)據(jù)幀的索引和行。- 對(duì)于每一行,它返回一個(gè)包含索引和該行數(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()
更快,因?yàn)樗祷孛M,這些元組在Python中的性能優(yōu)于字典。- 返回的元組的第一個(gè)元素是行的索引,其余元素是行中的數(shù)據(jù)。
.itertuples()
返回的是命名元組,可以通過(guò)屬性名稱訪問(wèn)這些元素,例如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')'''
迭代列
迭代列通常更簡(jiǎn)單,因?yàn)榭梢灾苯拥鷶?shù)據(jù)幀的列名或訪問(wèn)列數(shù)據(jù)。
import pandas as pd # 創(chuàng)建一個(gè)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}") # 通過(guò)列名訪問(wèn)列數(shù)據(jù) print(df[column]) # 方法2: 直接迭代DataFrame對(duì)象(默認(rèn)迭代列名) for column in df: print(f"Column Name: {column}") print(df[column]) # 方法3: 使用df.items()同時(shí)迭代列名和數(shù)據(jù) for column, data in df.items(): print(f"Column Name: {column}") # data變量直接包含列數(shù)據(jù),無(wú)需通過(guò)df[column]訪問(wèn) print(data)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
一文帶你掌握Pyecharts地理數(shù)據(jù)可視化的方法
這篇文章主要介紹了一文帶你掌握Pyecharts地理數(shù)據(jù)可視化的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02python函數(shù)的高級(jí)應(yīng)用詳解
這篇文章主要為大家介紹了python函數(shù)的高級(jí)應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-11-11python實(shí)現(xiàn)一般游戲的自動(dòng)點(diǎn)擊具體操作
這篇文章主要介紹了python實(shí)現(xiàn)一般游戲的自動(dòng)點(diǎn)擊,本文給大家分享具體操作代碼及需要的軟件,需要的朋友可以參考下2021-10-10Python中幾種屬性訪問(wèn)的區(qū)別與用法詳解
這篇文章主要給大家介紹了關(guān)于Python中幾種屬性訪問(wèn)的區(qū)別和用法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10