Python Pandas学习之series的二元运算详解

  • Post category:Python

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 值。