Python實現多條件篩選目標資料功能 測試可用

2022-10-04 19:30:19 字數 1912 閱讀 1063

python中提供了一些資料過濾功能,可以使用內建函式,也可以使用迴圈語句來判斷,或者使用pandas庫,當然在有些情況下使用pandas是為了提高工作效率。舉例如下:

a = [('chic', 'jj'), ('although', 'in'), ('menu', 'jj'), ('items', 'nns'), ('doesnt', 'jj'),

('scream', 'nn'), ('french', 'jj'), ('cuisine', 'nn')]

這裡的a為乙個list,列表中還有元組。每乙個元組由單詞和其詞性組成,我們要篩選詞性為jj何nn的單詞。可以有三種寫法:

第一種,使用內建函式filter:

# -*- coding:utf-8 -*-

#!python3

a = [('chic', 'jj'), ('although', 'in'), ('menu', 'jj'), ('items', 'nns'), ('doesnt', 'jj'),

('scream', 'nn'), ('french', 'jj'), ('cuisine', 'nn')]

def filt_nn(dataizbgcpmada_text):

nn_data = filter(lambda x: x[1] == 'nn'or x[1] == 'jj', data_text)

# print(list(nn_data))

return list(nn_data)

print(filt_nn(a))

執行結果:

[('chic', 程式設計客棧'jj'), ('menu', 'jj'), ('doesnt', 'jj'), ('scream', 'nn'), ('french', 'jj'), ('cuisine', 'nn')]

第二種,使用pandas包:

# -*- coding:utf-8 -*-

#!python3

import pandas as pd

a = [('chic', 'jj'), ('althoug程式設計客棧h', 'in'), ('menu', 'jj'), ('items', 'nns'), ('doesnt', 'jj'),

('scream', 'nn'), ('french', 'jj'), ('cuisine', 'nn')]

data = pd.dataframe(a, columns=['word', 'ps'])

print(data[data.ps.isin(['jj', 'nn'])].word)

執行結果:

0       chic

2    www.cppcns.com   menu

4     doesnt

5     scream

6     french

7    cuisine

name: word, dtype: object

第三種,使用迴圈:

# -*- coding:utf-8 -*-

#!python3

a = [('chic', 'jj'), ('although', 'in'), ('menu', 'jj'), ('items', 'nns'), ('doesnt', 'jj'),

('scream', 'nn'), ('french', 'jj'), ('cuisine', 'nn')]

absd =

for i in a:

if i[1] == 'nn' or i[1] == 'jj':

absd.append(i[0])

print(a程式設計客棧bsd)

得到的結果都相同,如下:

['chic', 'menu', 'doesnt', 'scream', 'french', 'cuisine']

雖然結果相同,但是推薦第

一、二種方法,因為這兩個方法速度更快。

多條件篩選的實現

conditions array price color metal 要進行篩選的字段放在這裡 price color metal 先給需要篩選的字段賦空值,這些值將輸出到頁面的hidden fileds中 以下迴圈給已經進行的篩選賦值,以便能夠在下一次篩選中保留 foreach condition...

php多條件篩選

php獲取當前url路徑的函式及伺服器變數 server query string 查詢 query 的字串 server request uri 訪問此頁面所需的uri server script name 包含當前指令碼的路徑 server php self 當前正在執行指令碼的檔名 案例 適用...

excel多條件篩選公式

目標 實現用公式多條件篩選資料,比如有很多個工作簿,每個工作簿都有以下資料。ab cd10 12442 12355 3234 66找出a列為0,b列為1,c列為2的那一行,也就是第一行,輸出d列資料44。最後彙總到乙個工作表裡。方法 1 使用以下方法將所有工作表合併到乙個工作表裡,其中第乙個工作簿為...