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
广告