<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知識點-算術(shù)運算函數(shù)

          共 2932字,需瀏覽 6分鐘

           ·

          2021-04-25 13:43



          本文介紹Pandas中的算術(shù)運算函數(shù)。


          算術(shù)運算是最基本的運算,看起來很簡單,但也有一些需要注意的地方,本文中會依次介紹。


          一、Pandas算術(shù)運算函數(shù)介紹


          基本的算術(shù)運算是四則運算(加、減、乘、除)和乘方等。Pandas中都實現(xiàn)了對應(yīng)的算術(shù)運算函數(shù),如add()、sub()、mul()、div()等,常用的算術(shù)運算函數(shù)見下表。


          算術(shù)運算函數(shù)用法介紹(以DataFrame為例)
          描述
          add()df1.add(df2)df1與df2進行加法運算
          radd()
          df1.radd(df2)
          df2與df1進行加法運算
          sub()
          df1.sub(df2)
          用df1減df2
          rsub()
          df1.rsub(df2)
          用df2減df1
          mul()
          df1.mul(df2)
          df1與df2進行乘法運算
          rmul()
          df1.rmul(df2)
          df2與df1進行乘法運算
          div()
          df1.div(df2)
          用df1除df2
          rdiv()
          df1.rdiv(df2)
          用df2除df1
          truediv()
          df1.truediv(df2)
          用df1除df2
          rtruediv()
          df1.rtruediv(df2)
          用df2除df1
          floordiv()
          df1.floordiv(df2)
          用df1除df2,取整除
          rfloordiv()
          df1.rfloordiv(df2)
          用df2除df1,取整除
          mod()df1.mod(df2)
          用df1除df2,取余數(shù)
          rmod()df1.rmod(df2)
          用df2除df1,取余數(shù)
          pow()df1.pow(df2)
          計算df1的df2次方,df1^df2
          rpow()df1.rpow(df2)
          計算df2的df1次方,df2^df1


          在Pandas中,這些函數(shù)的用法和運算規(guī)則都相同,運算結(jié)果的數(shù)據(jù)結(jié)構(gòu)也都相同。所以本文中只以加法運算函數(shù)add()作為例子,使用其他函數(shù)時將函數(shù)名進行替換即可。如果有特殊的地方,會單獨說明。


          二、DataFrame與數(shù)字的算術(shù)運算



          DataFrame與數(shù)字相加時,會將DataFrame中的每一個數(shù)都與指定數(shù)字相加,返回一個新的DataFrame(不是修改原DataFrame,而是返回一個新的DataFrame)。


          add()函數(shù)的作用與運算符“+”(加號)的作用一樣,運算結(jié)果也相同。其他算術(shù)運算函數(shù)與加法的用法一樣,也都可以用對應(yīng)的運算符代替。


          在進行除法運算時,如果被除數(shù)是0,得到的結(jié)果可能是inf(表示無窮大,與Python的浮點數(shù)精度有關(guān)),也可能是NaN(空值)。在后面的所有運算中都一樣。


          每一個算術(shù)運算函數(shù)都有一個r字母開頭的對應(yīng)函數(shù),起到的作用是交換運算數(shù)字的位置,如交換兩個加數(shù)的位置、交換被除數(shù)與除數(shù)的位置、交換底數(shù)與指數(shù)的位置。


          三、Series與數(shù)字的算術(shù)運算



          Series與數(shù)字相加時,與DataFrame相同,也是將Series中的每一個數(shù)都與指定數(shù)字相加,返回一個新的Series。


          四、兩個DataFrame算術(shù)運算


          1. 兩個形狀和索引相同的DataFrame進行運算



          兩個DataFrame相加,如果DataFrame的形狀和對應(yīng)的索引都一樣,直接將對應(yīng)位置(按行索引和列索引確定位置)的數(shù)據(jù)相加,得到一個新的DataFrame。


          2. 兩個形狀或索引不一樣的DataFrame進行運算



          兩個DataFrame相加,如果DataFrame的形狀和索引不完全一樣,只會將兩個DataFrame中行索引和列索引對應(yīng)的數(shù)據(jù)相加,生成一個形狀能兼容兩個DataFrame的新DataFrame,在沒有運算結(jié)果的位置填充空值(NaN)。


          當(dāng)且僅當(dāng)兩個DataFrame中都有值時,才會有運算結(jié)果,其他位置的結(jié)果都為空值,運算原理如下圖。



          在運算結(jié)果中有很多空值,如果需要進行空值填充,可以使用fillna()函數(shù)。



          fillna(value): 運算出結(jié)果后,將所有空值的位置都填充成指定值。


          在算術(shù)運算函數(shù)中,可以使用fill_value參數(shù),在運算前先填充數(shù)據(jù)。



          與fillna()函數(shù)不同,使用fill_value參數(shù)是先填充數(shù)據(jù)再進行運算,而fillna()函數(shù)是先運算再對結(jié)果填充,所以兩者的結(jié)果不一樣。


          使用fill_value參數(shù)填充數(shù)據(jù)后再進行運算,如果兩個DataFrame中的數(shù)據(jù)都是填充值,則此位置的結(jié)果為空值,運算原理如下圖。



          五、兩個Series算術(shù)運算


          1. 兩個形狀和索引相同的Series進行運算



          兩個Series相加,如果形狀和索引都一樣,直接將對應(yīng)位置(按行索引確定位置)的數(shù)據(jù)相加,得到一個新的Series。


          2. 兩個形狀或索引不一樣的Series進行運算



          兩個Series相加,如果形狀和索引不完全一樣,只會將行索引對應(yīng)的數(shù)據(jù)相加,生成一個形狀能兼容兩個Series的新Series,在沒有運算結(jié)果的位置填充空值(NaN)。



          可以使用fillna()函數(shù)對運算結(jié)果中的空值進行填充。



          可以使用fill_value參數(shù)先填充數(shù)據(jù)再進行運算。


          與DataFrame不同的是,使用fill_value參數(shù)先填充數(shù)據(jù)再進行運算時,結(jié)果中不會有空值。因為Series是一維數(shù)據(jù),對Series填充時,不存在兩個Series都是填充值的行索引。


          六、DataFrame與Series算術(shù)運算


          1. Series的行索引與DataFrame的列索引相同



          在Series與DataFrame進行算術(shù)運算時,默認(rèn)會將Series看成是一行數(shù)據(jù)(而不是一列),在add()函數(shù)中,axis參數(shù)默認(rèn)為1或'columns'。


          如果Series的索引與DataFrame的列索引相同,會將Series依次與DataFrame中的每一行數(shù)據(jù)進行運算,得到一個新的DataFrame。


          2. Series的行索引與DataFrame的行索引相同



          如果Series的索引與DataFrame的行索引對應(yīng),要使Series按列與DataFrame運算,可以將axis參數(shù)設(shè)置成0或'index',這樣會將Series依次與DataFrame中的每一列數(shù)據(jù)進行運算,得到一個新的DataFrame。


          3. Series的行索引與DataFrame的行索引或列索引不完全相同



          此時,DataFrame與Series的運算原理同兩個DataFrame進行算術(shù)運算,會得到一個形狀能兼容DataFrame和Series的新DataFrame。其中Series可以按行運算,也可以按列運算,取決于axis參數(shù)。



          fillna()函數(shù)的用法也一樣,對運算結(jié)果進行空值填充。


          但是,DataFrame與Series的算術(shù)運算不支持fill_value參數(shù),不能先填充再運算,會報錯。


          以上就是Pandas中的算術(shù)運算函數(shù)介紹,如果需要本文代碼,可以點擊關(guān)注公眾號“Python碎片”,然后在后臺回復(fù)“pandas07”關(guān)鍵字獲取完整代碼。


          瀏覽 130
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  日本做爰乱高潮A片分手的决心 | 777婷婷天堂综合区色吧 | 无码国产精品96久久久久孕妇 | 无码三级 | 黄色以及电影毛片 |