Python Pandas - 數列物件的算術運算



Pandas Series是主要的 資料結構之一,它儲存一維標記資料。資料可以是任何型別,例如整數、浮點數或字串。使用Pandas Series的主要優點之一是能夠以向量化方式執行算術運算。這意味著對Series的算術運算無需手動迴圈遍歷元素。

在本教程中,我們將學習如何將加法(+)、減法(-)、乘法(*)和除法(/)等算術運算應用於單個Series或兩個Series物件之間。

對Series與標量值的算術運算

Pandas Series物件的算術運算可以直接應用於整個Series元素,這意味著該運算將逐元素地對所有值執行。這與NumPy陣列的操作方式非常相似。

以下是Pandas Series中常用算術運算的列表:

運算 示例 描述
加法 s + 2 將2加到每個元素
減法 s - 2 從每個元素中減去2
乘法 s * 2 將每個元素乘以2
除法 s / 2 將每個元素除以2
冪運算 s ** 2 將每個元素的冪提升到2
取模 s % 2 求除以2的餘數
地板除 s // 2 除法並向下取整

示例

以下示例演示瞭如何將所有算術運算應用於帶有標量值的Series物件。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

# Display the Input Series
print('Input Series\n',s)

# Apply all Arithmetic Operation and Display the Results
print('\nAddition:\n',s+2)
print('\nSubtraction:\n', s-2)
print('\nMultiplication:\n', s * 2)
print('\nDivision:\n', s/2)
print('\nExponentiation:\n', s**2)
print('\nModulus:\n', s%2)
print('\nFloor Division:\n', s//2)

以下是上述程式碼的輸出:

Input Series
 a    1
b    2
c    3
d    4
e    5
dtype: int64

Addition:
 a    3
b    4
c    5
d    6
e    7
dtype: int64

Subtraction:
 a   -1
b    0
c    1
d    2
e    3
dtype: int64

Multiplication:
 a     2
b     4
c     6
d     8
e    10
dtype: int64

Division:
 a    0.5
b    1.0
c    1.5
d    2.0
e    2.5
dtype: float64

Exponentiation:
 a     1
b     4
c     9
d    16
e    25
dtype: int64

Modulus:
 a    1
b    0
c    1
d    0
e    1
dtype: int64

Floor Division:
 a    0
b    1
c    1
d    2
e    2
dtype: int64

兩個Series之間的算術運算

您可以在兩個Series物件之間執行算術運算。Pandas會自動根據索引標籤對齊資料。如果其中一個Series物件沒有索引,而另一個有索引,則該索引的結果值將為NaN。

示例

此示例演示了對兩個Series物件應用算術運算。

import pandas as pd
s1 = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
s2 = pd.Series([9, 8, 6, 5], index=['x','a','b','c'])

# Apply all Arithmetic Operations and Display the Results
print('\nAddition:\n',s1+s2)
print('\nSubtraction:\n', s1-s2)
print('\nMultiplication:\n', s1 * s2)
print('\nDivision:\n', s1/s2)

以下是上述程式碼的輸出:

Addition:
 a    9.0
b    8.0
c    8.0
d    NaN
e    NaN
x    NaN
dtype: float64

Subtraction:
 a   -7.0
b   -4.0
c   -2.0
d    NaN
e    NaN
x    NaN
dtype: float64

Multiplication:
 a     8.0
b    12.0
c    15.0
d     NaN
e     NaN
x     NaN
dtype: float64

Division:
 a    0.125000
b    0.333333
c    0.600000
d         NaN
e         NaN
x         NaN
dtype: float64
廣告