Python Pandas学习之 Series 的二元运算详解
什么是 Series
在 Python 的 Pandas 库中,Series 是一种一维数组结构。Series 的构建方式很简单,只需要传递一个数组或者列表即可。所有的元素在存储的时候都会被自动的进行类型推断,这也就意味着你可以在一个 Series 中添加任何类型的数据。Series 的重要特征是自动对齐不同索引的数据。
Series 的二元运算
Series 的二元运算与普通的 Python 数组的运算基本相同,但是有一些细微的差别,我们接下来将详细讲解。
加法和减法操作
在 Series 中进行加减法运算,相同索引的元素会进行运算,并且会保留索引。如果在一个 Series 中没有对应索引的元素,Pandas 会填充 NaN 值。
import pandas as pd
s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s2 = pd.Series([4, 5, 6], index=['b', 'c', 'd'])
s3 = s1 + s2
print(s3)
输出结果为:
a NaN
b 6.0
c 8.0
d NaN
dtype: float64
可以看到,s1 和 s2 中相同索引的元素进行了加法运算,并且保留了索引。而 s1 和 s2 中不同的索引会被填充为 NaN 值。
乘法和除法操作
在 Series 中进行乘除法运算时,Pandas 不会自动填充 NaN 值,而是使用 0 值进行填充。
import pandas as pd
s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s2 = pd.Series([4, 5, 6], index=['a', 'b', 'c'])
s3 = s1 * s2
print(s3)
输出结果为:
a 4
b 10
c 18
dtype: int64
可以看到,s1 和 s2 中相同索引的元素进行了乘法运算,并且保留了索引。另外,s1 和 s2 中不同的索引值是没有进行运算的,同时会被填充为 0 值。
总结
Series 是 Pandas 中的一种一维数组结构,在二元运算时,Pandas 会自动对齐相同索引的元素,并且可以进行加减乘除等运算。需要注意的是,对于不同的索引值,在加和减运算时会自动填充 NaN 值,在乘和除法运算时会自动填充 0 值。