Pandas DataFrame 篩選數(shù)據(jù)幾種方法實(shí)現(xiàn)
DataFrame篩選數(shù)據(jù)的方法包括:根據(jù)字段、標(biāo)簽、位置、布爾索引、通過query進(jìn)行篩選。
1、根據(jù)字段篩選數(shù)據(jù)
根據(jù)字段篩選簡(jiǎn)單理解為根據(jù)每一列繼續(xù)篩選,將想要的列拿出再對(duì)齊進(jìn)行操作,可以提高效率。
可以通過df.字段名、df[字段名]或df[['字段名']](此種方法可以拿取多列數(shù)據(jù),并形成一個(gè)新的dataframe)
直接看代碼
import pandas as pd
import numpy as np
df=pd.DataFrame(np.random.randint(0,150,size=(150,3)),
columns=['math','python','english']
)
print(df)
print(df.python)
print(df["math"])
print(df[['math']])
print(df[['math','python']])




2、根據(jù)標(biāo)簽篩選數(shù)據(jù)
標(biāo)簽可以理解為索引(每一行),標(biāo)簽除了默認(rèn)的數(shù)字之外,在定義時(shí)可以根據(jù)需求進(jìn)行定義。
通過loc進(jìn)行操作
import pandas as pd
import numpy as np
df=pd.DataFrame(np.random.randint(0,100,size=(10,3)),
index=list('ABCDEFGHIG'),
columns=['math','python','english']
)
print(df.loc['A'])#篩選出標(biāo)簽A這一行
print(df.loc[['A']])#將A這一行返回成一個(gè)新的DataFrame
print(df.loc[['A','B']])#將AB兩行返回成DataFrame
print(df.loc[['A','B'],['math','python']])#左邊為標(biāo)簽,右邊為字段,即將AB兩行的math、python兩列返回
print(df.loc['A':'F',['math','python']])#采用分區(qū)方法,將A到F行的此兩列返回
print(df.loc[:,['math','python']])#單獨(dú)的‘:'表示所有行
print(df.loc['B'::2])#從B開始隔一個(gè)取一個(gè)

3、根據(jù)布爾索引篩選數(shù)據(jù)
通過比較運(yùn)算進(jìn)行創(chuàng)造布爾條件,通過其值進(jìn)行篩選。值得注意的是其邏輯運(yùn)算為(&、|、~)
import pandas as pd
import numpy as np
df=pd.DataFrame(np.random.randint(0,151,size=(2000,3)),
columns=['math','python','english']
)
cond1=df.python>99#其返回值為一個(gè)bool類型的series,需要變量進(jìn)行接受
print(cond1)
df1=df[cond1]
print(df1[['python']])#將cond1作為篩選條件,這里為了只看其中一列,用一個(gè)新的dataframe

print(df[df>50])#對(duì)df中的所有元素進(jìn)行判定,其false項(xiàng)會(huì)換成NaN

print(df[df.python.isin([108])])#使用isin方法查找python分?jǐn)?shù)為108,中括號(hào)里也可以為數(shù)組

4、通過query篩選數(shù)據(jù)
query()方法允許使用SQL表達(dá)式進(jìn)行篩選數(shù)據(jù)
df2=df.query('python>135 and math>120 and english > 100')
print(df2)
到此這篇關(guān)于Pandas DataFrame 篩選數(shù)據(jù)幾種方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Pandas DataFrame 篩選內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)的執(zhí)行python腳本工具類示例【使用jython.jar】
這篇文章主要介紹了Java實(shí)現(xiàn)的執(zhí)行python腳本工具類,結(jié)合實(shí)例形式分析了java使用jython.jar執(zhí)行Python腳本的具體操作技巧,需要的朋友可以參考下2018-03-03
跟老齊學(xué)Python之使用Python查詢更新數(shù)據(jù)庫(kù)
前面我們講述了使用python操作數(shù)據(jù)庫(kù),今天我們來更進(jìn)一步,介紹下python查詢、更新數(shù)據(jù)庫(kù)的相關(guān)操作。有需要的小伙伴自己參考下吧。2014-11-11
Python實(shí)現(xiàn)Excel數(shù)據(jù)自動(dòng)化處理的全過程
本文介紹了Python處理Excel數(shù)據(jù)的優(yōu)勢(shì)、環(huán)境準(zhǔn)備、核心操作實(shí)現(xiàn)、實(shí)戰(zhàn)案例、性能優(yōu)化技巧以及常見問題,通過Python自動(dòng)化工具,可以顯著提高數(shù)據(jù)處理效率,減少錯(cuò)誤率,并使數(shù)據(jù)處理成為可積累、可優(yōu)化的智能流程,需要的朋友可以參考下2025-12-12
Pandas merge合并兩個(gè)DataFram的實(shí)現(xiàn)
本文主要介紹了Pandas merge合并兩個(gè)DataFram的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
在Python中利用Bokeh創(chuàng)建動(dòng)態(tài)數(shù)據(jù)可視化
在本文中,我們探討了如何利用 Bokeh 庫(kù)在 Python 中創(chuàng)建動(dòng)態(tài)數(shù)據(jù)可視化,我們介紹了 Bokeh 的基本概念和優(yōu)勢(shì),以及如何安裝 Bokeh 庫(kù),對(duì)在Python中利用Bokeh創(chuàng)建動(dòng)態(tài)數(shù)據(jù)可視化相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧2024-05-05
基于Python實(shí)現(xiàn)DIT-FFT算法
FFT(Fast Fourier Transformation)是離散傅氏變換(DFT)的快速算法。即為快速傅氏變換。本文將用Python語言實(shí)現(xiàn)DIT-FFT算法,感興趣的可以了解一下2022-10-10
基于Python判斷節(jié)假日的幾種方式小結(jié)
本文介紹了如何使用Python庫(kù)如holidays和chinesecalendar在信息安全巡檢中判斷節(jié)假日,包括工作日、法定節(jié)假日以及調(diào)休情況,同時(shí)提到了可能存在的局限性,如特定假期的覆蓋不足和政策變動(dòng)需要更新庫(kù),需要的朋友可以參考下2025-12-12

