Pandas知識點-邏輯運算
共
1593字,需瀏覽
4分鐘
·
2021-04-25 13:43

邏輯運算在代碼中基本是必不可少的,Pandas的邏輯運算與Python基礎(chǔ)語法中的邏輯運算存在一些差異,所以本文介紹Pandas中的邏輯運算符和邏輯運算。
一、數(shù)據(jù)準備
數(shù)據(jù)文件是600519.csv,將此文件放到代碼同級目錄下,從文件中讀取出數(shù)據(jù)。
為了使數(shù)據(jù)簡潔一點,刪除了數(shù)據(jù)中的部分列,并設(shè)置“日期”為索引。

讀取的原始數(shù)據(jù)如上圖,本文使用這些數(shù)據(jù)來介紹Pandas中的邏輯運算。
二、Pandas中的邏輯運算符
1. 邏輯語句

在Pandas中,將Series與數(shù)值進行比較,會得到一個與自身形狀相同且全為布爾值的Series,每個位置的布爾值對應(yīng)該位置的比較結(jié)果。
這種進行比較的代碼,返回值是布爾值,是一種布爾表達式,也可以被稱為邏輯語句,只要代碼返回的結(jié)果是布爾值,都可以把代碼當(dāng)成邏輯語句。

根據(jù)邏輯語句的布爾值,可以用來對數(shù)據(jù)進行篩選,按我們的需要從大量數(shù)據(jù)中過濾出目標數(shù)據(jù)。
除了直接的比較,Pandas中有很多函數(shù)都會返回布爾值,如all(),any(),isna()等對整個DataFrame或Series的判斷結(jié)果,eq(),ne(),lt(),gt()等比較函數(shù)的結(jié)果,都是布爾值。
邏輯語句是為邏輯運算服務(wù)的,可以直接作為判斷條件。在復(fù)雜的邏輯關(guān)系中,需要使用復(fù)合邏輯運算,用邏輯運算符來連接多個邏輯語句,復(fù)合邏輯運算包含:邏輯與、邏輯或、邏輯非。
2. 邏輯與

Pandas中用符號 & 表示邏輯與,連接兩個邏輯語句,同時為真才為真。
在Python基本語法中,使用 and 表示邏輯與,但是Pandas中只能用 & ,不能用and,會報模糊錯誤。
3. 邏輯或

Pandas中用符號 | 表示邏輯或,連接兩個邏輯語句,只要其中一個為真就為真。
在Python基本語法中,使用 or 表示邏輯或,但是Pandas中只能用 | ,不能用or。
4. 邏輯非

Pandas中用符號 ~ (鍵盤左上角)表示邏輯非,對邏輯語句取反。
在Python基本語法中,使用 not 表示邏輯非,但是Pandas中只能用 ~ ,不能用not。
Python中的邏輯運算關(guān)鍵字(and,or,not)除了可以連接布爾表達式,還可以連接其他的表達式,如字符串等。(and和or可以不計算出右邊表達式的布爾值就做出判斷,也可以將其中一個表達式作為返回值。另外,Python可以將其他值作為布爾判斷條件,如非空字符串表示真。)
而Pandas中,邏輯運算符(&, |, ~)只能用于連接布爾表達式,不能處理其他的表達式。另外,在Python的基礎(chǔ)語法中,&, |, ~是位運算符,分別表示按位與運算、按位或運算、按位取反運算。
三、query()函數(shù)

邏輯運算是為了方便篩選和過濾數(shù)據(jù),使用query()函數(shù)可以讓邏輯語句更簡潔,在query()函數(shù)中傳入查詢字符串,邏輯語句就在查詢字符串中。
在查詢字符串中,進行條件判斷不是用列來判斷,而是直接用列索引來判斷。當(dāng)多個條件并列時,因為邏輯運算符的優(yōu)先級高于比較運算符的優(yōu)先級,每一個邏輯語句的括號也可以省略。
以上就是Pandas中的邏輯運算介紹,重點是與Python基本語法的區(qū)別,不能用錯,而通過query()函數(shù)可以使邏輯表達式更加簡潔。
如果需要本文代碼和數(shù)據(jù),可以點擊關(guān)注公眾號“Python碎片”,然后在后臺回復(fù)“pandas08”關(guān)鍵字獲取完整代碼和數(shù)據(jù)。
瀏覽
75點贊
評論
收藏
分享

手機掃一掃分享
分享
舉報
點贊
評論
收藏
分享

手機掃一掃分享
分享
舉報
日韩精品在线视频
|
69AV天堂
|
国产美女全裸网站
|
国产精品无码专区
|
国产精品av在线播放
|
男生操女生免费视频网站
|
夜夜精品视频一区二区
|
亚洲AV成人一区
|
欧美夜夜爱|
欧美性爱无码免费视频
|