pandas中遍歷dataframe的每乙個元素

2022-08-15 15:51:15 字數 1226 閱讀 6580

假如有乙個需求場景需要遍歷乙個csv或excel中的每乙個元素,判斷這個元素是否含有某個關鍵字

那麼可以用python的pandas庫來實現。

方法一:

import pandas as pd

data = [["str","ewt","earw"],["agter","awetg","aeorgh"]]

dataframe1 = pd.dataframe(data=data,columns=["name1","name2","name3"])

print(dataframe1)

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為乙個邏輯矩陣,滿足條件元素的位置為true,否則為false。然後通過邏輯矩陣去索引dataframe1,就可以得出滿足條件的元素。

方法二:

第一種方法是一次性遍歷每個元素,這樣不好分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 才有的乙個操作。另外,filter_data只輸出每一列中滿足條件的元素,更方便下一步的操作。

簡單說明:

pandas 根據兩列資料篩選dataframe

如果是篩選某一列中等於某個值的那一行,可以使用 dataframe dataframe 列名 具體值 如果篩選某兩列中的值等於具體值的那幾行,可以使用 search se dataframe.loc dataframe 列1 值1 列2 值2 得到篩選後的行的index search index s...

在pandas中遍歷DataFrame行

有如下 pandas dataframe import pandas as pdinp df pd.dataframe inp print df上面 輸出 c1 c20 10 1001 11 1102 12 120現在需要遍歷上面dataframe的行。對於每一行,都希望能夠通過列名訪問對應的元素 ...

在pandas中遍歷DataFrame行

有如下 pandas dataframe import pandas as pd inp df pd.dataframe inp print df 上面 輸出 c1 c2 0 10 100 1 11 110 2 12 120 現在需要遍歷上面dataframe的行。對於每一行,都希望能夠通過列名訪問...