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)文章
解決Pytorch 訓(xùn)練與測(cè)試時(shí)爆顯存(out of memory)的問題
今天小編就為大家分享一篇解決Pytorch 訓(xùn)練與測(cè)試時(shí)爆顯存(out of memory)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08python中pivot()函數(shù)基礎(chǔ)知識(shí)點(diǎn)
在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python中pivot()函數(shù)基礎(chǔ)知識(shí)點(diǎn)內(nèi)容,對(duì)此有興趣的朋友們可以參考學(xué)習(xí)下。2021-01-01python測(cè)試攻略pytest.main()隱藏利器實(shí)例探究
在Pytest測(cè)試框架中,pytest.main()是一個(gè)重要的功能,用于啟動(dòng)測(cè)試執(zhí)行,它允許以不同方式運(yùn)行測(cè)試,傳遞參數(shù)和配置選項(xiàng),本文將深入探討pytest.main()的核心功能,提供豐富的示例代碼和更全面的內(nèi)容,2024-01-01pandas刪除重復(fù)數(shù)據(jù)簡(jiǎn)單方法
這篇文章主要給大家介紹了關(guān)于pandas刪除重復(fù)數(shù)據(jù)的簡(jiǎn)單方法,在數(shù)據(jù)處理過程中常常會(huì)遇到重復(fù)的問題,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07python 3.0 模擬用戶登錄功能并實(shí)現(xiàn)三次錯(cuò)誤鎖定
Python的3.0版本,常被稱為Python 3000,或簡(jiǎn)稱Py3k。這篇文章主要介紹了python 3.0 模擬用戶登錄功能并實(shí)現(xiàn)三次錯(cuò)誤鎖定,需要的朋友可以參考下2017-11-11Python實(shí)現(xiàn)圖像壓縮和圖像處理詳解
隨著現(xiàn)在短視頻類越來越火,隨之而來的就是大量的視頻圖像的處理。這篇文章主要為大家介紹了Python如何一鍵實(shí)現(xiàn)圖像壓縮和圖像處理,希望對(duì)你們有所幫助2022-07-07Python除法保留兩位小數(shù)點(diǎn)的三種方法實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于Python除法保留兩位小數(shù)點(diǎn)的三種方法實(shí)現(xiàn),在py應(yīng)用中有許多拿結(jié)果中的多個(gè)整數(shù)進(jìn)行運(yùn)算,難免少不了除法(如單位換算等),但是整數(shù)進(jìn)行運(yùn)算后只會(huì)返回整數(shù),一般結(jié)果基本需要精確到后兩位,需要的朋友可以參考下2023-08-08