這篇文章主要介紹“Pandas數(shù)據(jù)查詢方法df.loc()怎么使用”,在日常操作中,相信很多人在Pandas數(shù)據(jù)查詢方法df.loc()怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Pandas數(shù)據(jù)查詢方法df.loc()怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)建站長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為怒江州企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),怒江州網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
pandas常用的查詢函數(shù)有:df.loc()
,df.iloc()
,df.where()
,de.query()
;
函數(shù) | 功能 |
---|---|
df.loc() | 根據(jù)行,列的標(biāo)簽進(jìn)行查詢 |
df.iloc() | 根據(jù)行,列的數(shù)字位置進(jìn)行查詢 |
df.where() | 可以根據(jù)條件返回滿足需求的結(jié)果 |
de.query() | 可以根據(jù)條件返回滿足需求的結(jié)果 |
以上的幾種方法,都可以實(shí)現(xiàn)相同的功能,所以我們能夠熟練的掌握其中一個(gè)就好,這里我推薦df.loc()
,因?yàn)檫@個(gè)函數(shù)可以實(shí)現(xiàn)的功能是最多的,一般的應(yīng)用場景,只要會這個(gè)就完全夠用了;
df.loc()
pandas通常碰到的查詢需求,有如下五種:按數(shù)值,列表,區(qū)間,條件,函數(shù)五種方法進(jìn)行查詢;
使用的數(shù)據(jù)如下,大家可以復(fù)制到本地進(jìn)行練習(xí):
Date,天氣,高溫,低溫,風(fēng)向,風(fēng)速 2020/7/16,晴,26,21,東風(fēng),2 2020/7/17,多云,25,21,西風(fēng),3 2020/7/20,小雨,24,15,東北風(fēng),5 2020/7/21,多云轉(zhuǎn)晴,22,17,東風(fēng),2 2020/7/22,多云,20,16,西風(fēng),1 2020/7/23,雷陣雨,20,20,東北風(fēng),3 2020/7/24,多云,26,17,西南風(fēng),2 2020/7/27,小雨,26,17,東風(fēng),3 2020/7/28,多云轉(zhuǎn)晴,25,24,西風(fēng),5 2020/7/29,晴,24,23,東北風(fēng),2 2020/7/30,晴,22,20,東風(fēng),2 2020/7/31,晴,26,22,東風(fēng),3 2020/8/3,晴,25,22,西風(fēng),2 2020/8/4,多云轉(zhuǎn)晴,24,16,東北風(fēng),3 2020/8/5,多云,22,14,東風(fēng),5 2020/8/6,雷陣雨,20,12,西風(fēng),2 2020/8/7,小雨,20,13,東北風(fēng),1 2020/8/10,多云轉(zhuǎn)晴,26,22,西南風(fēng),3
讀入數(shù)據(jù):
import pandas as pd data_path_2=r"E:\VSCODE\2_numpy_pandas\pandas\data_select.csv" df=pd.read_csv(data_path_2,encoding='gbk') # 這里因?yàn)槲沂怯肊xcel保存的csv,所以編碼格式是gbk, 大部分時(shí)候使用UTF-8
通常情況下,使用df.loc()
時(shí),只要傳入行列名即可返回要查詢的值,比如:我們需要查詢 2020/7/28 的天氣,可以通過:df.loc['2020-7-28','天氣']
來查詢,然后我們會發(fā)現(xiàn)報(bào)錯:KeyError: '2020-7-28'
; 這里報(bào)錯的原因是:我們在讀取數(shù)據(jù)的時(shí)候,沒有將日期設(shè)置為索引值;所以我們需要這樣做:
方法一:在讀入數(shù)據(jù)的時(shí)候設(shè)置index
import pandas as pd data_path_2=r"E:\VSCODE\2_numpy_pandas\pandas\data_select.csv" df=pd.read_csv(data_path_2,encoding='gbk',index_col='Date') # 在這里設(shè)置index_col df=df.dropna(how="all",axis='rows') print(df.loc['2020/7/28','天氣'])
方法二:讀入數(shù)據(jù)后,設(shè)置index
import pandas as pd data_path_2=r"E:\VSCODE\2_numpy_pandas\pandas\data_select.csv" df=pd.read_csv(data_path_2,encoding='gbk') df=df.dropna(how="all",axis='rows') df = df.set_index(['Date']) # 設(shè)置index print(df.loc['2020/7/28','天氣'])
要求:需要查詢 2020/7/28 ,29,30 三天的天氣
df.loc[['2020/7/28','2020/7/29','2020/7/30'],'天氣']
要求:需要查詢 2020/7/28 ,29,30 三天的天氣,最高溫度,最低溫度
df.loc[['2020/7/28','2020/7/29','2020/7/30'],['天氣','高溫','低溫']]
可以使用 : 來查詢區(qū)間內(nèi)的結(jié)果,行與列均可以使用,舉例如下:
要求:查詢2020/7/28 ~ 2020/8/3 的所有天氣情況;
df.loc['2020/7/28':'2020/8/3','天氣':'風(fēng)速']
要求:查詢最低溫度大于22度的天氣;
df.loc[df['低溫']>22,:] # 后面的冒號指所有的列
要求:多條件查詢,查詢低溫小于22℃,高溫大于23℃,天氣為晴的天氣;
df.loc[(df['低溫']<22) & (df['高溫']>23) & (df['天氣']=='晴'),:]
要求:查詢7月份的晴天
方法一:使用上面的條件查詢的方法
df.loc[(df.index.str.startswith('2020/7') & (df['天氣']=='晴'))]
方法二:使用函數(shù)查詢的方法
def func(df): return df.index.str.startswith('2020/7') & (df['天氣']=='晴') df.loc[func,:]
到此,關(guān)于“Pandas數(shù)據(jù)查詢方法df.loc()怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!