欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pandas中遍歷dataframe的每一個(gè)元素的實(shí)現(xiàn)

 更新時(shí)間:2019年10月23日 14:36:04   作者:TheoldmanPickgarbage  
這篇文章主要介紹了pandas中遍歷dataframe的每一個(gè)元素的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

假如有一個(gè)需求場景需要遍歷一個(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只輸出每一列中滿足條件的元素,更方便下一步的操作。

簡單說明:

針對pandas的dataframe和series,有強(qiáng)大的高階函數(shù):apply,applymap和map函數(shù)等,它們比簡單的for循環(huán)要快很多,善用這些高階函數(shù)會(huì)讓你事半功倍。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論