91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pandas?Query方法如何使用

發布時間:2022-07-27 09:57:13 來源:億速云 閱讀:149 作者:iii 欄目:開發技術

這篇文章主要講解了“Pandas Query方法如何使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Pandas Query方法如何使用”吧!

    獲取數據

    載入數據

    下面文末就可以使用 read_csv 來載入數據了

    import pandas as pd
    df = pd.read_csv('titanic_train.csv')
    df

    數據集有 891 行和 12 列:

    Pandas?Query方法如何使用

    使用 query() 方法

    讓我們找出從南安普敦 (‘S’) 出發的所有乘客,可以使用方括號索引,代碼如下所示:

    df[df['Embarked'] == 'S']

    如果使用 query() 方法,那么看起來更整潔:

    df.query('Embarked == "S"')

    與 SQL 比較,則 query() 方法中的表達式類似于 SQL 中的 WHERE 語句。

    結果是一個 DataFrame,其中包含所有從南安普敦出發的乘客:

    Pandas?Query方法如何使用

    query() 方法接受字符串作為查詢條件串,因此,如果要查詢字符串列,則需要確保字符串被正確括起來:

    Pandas?Query方法如何使用

    很多時候,我們可能希望將變量值傳遞到查詢字符串中,可以使用 @ 字符執行此操作:

    embarked = 'S'
    df.query('Embarked == @embarked')

    或者也可以使用 f 字符串,如下所示:

    df.query(f'Embarked == "{embarked}"')

    就個人而言,我認為與 f-string 方式相比,使用 @ 字符更簡單、更優雅,你認為呢

    如果列名中有空格,可以使用反引號 (``) 將列名括起來:

    df.query('`Embarked On` == @embarked')

    以 In-place 的方式執行 query 方法

    當使用 query() 方法執行查詢時,該方法將結果作為 DataFrame 返回,原始 DataFrame 保持不變。如果要更新原始 DataFrame,需要使用 inplace 參數,如下所示:

    df.query('Embarked == "S"', inplace=True)

    當 inplace 設置為 True 時,query() 方法將不會返回任何值,原始 DataFrame 被修改。

    指定多個條件查詢

    我們可以在查詢中指定多個條件,例如假設我想獲取所有從南安普敦 (‘S’) 或瑟堡 (‘C’) 出發的乘客。如果使用方括號索引,這種語法很快變得非常笨拙:

    df[(df['Embarked'] == 'S') | (df['Embarked'] == 'C')]

    我們注意到,在這里我們需要在查詢的條件下引用 DataFrame 兩次,而使用 query() 方法,就簡潔多了:

    df.query('Embarked in ("S","C")')

    查詢結果如下

    Pandas?Query方法如何使用

    如果要查找所有不是從南安普敦(‘S’)或瑟堡(‘C’)出發的乘客,可以在 Pandas 中使用否定運算符 (~):

    df[~((df['Embarked'] == 'S') | (df['Embarked'] == 'C'))]

    使用 query() 方法,只需要使用 not 運算符:

    df.query('Embarked not in ("S","C")')

    以下輸出顯示了從皇后鎮 (‘Q’) 出發的乘客以及缺失值的乘客:

    Pandas?Query方法如何使用

    說到缺失值,該怎么查詢缺失值呢,當應用于列名時,我們可以使用 isnull() 方法查找缺失值:

    df.query('Embarked.isnull()')

    現在將顯示 Embarked 列中缺少值的行:

    Pandas?Query方法如何使用

    其實可以直接在列名上調用各種 Series 方法:

    df.query('Name.str.len() < 20')  # find passengers whose name is 
                                     # less than 20 characters
    df.query(f'Ticket.str.startswith("A")') # find all passengers whose 
                                            # ticket starts with A

    比較數值列

    我們還可以輕松比較數字列:

    df.query('Fare > 50')

    以下輸出顯示了票價大于 50 的所有行:

    Pandas?Query方法如何使用

    比較多個列

    還可以使用 and、or 和 not 運算符比較多個列,以下語句檢索 Fare 大于 50 和 Age 大于 30 的所有行:

    df.query('Fare > 50 and Age > 30')

    下面是查詢結果

    Pandas?Query方法如何使用

    查詢索引

    通常當我們想根據索引值檢索行時,可以使用 loc[] 索引器,如下所示:

    df.loc[[1],:]  # get the row whose index is 1; return as a dataframe

    但是使用 query() 方法,使得事情變得更加直觀:

    df.query('index==1')

    結果如下

    Pandas?Query方法如何使用

    如果要檢索索引值小于 5 的所有行:

    df.query('index<5')

    結果如下

    Pandas?Query方法如何使用

    我們還可以指定索引值的范圍:

    df.query('6 <= index < 20')

    結果如下

    Pandas?Query方法如何使用

    比較多列

    我們還可以比較列之間的值,例如以下語句檢索 Parch 值大于 SibSp 值的所有行:

    df.query('Parch > SibSp')

    結果如下

    Pandas?Query方法如何使用

    感謝各位的閱讀,以上就是“Pandas Query方法如何使用”的內容了,經過本文的學習后,相信大家對Pandas Query方法如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    乐山市| 美姑县| 康平县| 二连浩特市| 兴国县| 资溪县| 长汀县| 元氏县| 米易县| 汾西县| 马山县| 兰坪| 阳西县| 玉龙| 呼伦贝尔市| 房山区| 德州市| 高平市| 安福县| 丹巴县| 谢通门县| 嫩江县| 肥城市| 上犹县| 会同县| 织金县| 长顺县| 五莲县| 乌兰浩特市| 营口市| 西宁市| 廉江市| 涿鹿县| 泾阳县| 大余县| 关岭| 南澳县| 望都县| 乐业县| 太谷县| 孝感市|