pandas數據查詢(數值、列表、區間、條件、函數)


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,:]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM