日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Pandas实用技能,数据筛选query函数详细介绍

發布時間:2024/9/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pandas实用技能,数据筛选query函数详细介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源:Python數據之道 (ID:PyDataLab)

作者:陽哥

Pandas 可以說是 在Python數據科學領域應用最為廣泛的工具之一。

Pandas是一種高效的數據處理庫,它以 dataframe 和 series 為基本數據類型,呈現出類似excel的二維數據。

在數據處理過程中,咱們經常會用到數據篩選,Pandas 中提供了數據篩選的多種方法,這里,陽哥來給大家分享下 在Pandas中應用 query 函數來進行數據篩選。

query 函數的一般用法如下:

df.query('expression')

文中的代碼是在 Jupyter Notebook 中運行的(也可以是其他IDE),本次使用的 Pandas 版本是 1.3.0 版,如下:

import?pandas?as?pdprint(f'pandas?version:?{pd.__version__}')#?pandas?version:?1.3.0rc1

在開始之前,先創建一份數據,供后續使用:

data?=?{'brand':['Python數據之道','價值前瞻','菜鳥數據之道','Python','Java'],'A':[10,2,5,20,16],'B':[4,6,8,12,10],'C':[8,12,18,8,2],'D':[6,18,14,6,12],'till?years':[4,1,1,30,30] }df?=?pd.DataFrame(data=data) df

數據如下:

常用方法

篩選 "brand" 列中值為 "Python數據之道" 的行,如下:

df.query('brand?==?"Python數據之道"')

結果如下:

說明一下,上面代碼中的單引號和雙引號是可以互換的,下面的寫法,其結果也是一樣的:

df.query("?brand?==?'Python數據之道'?")

上面用 query 函數篩選數據,用下面的方法也是可以實現的:

df[df['brand']=="Python數據之道"]

上面是篩選字符串的值,也可以是篩選數字,如下:

通過數學表達式篩選

除了直接通過等于某個值來篩選, query 函數還支持通過數學表達式來進行數據篩選,包括 >、 <、 +、 -、 *、 / 等。

示例如下:

通過變量篩選

在程序比較長的時候,經常會使用變量來作為篩選條件, query 函數在使用變量作為判斷標準時,通過在變量前面添加 @ 符號來實現,示例如下:

#?通過變量來篩選數據,在變量前使用?@?符號即可name?=?'Python數據之道'df.query('brand?==?@name')

列表數據篩選

當需要在某列中篩選多個符合要求的值的時候,可以通過列表(list)來實現,示例如下:

#?需要注意下?雙引號?和?單引號的分開使用df.query('brand?in?["Python數據之道","價值前瞻"]') #?df.query("brand?in?['Python數據之道','價值前瞻']")

多條件篩選

有很多情況下,咱們需要通過多個條件來篩選數據,query 函數支持多種條件的組合,

  • 兩者都需要滿足的并列條件使用符號 &,或 單詞 and

  • 只需要滿足其中之一的條件使用符號 |,或 單詞 or

示例如下:

列名稱有空格的情況

當 dataframe 的列名稱中有空格或其他特殊符號的時候,需要使用 反引號(backtick mark),即鍵盤ESC鍵下面的按鍵(就是鍵盤上第二排第一個按鍵,有‘~’這個符號的按鍵) 來將列名包裹起來,示例如下:

df.query("`till?years`?<?5")

注意,如果使用單引號,將會報錯,如下:

篩選后選取數據列

在數據篩選后,還可以選擇需要的數據列,如下:

小結

以上就是關于 Pandas 中 query 函數的主要內容介紹,應用 query函數進行數據篩選,其語言還是比較簡潔的,尤其是當條件比較多的時候,會顯得更優雅。

比如下面的對比,假設都是三個篩選條件(假設數據量較多,符合的結果也較多):

沒有使用query函數時

df[(df['brand']=="Python數據之道")?&?(df['A']?>2)?&?(df['C']?>4)]

可以看出上面的表達式是比較長的,略顯繁瑣。

使用query函數時

df.query("?brand?==?'Python數據之道'?&?A>2?&?C>4?")

相對來說,使用query 函數會顯得更加簡潔,如果覺得這個功能不錯,就趕緊用起來吧~~


大家讀完順手點下右下角的 ?“在看” ,就是最大的鼓勵和支持了。

——END——

最近發現一個點外賣每頓飯都能少花5-20元的寶藏號。

就是她,↓點擊下面名片關注公眾號↓

進入公眾號點擊菜單領取紅包最低5元,最高56元!

總結

以上是生活随笔為你收集整理的Pandas实用技能,数据筛选query函数详细介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。