如何利用itertuples對DataFrame進(jìn)行遍歷
用itertuples對DataFrame進(jìn)行遍歷
最近在做推薦系統(tǒng)實(shí)踐的時(shí)候需要生成物品同現(xiàn)矩陣和用戶物品矩陣,發(fā)現(xiàn)了對DataFrame對象進(jìn)行遍歷很方便的函數(shù)itertuples
與此相關(guān)的有如下:
iterrows(): 將DataFrame迭代成(index ,series)iteritems():將DataFrame迭代成(列名,series)itertuples():將DataFrame迭代成元組
示例如下:



通過getattr()函數(shù)可以直接獲取元組內(nèi)指定的值

這里通過列明索引訪問對應(yīng)的值

這里通過Index 索引獲取對應(yīng)的值
Pandas——Dataframe行遍歷幾種常用方法性能分析
pandas作為python數(shù)據(jù)分析的一大利器,為廣大數(shù)據(jù)分析人員使用。無意中,聽到美女同事吐槽:dataframe好慢啊!嗯哼,瞬間引起了我這個(gè)數(shù)據(jù)人的注意,過去一看,原來是用的方法本身效率低。
日常工作中,按照行遍歷數(shù)據(jù)是我們一個(gè)非常常見的場景!尤其是從sql boy轉(zhuǎn)到數(shù)據(jù)分析的我,動(dòng)不動(dòng)就想
?select * from table1;
一下,看看數(shù)據(jù)的大概情況。這一操作在pandas中的實(shí)現(xiàn)主要有一下幾種:
1、iterrows()
原理是將Dataframe迭代為Series,再返回結(jié)果。這一過程中需要進(jìn)行類型檢查,所以,會花費(fèi)很長的時(shí)間。(不建議使用)
for index, row in df.iterrows(): ? ? ?#字典方式訪問 ? ? ?print(index, row['c1'], row['c2'])
2、itertuples()
原理是將Dataframe迭代為tuple,再進(jìn)行返回,由于元組不可變的特性,此過程不需要進(jìn)行類型檢查。(效率高,推薦使用)
for row in student.itertuples(): ? ? # print(row) ? ? print(row.Index, row.name, row.account, row.pwd) ? ? print(row.Index, getattr(row,'name'), getattr(row,'account'), getattr(row,'pwd'))
3、for + zip
這種方法是直接手動(dòng)構(gòu)造原生tuple,無需關(guān)心index數(shù)據(jù)。(效率高,推薦使用)
for A, B in zip(df['A'], df['B']): ? ? print(A, B)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- pandas中的DataFrame數(shù)據(jù)遍歷解讀
- Python?pandas按行、按列遍歷DataFrame的幾種方式
- Python數(shù)據(jù)分析之?Pandas?Dataframe條件篩選遍歷詳情
- pandas按行按列遍歷Dataframe的幾種方式
- pandas中遍歷dataframe的每一個(gè)元素的實(shí)現(xiàn)
- 在pandas中遍歷DataFrame行的實(shí)現(xiàn)方法
- Pandas DataFrame中的tuple元素遍歷的實(shí)現(xiàn)
- python中使用iterrows()對dataframe進(jìn)行遍歷的實(shí)例
- 對Python中DataFrame按照行遍歷的方法
相關(guān)文章
python可擴(kuò)展的Blender 3D插件開發(fā)匯總
這篇文章主要為大家介紹了python可擴(kuò)展的Blender 3D插件開發(fā)匯總,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
如何使用pandas對超大csv文件進(jìn)行快速拆分詳解
Pandas是Python語言的一個(gè)擴(kuò)展程序庫,提供高性能、易于使用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具,下面這篇文章主要給大家介紹了關(guān)于如何使用pandas對超大csv文件進(jìn)行快速拆分的相關(guān)資料,需要的朋友可以參考下2022-07-07
Python+OpenCV目標(biāo)跟蹤實(shí)現(xiàn)基本的運(yùn)動(dòng)檢測
這篇文章主要為大家詳細(xì)介紹了Python+OpenCV目標(biāo)跟蹤實(shí)現(xiàn)基本的運(yùn)動(dòng)檢測,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
Python實(shí)現(xiàn)對字符串中字符提取校驗(yàn)
眾所周知,python之所以很方便在一定程度上是因?yàn)殡S時(shí)都可能有人又創(chuàng)作了一個(gè)好用又方便的python非標(biāo)準(zhǔn)庫。本文就來用Python實(shí)現(xiàn)對字符串中字符進(jìn)行提取校驗(yàn),需要的可以參考一下2022-10-10
Python3 數(shù)據(jù)結(jié)構(gòu)示例詳解
本文介紹了Python中的四種基本數(shù)據(jù)結(jié)構(gòu)——列表、元組、集合和字典,以及如何根據(jù)具體需求選擇合適的數(shù)據(jù)結(jié)構(gòu),文章還展示了如何使用這些數(shù)據(jù)結(jié)構(gòu)進(jìn)行基本操作,并提供了示例代碼,感興趣的朋友跟隨小編一起看看吧2025-11-11
python使用numpy按一定格式讀取bin文件的實(shí)現(xiàn)
這篇文章主要介紹了python使用numpy按一定格式讀取bin文件的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05

