您好,登錄后才能下訂單哦!
這篇文章主要介紹“Pandas數據查詢方法df.loc()怎么使用”,在日常操作中,相信很多人在Pandas數據查詢方法df.loc()怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Pandas數據查詢方法df.loc()怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
pandas常用的查詢函數有:df.loc()
,df.iloc()
,df.where()
,de.query()
;
函數 | 功能 |
---|---|
df.loc() | 根據行,列的標簽進行查詢 |
df.iloc() | 根據行,列的數字位置進行查詢 |
df.where() | 可以根據條件返回滿足需求的結果 |
de.query() | 可以根據條件返回滿足需求的結果 |
以上的幾種方法,都可以實現相同的功能,所以我們能夠熟練的掌握其中一個就好,這里我推薦df.loc()
,因為這個函數可以實現的功能是最多的,一般的應用場景,只要會這個就完全夠用了;
df.loc()
pandas通常碰到的查詢需求,有如下五種:按數值,列表,區間,條件,函數五種方法進行查詢;
使用的數據如下,大家可以復制到本地進行練習:
Date,天氣,高溫,低溫,風向,風速 2020/7/16,晴,26,21,東風,2 2020/7/17,多云,25,21,西風,3 2020/7/20,小雨,24,15,東北風,5 2020/7/21,多云轉晴,22,17,東風,2 2020/7/22,多云,20,16,西風,1 2020/7/23,雷陣雨,20,20,東北風,3 2020/7/24,多云,26,17,西南風,2 2020/7/27,小雨,26,17,東風,3 2020/7/28,多云轉晴,25,24,西風,5 2020/7/29,晴,24,23,東北風,2 2020/7/30,晴,22,20,東風,2 2020/7/31,晴,26,22,東風,3 2020/8/3,晴,25,22,西風,2 2020/8/4,多云轉晴,24,16,東北風,3 2020/8/5,多云,22,14,東風,5 2020/8/6,雷陣雨,20,12,西風,2 2020/8/7,小雨,20,13,東北風,1 2020/8/10,多云轉晴,26,22,西南風,3
讀入數據:
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') # 這里因為我是用Excel保存的csv,所以編碼格式是gbk, 大部分時候使用UTF-8
通常情況下,使用df.loc()
時,只要傳入行列名即可返回要查詢的值,比如:我們需要查詢 2020/7/28 的天氣,可以通過:df.loc['2020-7-28','天氣']
來查詢,然后我們會發現報錯:KeyError: '2020-7-28'
; 這里報錯的原因是:我們在讀取數據的時候,沒有將日期設置為索引值;所以我們需要這樣做:
方法一:在讀入數據的時候設置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') # 在這里設置index_col df=df.dropna(how="all",axis='rows') print(df.loc['2020/7/28','天氣'])
方法二:讀入數據后,設置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']) # 設置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'],['天氣','高溫','低溫']]
可以使用 : 來查詢區間內的結果,行與列均可以使用,舉例如下:
要求:查詢2020/7/28 ~ 2020/8/3 的所有天氣情況;
df.loc['2020/7/28':'2020/8/3','天氣':'風速']
要求:查詢最低溫度大于22度的天氣;
df.loc[df['低溫']>22,:] # 后面的冒號指所有的列
要求:多條件查詢,查詢低溫小于22℃,高溫大于23℃,天氣為晴的天氣;
df.loc[(df['低溫']<22) & (df['高溫']>23) & (df['天氣']=='晴'),:]
要求:查詢7月份的晴天
方法一:使用上面的條件查詢的方法
df.loc[(df.index.str.startswith('2020/7') & (df['天氣']=='晴'))]
方法二:使用函數查詢的方法
def func(df): return df.index.str.startswith('2020/7') & (df['天氣']=='晴') df.loc[func,:]
到此,關于“Pandas數據查詢方法df.loc()怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。