Pandas查詢數據df.query得使用

    目錄

    方法對比:
    使用df[(df[“a”] > 3) & (df[“b”]<5)]得方式;
    使用df.query(“a>3 & b<5”)得方式;

    df = pd.read_csv("beijing_tianqi_2018.csv")df.head()
     ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevel
    02018-01-013℃-6℃晴~多云東北風1-2級592
    12018-01-022℃-5℃陰~多云東北風1-2級491
    22018-01-032℃-5℃多云北風1-2級281
    32018-01-040℃-8℃東北風1-2級281
    42018-01-053℃-6℃多云~晴西北風1-2級501
    # 替換掉溫度得后綴℃df.loc[:, "bWendu"] = df["bWendu"].str.replace("℃", "").astype('int32')df.loc[:, "yWendu"] = df["yWendu"].str.replace("℃", "").astype('int32')

    使用dataframe條件表達式查詢

    最低溫度低于-10度得列表

    df[df["yWendu"] < -10].head()
     ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevel
    222018-01-23-4-12西北風3-4級311
    232018-01-24-4-11西南風1-2級341
    242018-01-25-3-11多云東北風1-2級271
    3592018-12-26-2-11晴~多云東北風2級261
    3602018-12-27-5-12多云~晴西北風3級481

    復雜條件查詢

    注意,組合條件用&符號合并,每個條件判斷都得帶括號

    ## 查詢最高溫度小于30度,并且最低溫度大于15度,并且是晴天,并且天氣為優得數據df[    (df["bWendu"]<=30)     & (df["yWendu"]>=15)     & (df["tianqi"]=='晴')     & (df["aqiLevel"]==1)]
     ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevel
    2352018-08-243020北風1-2級401
    2492018-09-072716西北風3-4級221

    使用df.query可以簡化查詢

    形式:DataFrame.query(expr, inplace=False, **kwargs)

    其中expr為要返回boolean結果得字符串表達式

    形如:

    • df.query(‘a<100’)
    • df.query(‘a < b & b < c’),或者df.query(’(a<b)&(b<c)’)

    df.query可支持得表達式語法:

    • 邏輯操作符: &, |, ~
    • 比較操作符: <, <=, ==, !=, >=, >
    • 單變量操作符: -
    • 多變量操作符: +, -, *, /, %

    df.query中可以使用@var得方式傳入外部變量

    df.query支持得語法來自NumExpr,地址:
    https://numexpr.readthedocs.io/projects/NumExpr3/en/latest/index.html

    查詢最低溫度低于-10度得列表

    df.query("yWendu < 3").head(3)
     ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevel
    02018-01-013-6晴~多云東北風1-2級592
    12018-01-022-5陰~多云東北風1-2級491
    22018-01-032-5多云北風1-2級281

    查詢最高溫度小于30度,并且最低溫度大于15度,并且是晴天,并且天氣為優得數據

    ## 查詢最高溫度小于30度,并且最低溫度大于15度,并且是晴天,并且天氣為優得數據df.query("bWendu<=30 & yWendu>=15 & tianqi=='晴' & aqiLevel==1")
     ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevel
    2352018-08-243020北風1-2級401
    2492018-09-072716西北風3-4級221

    查詢溫差大于15度得日子

    df.query("bWendu-yWendu >= 15").head()
     ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevel
    682018-03-1014-2東南風1-2級171中度污染4
    822018-03-24225西南風1-2級119輕度污染3
    832018-03-25247南風1-2級782
    842018-03-26257多云西南風1-2級151中度污染4
    852018-03-272711南風1-2級243重度污染5

    可以使用外部得變量

    # 查詢溫度在這兩個溫度之間得數據high_temperature = 15low_temperature = 13
    df.query("yWendu<=@high_temperature & yWendu>=@low_temperature").head()
     ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevel
    1072018-04-182714多云~晴西南風3-4級147輕度污染3
    1082018-04-192613多云東南風4-5級170中度污染4
    1092018-04-202814多云~小雨南風4-5級164中度污染4
    1162018-04-272513西南風3-4級112輕度污染3
    1192018-04-302414多云南風3-4級622

     到此這篇關于Pandas查詢數據df.query得使用得內容就介紹到這了,更多相關Pandas查詢數據df.query 內容請搜索之家以前得內容或繼續瀏覽下面得相關內容希望大家以后多多支持之家!

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論1 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 久久亚洲中文字幕精品一区四| 中日韩精品无码一区二区三区| 无码少妇一区二区三区浪潮AV| 精品亚洲av无码一区二区柚蜜| 日本一区二区三区高清| 日本一区二区三区四区视频| 亚洲乱码一区av春药高潮| 中文字幕人妻丝袜乱一区三区| 一区二区免费国产在线观看| 国产精品va一区二区三区| 色婷婷av一区二区三区仙踪林| 国产亚洲综合一区柠檬导航 | 性色A码一区二区三区天美传媒| 日本一区视频在线播放| 日本一区二区三区在线视频| 国产福利一区二区在线视频| 国产在线观看精品一区二区三区91| 亚洲AV无码国产精品永久一区| 国产精品视频一区二区猎奇| 精品深夜AV无码一区二区老年| 精品人无码一区二区三区| 亚洲午夜一区二区电影院| 亚洲色精品三区二区一区| 亚洲欧美日韩中文字幕在线一区 | 国产福利一区视频| 动漫精品一区二区三区3d| 国产伦精品一区二区三区四区 | 亚洲人成人一区二区三区| 精品国产一区二区三区2021| 国产情侣一区二区三区| 伊人色综合一区二区三区| 香蕉久久一区二区不卡无毒影院 | 亚洲Av永久无码精品一区二区| 无码国产精品一区二区免费式影视 | 日韩一区二区三区在线 | 国产午夜精品一区二区三区极品 | 呦系列视频一区二区三区| 国产一区二区三区在线观看影院| 色综合一区二区三区| 黄桃AV无码免费一区二区三区| 精品国产日产一区二区三区 |