pandas實(shí)現(xiàn)按行遍歷dataframe的方法(itertuples,iterrows)
1. 以命名元組的形式遍歷DataFrame行
pandas.DataFrame.itertuples
DataFrame.itertuples(index=True, name='Pandas')
關(guān)鍵字參數(shù):index
默認(rèn)為True,所需為布爾值。當(dāng)值為T(mén)rue時(shí),將索引作為元組的第一個(gè)元素返回。
關(guān)鍵字參數(shù):name
默認(rèn)為“Pandas”,所需為字符串或None。命名返回的元組的名稱(chēng),當(dāng)為None時(shí),返回普通元組。
返回:iterator
迭代器:用于返回DataFrame每行形成的命名元組,命名元組的第一個(gè)字段可能是索引,其余字段是列值。
tips:當(dāng)列名是無(wú)效的Python標(biāo)識(shí)符、或重復(fù)值、或以下劃線(xiàn)開(kāi)頭時(shí),該列名會(huì)以當(dāng)前位置重命名。
示例:簡(jiǎn)單使用itertuples,不設(shè)置index和name
>>> df = pd.DataFrame({'num_legs': [4, 2], 'num_wings': [0, 2]}, ... index=['dog', 'hawk']) >>> df num_legs num_wings dog 4 0 hawk 2 2 >>> for row in df.itertuples(): ... print(row) ... Pandas(Index='dog', num_legs=4, num_wings=0) Pandas(Index='hawk', num_legs=2, num_wings=2)
示例:設(shè)置index=False以取消索引為首個(gè)字段
>>> for row in df.itertuples(index=False): ... print(row) ... Pandas(num_legs=4, num_wings=0) Pandas(num_legs=2, num_wings=2)
示例:自定義元組名稱(chēng)
>>> for row in df.itertuples(name='Animal'): ... print(row) ... Animal(Index='dog', num_legs=4, num_wings=0) Animal(Index='hawk', num_legs=2, num_wings=2)
2. 以 (index, Series) 對(duì)的形式遍歷 DataFrame行
pandas.DataFrame.iterrows
返回:index
標(biāo)簽或標(biāo)簽元組。即行索引或多維索引元組。
返回:Series
以Series形式展示該行的數(shù)據(jù)。
示例:直接使用iterrows
由于 iterrows 會(huì)為每一行返回一個(gè) Series,因此不會(huì)跨行保留 dtypes(DataFrames 的 dtypes 會(huì)跨列保留)。
>>> df = pd.DataFrame([[1, 1.5]], columns=['int', 'float']) >>> row = next(df.iterrows())[1] >>> row int 1.0 float 1.5 Name: 0, dtype: float64 >>> print(row['int'].dtype) float64 >>> print(df['int'].dtype) int64
為了在遍歷行時(shí)保留 dtypes,最好使用 itertuples(),它返回值的命名元組,通常比 iterrows 更快。
tips:永遠(yuǎn)不要修改正在迭代的內(nèi)容。這并不能保證在所有情況下都有效。根據(jù)數(shù)據(jù)類(lèi)型的不同,迭代器返回的是副本而不是視圖,對(duì)其寫(xiě)入不會(huì)有任何影響。
到此這篇關(guān)于pandas實(shí)現(xiàn)按行遍歷dataframe的方法(itertuples,iterrows)的文章就介紹到這了,更多相關(guān)pandas 按行遍歷dataframe內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
提高Python生產(chǎn)力的五個(gè)Jupyter notebook插件
Jupyter Notebook 因其可用性和實(shí)用性而成為數(shù)據(jù)分析和機(jī)器學(xué)習(xí)模型領(lǐng)域最流行的 IDE,它也是很多數(shù)據(jù)初學(xué)者的首選 IDE。它最具特色的是,擁有豐富的插件、擴(kuò)展數(shù)據(jù)處理能力和提升工作效率2021-11-11Python高階函數(shù)與裝飾器函數(shù)的深入講解
這篇文章主要給大家介紹了關(guān)于Python高階函數(shù)與裝飾器函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Python爬蟲(chóng)程序中使用生產(chǎn)者與消費(fèi)者模式時(shí)進(jìn)程過(guò)早退出的問(wèn)題
本文主要介紹了Python爬蟲(chóng)程序中使用生產(chǎn)者與消費(fèi)者模式時(shí)進(jìn)程過(guò)早退出的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Python使用psycopg2連接PostgreSQL數(shù)據(jù)庫(kù)的步驟
PostgreSQL 是一個(gè)廣泛使用的開(kāi)源對(duì)象關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),以其強(qiáng)大的功能和靈活性而聞名,Python,作為一種流行的編程語(yǔ)言,提供了多種方式與數(shù)據(jù)庫(kù)交互,其中 psycopg2 是連接 PostgreSQL 數(shù)據(jù)庫(kù)的流行選擇之一,本文介紹了Python使用psycopg2連接PostgreSQL數(shù)據(jù)庫(kù)的步驟2024-12-12Python中函數(shù)的各種類(lèi)型參數(shù)解讀
這篇文章主要介紹了Python中函數(shù)的各種類(lèi)型參數(shù)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08使用Python腳本在Linux下實(shí)現(xiàn)部分Bash Shell的教程
這篇文章主要介紹了使用Python腳本在Linux下實(shí)現(xiàn)部分Bash Shell的教程,包括一些簡(jiǎn)單的輸入輸出和郵件功能,需要的朋友可以參考下2015-04-04python標(biāo)準(zhǔn)庫(kù)中inspect模塊的簡(jiǎn)單說(shuō)明
這篇文章主要介紹了python標(biāo)準(zhǔn)庫(kù)中inspect模塊的簡(jiǎn)單介紹,inspect模塊提供了幾個(gè)有用的函數(shù)來(lái)幫助獲取有關(guān)活動(dòng)對(duì)象的信息,例如模塊,類(lèi),方法,函數(shù),回溯,框架對(duì)象和代碼對(duì)象,需要的朋友可以參考下2023-08-08