python pandas多條件篩選實現(xiàn)方式
更新時間:2025年09月02日 09:22:15 作者:AGMTI
用戶在使用pandas進行多條件篩選時發(fā)現(xiàn)無現(xiàn)成方法,自行編寫函數(shù)實現(xiàn),數(shù)據(jù)為虛構(gòu),供參考學習,鼓勵支持腳本之家
python pandas多條件篩選
我們在使用pandas操作表格時,通常會使用到篩選功能,但我在網(wǎng)上查找了很多資料,pandas貌似沒有相應的方法,因此我自己寫了一個方法,
- 代碼為:
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ù)準備
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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python 中eval()函數(shù)的正確使用及其風險分析(使用示例)
eval()是一個功能強大的工具,但使用時必須非常小心,了解其工作原理和潛在的風險是確保安全使用的關(guān)鍵,通過遵循上述建議,可以在享受eval()帶來的便利的同時,最大限度地減少安全風險,本文介紹Python 中`eval()`函數(shù)的正確使用及其風險分析,感興趣的朋友一起看看吧2024-07-07
Python性能優(yōu)化之讓你的代碼運行速度提升10倍的技巧分享
在日常開發(fā)中,我們常常會遇到Python代碼運行緩慢的問題,通過一些巧妙的優(yōu)化技巧,我們完全可以讓代碼的運行速度提升數(shù)倍甚至數(shù)十倍,下面小編就為大家介紹一下吧2025-11-11

