首頁技術(shù)文章正文

Pandas算術(shù)運算和數(shù)據(jù)對齊

更新時間:2021-07-30 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

Pandas執(zhí)行算術(shù)運算時,會先按照索引進行對齊,對齊以后再進行相應(yīng)的運算,沒有對齊的位置會用NaN進行補齊。其中,Series是按行索引對齊的,DataFrame是按行索引、列索引對齊的。

假設(shè)有兩個Series對象,創(chuàng)建它們的示例代碼如下。

In [45]: obj_one = pd.Series(range(10, 13), index=range(3)) 
         obj_one 
Out[45]: 
0  10
1  11
2  12
dtype: int64
In [46]: obj_two = pd.Series(range(20, 25), index=range(5))
         obj_two
Out[46]: 
0  20
1  21
2  22
3  23
4  24
dtype: int32
上述示例中創(chuàng)建了兩個Series對象:obj_one和obj_two,從輸出結(jié)果可以看出,obj_one比obj_two少兩行數(shù)據(jù)。

如果要對obj_one與obj_two進行加法運算,則會將它們按照索引先進行對齊,對齊的位置進行加法運算,沒有對齊的位置使用NAN值進行填充,具體代碼如下。

In [47]: obj_one + obj_two  # 執(zhí)行相加運算
Out[47]: 
0  30.0
1  32.0
2  34.0
3   NaN
4   NaN
dtype: float64

如果希望不使用NAN填充缺失數(shù)據(jù),則可以在調(diào)用add方法時提供fill_value參數(shù)的值,fill_value將會使用對象中存在的數(shù)據(jù)進行補充,具體示例代碼如下。

In [48]: obj_one.add(obj_two, fill_value = 0)  # 執(zhí)行加法運算,補充缺失值
Out[48]: 
0  30.0
1  32.0
2  34.0
3  23.0
4  24.0
dtype: float64

當(dāng)然其他的算術(shù)運算也是類似的,這里就不再過多贅述了。





猜你喜歡:

為什么要進行Pandas數(shù)據(jù)預(yù)處理?

在數(shù)據(jù)處理中哪些場景可以使用Spark?

用3行代碼讓Python數(shù)據(jù)處理腳本獲得4倍提速

黑馬程序員python+大數(shù)據(jù)培訓(xùn)

分享到:
在線咨詢 我要報名
和我們在線交談!