import pandas as pd # 0 讀取數據 df = pd.read_csv("文件路徑")#例子是北京一年的天氣情況 df.head()#查看表頭 # 設定索引為日期,方便按日期進行查詢 df.set_index('ymd',inplace = True) print("df.index")#查詢索引是否修改成功 # 替換掉溫度的后綴C df.loc[:,"bWenDu"] = df["bWenDu"].str.replace("C","").astype("int32") df.loc[:,"yWenDu"] = df["yWenDu"].str.replace("C","").astype("int32") # 1 使用單個label值查詢數據 # 行或列,都可以只傳入單值,實現精確匹配 df.loc["2018-01-06",'bWenDu'] #得到單個值 df.loc["2018-06-06",["bWenDu","yWenDu"]]#得到一個Series # 2 使用值列表批量查詢 df.loc[['2018-01-06','2018-06-06','2018-01-16'],'bWenDu'] #得到Series df.loc[['2018-01-06','2018-06-06','2018-01-16'],["bWenDu","yWenDu"]]#得到DataFrame # 3 使用數值區間進行范圍查詢(既包含開始,也包含結束) df.loc['2018-01-06':'2018-01-16','bWenDu']# 行index按區間查詢 df.loc['2018-01-06','bWenDu':'fengxiang']#列index按區間查詢 df.loc['2018-01-06':'2018-01-16','bWenDu':'fengxiang'] # 4 使用條件表達式查詢(bool列表的長度等於行數或列數) df.loc[df.['yWenDu']<-10,:] #簡單條件查詢,最低溫度低於-10的列表 # 復雜條件查詢,查一下想要的天氣 df.loc[(df.['bWenDu']<=30)&(df.['yWenDu']>=15)&(df.['tianqi']=='晴')&(df['aqilevel']==1),:] # 5 調用函數查詢 # 直接寫lambda表達式 df.loc[lambda df : (df.['bWenDu']<=30)&(df.[yWenDu]>=15),:] # 自己編寫函數,查詢9月份,空氣質量好的數據 def query_my_datas(df): return df.index.str.startswith('2018-09')&df['tianqi'] == '晴' df.loc[query_my_datas,:]