Python實(shí)現(xiàn)多條件篩選目標(biāo)數(shù)據(jù)功能【測(cè)試可用】
本文實(shí)例講述了Python實(shí)現(xiàn)多條件篩選目標(biāo)數(shù)據(jù)功能。分享給大家供大家參考,具體如下:
python中提供了一些數(shù)據(jù)過(guò)濾功能,可以使用內(nèi)建函數(shù),也可以使用循環(huán)語(yǔ)句來(lái)判斷,或者使用pandas庫(kù),當(dāng)然在有些情況下使用pandas是為了提高工作效率。舉例如下:
a = [('chic', 'JJ'), ('although', 'IN'), ('menu', 'JJ'), ('items', 'NNS'), ('doesnt', 'JJ'),
('scream', 'NN'), ('french', 'JJ'), ('cuisine', 'NN')]
這里的a為一個(gè)list,列表中還有元組。每一個(gè)元組由單詞和其詞性組成,我們要篩選詞性為JJ何NN的單詞??梢杂腥N寫(xiě)法:
第一種,使用內(nèi)建函數(shù)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(data_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))
運(yùn)行結(jié)果:
[('chic', 'JJ'), ('menu', 'JJ'), ('doesnt', 'JJ'), ('scream', 'NN'), ('french', 'JJ'), ('cuisine', 'NN')]
第二種,使用pandas包:
# -*- coding:utf-8 -*-
#!python3
import pandas as pd
a = [('chic', 'JJ'), ('although', '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)
運(yùn)行結(jié)果:
0 chic
2 menu
4 doesnt
5 scream
6 french
7 cuisine
Name: word, dtype: object
第三種,使用循環(huán):
# -*- 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(absd)
得到的結(jié)果都相同,如下:
['chic', 'menu', 'doesnt', 'scream', 'french', 'cuisine']
雖然結(jié)果相同,但是推薦第一、二種方法,因?yàn)檫@兩個(gè)方法速度更快。
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專(zhuān)題:《Python列表(list)操作技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python實(shí)現(xiàn)五子棋聯(lián)機(jī)對(duì)戰(zhàn)小游戲
本文主要介紹了通過(guò)Python實(shí)現(xiàn)簡(jiǎn)單的支持聯(lián)機(jī)對(duì)戰(zhàn)的游戲——支持局域網(wǎng)聯(lián)機(jī)對(duì)戰(zhàn)的五子棋小游戲。廢話(huà)不多說(shuō),快來(lái)跟隨小編一起學(xué)習(xí)吧2021-12-12
Python使用Supervisor來(lái)管理進(jìn)程的方法
這篇文章主要介紹了Python使用Supervisor來(lái)管理進(jìn)程的方法,涉及Supervisor的相關(guān)使用技巧,需要的朋友可以參考下2015-05-05
Python圖像處理庫(kù)PIL的ImageFont模塊使用介紹
這篇文章主要介紹了Python圖像處理庫(kù)PIL的ImageFont模塊使用介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
python基礎(chǔ)之類(lèi)型轉(zhuǎn)換函數(shù)
這篇文章主要介紹了python類(lèi)型轉(zhuǎn)換函數(shù),實(shí)例分析了Python中返回一個(gè)返回值與多個(gè)返回值的方法,需要的朋友可以參考下2021-10-10
Python?中如何使用requests模塊發(fā)布表單數(shù)據(jù)
requests 庫(kù)是 Python 的主要方面之一,用于創(chuàng)建對(duì)已定義 URL 的 HTTP 請(qǐng)求,本篇文章介紹了 Python requests 模塊,并說(shuō)明了我們?nèi)绾问褂迷撃K在 Python 中發(fā)布表單數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧2023-06-06

