<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Pandas知識點(diǎn)-邏輯運(yùn)算

          共 1593字,需瀏覽 4分鐘

           ·

          2021-04-25 13:43



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


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


          一、數(shù)據(jù)準(zhǔn)備


          數(shù)據(jù)文件是600519.csv,將此文件放到代碼同級目錄下,從文件中讀取出數(shù)據(jù)。


          為了使數(shù)據(jù)簡潔一點(diǎn),刪除了數(shù)據(jù)中的部分列,并設(shè)置“日期”為索引。



          讀取的原始數(shù)據(jù)如上圖,本文使用這些數(shù)據(jù)來介紹Pandas中的邏輯運(yùn)算。


          二、Pandas中的邏輯運(yùn)算符


          1. 邏輯語句



          在Pandas中,將Series與數(shù)值進(jìn)行比較,會得到一個與自身形狀相同且全為布爾值的Series,每個位置的布爾值對應(yīng)該位置的比較結(jié)果。


          這種進(jìn)行比較的代碼,返回值是布爾值,是一種布爾表達(dá)式,也可以被稱為邏輯語句,只要代碼返回的結(jié)果是布爾值,都可以把代碼當(dāng)成邏輯語句。



          根據(jù)邏輯語句的布爾值,可以用來對數(shù)據(jù)進(jìn)行篩選,按我們的需要從大量數(shù)據(jù)中過濾出目標(biāo)數(shù)據(jù)。


          除了直接的比較,Pandas中有很多函數(shù)都會返回布爾值,如all(),any(),isna()等對整個DataFrame或Series的判斷結(jié)果,eq(),ne(),lt(),gt()等比較函數(shù)的結(jié)果,都是布爾值。


          邏輯語句是為邏輯運(yùn)算服務(wù)的,可以直接作為判斷條件。在復(fù)雜的邏輯關(guān)系中,需要使用復(fù)合邏輯運(yùn)算,用邏輯運(yùn)算符來連接多個邏輯語句,復(fù)合邏輯運(yùn)算包含:邏輯與、邏輯或、邏輯非。


          2. 邏輯與



          Pandas中用符號 & 表示邏輯與,連接兩個邏輯語句,同時(shí)為真才為真。


          在Python基本語法中,使用 and 表示邏輯與,但是Pandas中只能用 & ,不能用and,會報(bào)模糊錯誤。


          3. 邏輯或



          Pandas中用符號 | 表示邏輯或,連接兩個邏輯語句,只要其中一個為真就為真。


          在Python基本語法中,使用 or 表示邏輯或,但是Pandas中只能用 | ,不能用or。


          4. 邏輯非



          Pandas中用符號 ~ (鍵盤左上角)表示邏輯非,對邏輯語句取反。


          在Python基本語法中,使用 not 表示邏輯非,但是Pandas中只能用 ~ ,不能用not。


          Python中的邏輯運(yùn)算關(guān)鍵字(and,or,not)除了可以連接布爾表達(dá)式,還可以連接其他的表達(dá)式,如字符串等。(and和or可以不計(jì)算出右邊表達(dá)式的布爾值就做出判斷,也可以將其中一個表達(dá)式作為返回值。另外,Python可以將其他值作為布爾判斷條件,如非空字符串表示真。)


          而Pandas中,邏輯運(yùn)算符(&, |, ~)只能用于連接布爾表達(dá)式,不能處理其他的表達(dá)式。另外,在Python的基礎(chǔ)語法中,&, |, ~是位運(yùn)算符,分別表示按位與運(yùn)算、按位或運(yùn)算、按位取反運(yùn)算。


          三、query()函數(shù)



          邏輯運(yùn)算是為了方便篩選和過濾數(shù)據(jù),使用query()函數(shù)可以讓邏輯語句更簡潔,在query()函數(shù)中傳入查詢字符串,邏輯語句就在查詢字符串中。


          在查詢字符串中,進(jìn)行條件判斷不是用列來判斷,而是直接用列索引來判斷。當(dāng)多個條件并列時(shí),因?yàn)檫壿嬤\(yùn)算符的優(yōu)先級高于比較運(yùn)算符的優(yōu)先級,每一個邏輯語句的括號也可以省略。


          以上就是Pandas中的邏輯運(yùn)算介紹,重點(diǎn)是與Python基本語法的區(qū)別,不能用錯,而通過query()函數(shù)可以使邏輯表達(dá)式更加簡潔。


          如果需要本文代碼和數(shù)據(jù),可以點(diǎn)擊關(guān)注公眾號“Python碎片”,然后在后臺回復(fù)“pandas08”關(guān)鍵字獲取完整代碼和數(shù)據(jù)。


          瀏覽 75
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91中文字幕在线 | 97自拍| 台湾无码精品 | 中国 免费XXXX18在线观看 | 一区二区三区色欲 |