python pandas多條件篩選實(shí)現(xiàn)方式
更新時間:2025年09月02日 09:22:15 作者:AGMTI
用戶在使用pandas進(jìn)行多條件篩選時發(fā)現(xiàn)無現(xiàn)成方法,自行編寫函數(shù)實(shí)現(xiàn),數(shù)據(jù)為虛構(gòu),供參考學(xué)習(xí),鼓勵支持腳本之家
python pandas多條件篩選
我們在使用pandas操作表格時,通常會使用到篩選功能,但我在網(wǎng)上查找了很多資料,pandas貌似沒有相應(yīng)的方法,因此我自己寫了一個方法,
- 代碼為:
import pandas as pd
def df_screen(df,cd):
'''表篩選
df:pd.DataFrame
cd: {字段:[條件1,條件2],} 數(shù)據(jù)格式字典
'''
df_cy = df.copy()
idx_z = [ True for i in df_cy.index]
orcom = lambda a,b: [ any([a[i],b[i]]) for i in range(len(a))] # 列表a與列表b兩兩 或 比較
addcom = lambda a,b: [ all([a[i],b[i]]) for i in range(len(a))] # 列表a與列表b兩兩 與 比較
for z in cd:
if isinstance(cd[z],list):
for index,c in enumerate(cd[z]):
if index!=0:
idx_c = orcom(idx_c,list(df_cy[z] == c))
else:
idx_c = list(df_cy[z] == c)
else:
idx_c = list(df_cy[z] == cd[z])
idx_z = addcom(idx_z ,idx_c)
return df_cy.loc[idx_z,:]
數(shù)據(jù)準(zhǔn)備
test = pd.DataFrame({'車型': ['皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V'], '新能源類型': ['傳統(tǒng)燃料', '傳統(tǒng)燃料', '傳統(tǒng)燃料', '常規(guī)混合動力', '傳統(tǒng)燃料', '傳統(tǒng)燃料', '傳統(tǒng)燃料', '傳統(tǒng)燃料', '常規(guī)混合動力', '常規(guī)混合動力', '傳統(tǒng)燃料', '傳統(tǒng)燃料', '傳統(tǒng)燃料', '傳統(tǒng)燃料', '常規(guī)混合動力', '常規(guī)混合動力', '插電式混合動力', '插電式混合動力'], '銷量': [4, 176, 1, 35, 3, 1, 774, 38, 167, 17, 8, 1, 267, 3, 35, 3, 2, 1]})

函數(shù)調(diào)用
cd = {
"車型":["皓影","本田CR-V"], # 需要篩選的字段及篩選的內(nèi)容
"新能源類型":["傳統(tǒng)燃料","常規(guī)混合動力"]
}
df_screen(test,cd)
注意:數(shù)據(jù)為虛構(gòu)
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
在Python中字典按值排序的實(shí)現(xiàn)方法
這篇文章主要介紹了在Python中字典按值排序的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Pycharm鼠標(biāo)光標(biāo)切換實(shí)現(xiàn)方式
文章介紹了在使用Windows 10時,如果光標(biāo)變成特殊形狀(如箭頭帶有一個問號),可以通過點(diǎn)擊鍵盤上的Insert鍵來切換回正常光標(biāo),此外,還介紹了如何使用快捷鍵(Win+Shift+S)來截取屏幕2026-01-01
Python 中eval()函數(shù)的正確使用及其風(fēng)險分析(使用示例)
eval()是一個功能強(qiáng)大的工具,但使用時必須非常小心,了解其工作原理和潛在的風(fēng)險是確保安全使用的關(guān)鍵,通過遵循上述建議,可以在享受eval()帶來的便利的同時,最大限度地減少安全風(fēng)險,本文介紹Python 中`eval()`函數(shù)的正確使用及其風(fēng)險分析,感興趣的朋友一起看看吧2024-07-07
Python性能優(yōu)化之讓你的代碼運(yùn)行速度提升10倍的技巧分享
在日常開發(fā)中,我們常常會遇到Python代碼運(yùn)行緩慢的問題,通過一些巧妙的優(yōu)化技巧,我們完全可以讓代碼的運(yùn)行速度提升數(shù)倍甚至數(shù)十倍,下面小編就為大家介紹一下吧2025-11-11
python:目標(biāo)檢測模型預(yù)測準(zhǔn)確度計(jì)算方式(基于IoU)
今天小編就為大家分享一篇python:目標(biāo)檢測模型預(yù)測準(zhǔn)確度計(jì)算方式(基于IoU),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01

