成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Pandas 實用技能,數據篩選 query 函數詳細介紹

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

Pandas 可以說是 在Python數據科學領域應用最為廣泛的工具之一。Pandas是一種高效的數據處理庫,它以 ??dataframe????series?? 為基本數據類型,呈現出類似excel的二維數據。在數據處理過程中,咱們經常會用到數據篩選,Pandas 中提供了數據篩選的多種方法,這里,來給大家分享下 在Pandas中應用 ??query?? 函數來進行數據篩選。??query?? 函數的一般用法如下:

df.query('expression')

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

import pandas as pd
print(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 函數會顯得更加簡潔,如果覺得這個功能不錯,就趕緊用起來吧~~

責任編輯:龐桂玉 來源: AI科技大本營
相關推薦

2011-07-06 11:15:09

ASP.NET

2009-12-10 09:59:49

PHP讀取目錄函數

2011-06-20 09:34:17

優化函數

2011-06-21 11:05:41

內聯函數

2020-10-29 08:35:06

Pandas函數Python

2019-06-12 16:21:52

時間序列PythonPandas

2009-11-09 17:30:20

WCF元數據

2009-12-02 20:15:12

PHP header函

2011-07-15 01:20:58

C指針函數函數指針

2009-06-25 14:59:39

jQuery.exte

2022-11-03 10:28:59

PandasSAC機制

2010-07-30 13:58:20

DB2 實用程序

2020-12-14 13:24:17

PandasSQL數據集

2009-12-11 17:14:43

PHP中文處理函數

2009-02-24 14:27:55

2020-12-14 14:16:34

Pandas數據預處理

2020-08-14 10:57:49

開發技能代碼

2022-07-26 00:25:57

PandasQuery索引器

2010-03-11 11:07:37

Python函數參數

2011-07-20 17:16:50

C++重載函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费在线一区二区三区 | 免费视频久久 | 九九热这里| 97视频在线观看网站 | 国产精品久久久久久久久免费桃花 | 日韩在线高清 | 国产1区| 欧美日韩电影免费观看 | av av在线| 亚洲男女激情 | 精品久久影院 | 午夜资源 | 99爱在线视频 | 亚洲午夜电影 | 精品美女 | 一级黄a| 欧美黑人国产人伦爽爽爽 | 中国一级特黄视频 | 91色视频在线观看 | 在线中文字幕亚洲 | 色综合久久久久 | 免费日韩av | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 亚洲精品电影网在线观看 | 国产亚洲一区精品 | 一级一级毛片免费看 | 日韩成人在线视频 | 国产色片在线 | 九色 在线| 亚洲免费婷婷 | 久久国产精品免费一区二区三区 | 95国产精品 | 久久伦理中文字幕 | 亚洲精品免费在线 | 91久久| 国产成人99av超碰超爽 | 日韩高清电影 | 一级特黄色毛片 | 亚洲国产精品日韩av不卡在线 | 国产一区中文字幕 | 欧美一级在线免费 |