1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Pandas知識點-邏輯運算

        共 1593字,需瀏覽 4分鐘

         ·

        2021-04-25 13:43



        邏輯運算在代碼中基本是必不可少的,Pandas的邏輯運算與Python基礎(chǔ)語法中的邏輯運算存在一些差異,所以本文介紹Pandas中的邏輯運算符和邏輯運算。


        本文使用的數(shù)據(jù)來源于網(wǎng)易財經(jīng),具體下載方法可以參考:Pandas知識點-DataFrame數(shù)據(jù)結(jié)構(gòu)介紹


        一、數(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
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日韩精品在线视频 | 69AV天堂 | 国产美女全裸网站 | 国产精品无码专区 | 国产精品av在线播放 | 男生操女生免费视频网站 | 夜夜精品视频一区二区 | 亚洲AV成人一区 | 欧美夜夜爱| 欧美性爱无码免费视频 |