Pandas DataFrame 篩選數(shù)據(jù)幾種方法實現(xiàn)
DataFrame篩選數(shù)據(jù)的方法包括:根據(jù)字段、標(biāo)簽、位置、布爾索引、通過query進行篩選。
1、根據(jù)字段篩選數(shù)據(jù)
根據(jù)字段篩選簡單理解為根據(jù)每一列繼續(xù)篩選,將想要的列拿出再對齊進行操作,可以提高效率。
可以通過df.字段名、df[字段名]或df[['字段名']](此種方法可以拿取多列數(shù)據(jù),并形成一個新的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ù)字之外,在定義時可以根據(jù)需求進行定義。
通過loc進行操作
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這一行返回成一個新的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']])#單獨的‘:'表示所有行 print(df.loc['B'::2])#從B開始隔一個取一個
3、根據(jù)布爾索引篩選數(shù)據(jù)
通過比較運算進行創(chuàng)造布爾條件,通過其值進行篩選。值得注意的是其邏輯運算為(&、|、~)
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#其返回值為一個bool類型的series,需要變量進行接受 print(cond1) df1=df[cond1] print(df1[['python']])#將cond1作為篩選條件,這里為了只看其中一列,用一個新的dataframe
print(df[df>50])#對df中的所有元素進行判定,其false項會換成NaN
print(df[df.python.isin([108])])#使用isin方法查找python分?jǐn)?shù)為108,中括號里也可以為數(shù)組
4、通過query篩選數(shù)據(jù)
query()方法允許使用SQL表達式進行篩選數(shù)據(jù)
df2=df.query('python>135 and math>120 and english > 100') print(df2)
到此這篇關(guān)于Pandas DataFrame 篩選數(shù)據(jù)幾種方法實現(xiàn)的文章就介紹到這了,更多相關(guān)Pandas DataFrame 篩選內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Pytorch 訓(xùn)練與測試時爆顯存(out of memory)的問題
今天小編就為大家分享一篇解決Pytorch 訓(xùn)練與測試時爆顯存(out of memory)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08python中pivot()函數(shù)基礎(chǔ)知識點
在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python中pivot()函數(shù)基礎(chǔ)知識點內(nèi)容,對此有興趣的朋友們可以參考學(xué)習(xí)下。2021-01-01python測試攻略pytest.main()隱藏利器實例探究
在Pytest測試框架中,pytest.main()是一個重要的功能,用于啟動測試執(zhí)行,它允許以不同方式運行測試,傳遞參數(shù)和配置選項,本文將深入探討pytest.main()的核心功能,提供豐富的示例代碼和更全面的內(nèi)容,2024-01-01python 3.0 模擬用戶登錄功能并實現(xiàn)三次錯誤鎖定
Python的3.0版本,常被稱為Python 3000,或簡稱Py3k。這篇文章主要介紹了python 3.0 模擬用戶登錄功能并實現(xiàn)三次錯誤鎖定,需要的朋友可以參考下2017-11-11Python除法保留兩位小數(shù)點的三種方法實現(xiàn)
這篇文章主要給大家介紹了關(guān)于Python除法保留兩位小數(shù)點的三種方法實現(xiàn),在py應(yīng)用中有許多拿結(jié)果中的多個整數(shù)進行運算,難免少不了除法(如單位換算等),但是整數(shù)進行運算后只會返回整數(shù),一般結(jié)果基本需要精確到后兩位,需要的朋友可以參考下2023-08-08