pandas中遍歷dataframe的每一個(gè)元素的實(shí)現(xiàn)
假如有一個(gè)需求場(chǎng)景需要遍歷一個(gè)csv或excel中的每一個(gè)元素,判斷這個(gè)元素是否含有某個(gè)關(guān)鍵字
那么可以用python的pandas庫來實(shí)現(xiàn)。
方法一:
pandas的dataframe有一個(gè)很好用的函數(shù)applymap,它可以把某個(gè)函數(shù)應(yīng)用到dataframe的每一個(gè)元素上,而且比常規(guī)的for循環(huán)去遍歷每個(gè)元素要快很多。如下是相關(guān)代碼:
import pandas as pd data = [["str","ewt","earw"],["agter","awetg","aeorgh"]] dataframe1 = pd.DataFrame(data=data,columns=["name1","name2","name3"]) print(dataframe1) bool_array = dataframe1.applymap(lambda x:"w" in x) out_array = dataframe1[bool_array] print(out_array) >> name1 name2 name3 0 str ewt earw 1 agter awetg aeorgh name1 name2 name3 0 NaN ewt earw 1 NaN awetg NaN
代碼中,bool_array為一個(gè)邏輯矩陣,滿足條件元素的位置為true,否則為false。然后通過邏輯矩陣去索引dataframe1,就可以得出滿足條件的元素。
方法二:
第一種方法是一次性遍歷每個(gè)元素,這樣不好分column去處理,那換一種方式可以每次遍歷一列
#接上面代碼 file_columns = dataframe1.columns.tolist() for column in file_columns: bool_index = dataframe1[column].str.contains("w") filter_data = dataframe1[column][bool_index] print(filter_data) >> Series([], Name: name1, dtype: object) 0 ewt 1 awetg Name: name2, dtype: object 0 earw Name: name3, dtype: object
代碼種 Series.str.contains 是 Series 才有的一個(gè)操作。另外,filter_data只輸出每一列中滿足條件的元素,更方便下一步的操作。
簡(jiǎn)單說明:
針對(duì)pandas的dataframe和series,有強(qiáng)大的高階函數(shù):apply,applymap和map函數(shù)等,它們比簡(jiǎn)單的for循環(huán)要快很多,善用這些高階函數(shù)會(huì)讓你事半功倍。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- pandas中的DataFrame數(shù)據(jù)遍歷解讀
- Python?pandas按行、按列遍歷DataFrame的幾種方式
- Python數(shù)據(jù)分析之?Pandas?Dataframe條件篩選遍歷詳情
- pandas按行按列遍歷Dataframe的幾種方式
- 在pandas中遍歷DataFrame行的實(shí)現(xiàn)方法
- Pandas DataFrame中的tuple元素遍歷的實(shí)現(xiàn)
- python中使用iterrows()對(duì)dataframe進(jìn)行遍歷的實(shí)例
- 對(duì)Python中DataFrame按照行遍歷的方法
- 如何利用itertuples對(duì)DataFrame進(jìn)行遍歷
相關(guān)文章
Python遍歷文件夾和讀寫文件的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python遍歷文件夾和讀寫文件的實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-08-08Python操作Excel數(shù)據(jù)的封裝函數(shù)分享
對(duì)比其它編程語言,我們都知道Python最大的優(yōu)勢(shì)是代碼簡(jiǎn)單,有豐富的第三方開源庫供開發(fā)者使用。而對(duì)于數(shù)據(jù)的讀取和存儲(chǔ),對(duì)于普通人來講,除了數(shù)據(jù)庫之外,最常見的就是微軟的Excel。本文為大家準(zhǔn)備了Python操作Excel數(shù)據(jù)的封裝函數(shù),希望對(duì)大家有所幫助2022-11-11Python正則表達(dá)式中flags參數(shù)的實(shí)例詳解
正則表達(dá)式是一個(gè)很強(qiáng)大的字符串處理工具,幾乎任何關(guān)于字符串的操作都可以使用正則表達(dá)式來完成,下面這篇文章主要給大家介紹了關(guān)于Python正則表達(dá)式中flags參數(shù)的相關(guān)資料,需要的朋友可以參考下2022-04-04Python的Flask框架及Nginx實(shí)現(xiàn)靜態(tài)文件訪問限制功能
這篇文章主要介紹了Python的Flask框架及Nginx實(shí)現(xiàn)靜態(tài)文件訪問限制功能,Nginx方面利用到了自帶的XSendfile,需要的朋友可以參考下2016-06-06python實(shí)現(xiàn)輸出一個(gè)序列的所有子序列示例
今天小編就為大家分享一篇python實(shí)現(xiàn)輸出一個(gè)序列的所有子序列示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11Python查看Tensor尺寸及查看數(shù)據(jù)類型的實(shí)現(xiàn)
這篇文章主要介紹了Python查看Tensor尺寸及查看數(shù)據(jù)類型的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Python對(duì)ElasticSearch獲取數(shù)據(jù)及操作
這篇文章主要為大家詳細(xì)介紹了Python對(duì)ElasticSearch獲取數(shù)據(jù)及操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04