如何通过处理 None 值来添加两个 pandas Series 对象?

pandasserver side programmingprogramming更新于 2025/4/5 12:07:17

在 pandas Series 功能中,我们有一个名为 add() 的函数,用于将一个系列对象与另一个系列对象相加。它还用于添加具有整数值和 Python 列表的 Series 对象。

series.add() 方法有一个 fill_values 参数。它用于通过将浮点值替换为此参数来有效处理缺失值。默认情况下,此 fill_value 参数的输入为 Nan。

示例

import pandas as pd
import numpy as np

sr1 = pd.Series(np.arange(1,6))
print('Series Object 1:',sr1, sep='
') sr2 = pd.Series(np.random.randint(10,20,4)) print('Series Object 2:',sr2, sep='
') result = sr1.add(sr2) print('Resultant series object with the addition of two Series:', result)

解释

我们有两个系列对象 sr1 和 sr2,它们分别使用 NumPy arange 和 random 函数创建。sr1 对象有 5 个元素,sr2 只有 4 个元素。

这两个系列对象的长度不同。我们使用 series.add() 函数添加这两个对象。

输出

Series Object 1:
0   1
1   2
2   3
3   4
4   5
dtype: int32
Series Object 2:
0  15
1  12
2  16
3  12
dtype: int32
Resultant series object with addition of two Series: 0 16.0
1   14.0
2   19.0
3   16.0
4    NaN
dtype: float64

解释

series.add() 函数的输出可以在上述代码块的最后几行中看到。我们可以在结果输出中看到 NaN 值,这是因为两个系列的长度不同。

示例

result = sr1.add(sr2, fill_value=0)

print('使用 fill_value 添加两个系列的结果系列对象:', result)

解释

为了删除上一个输出中的 NaN 值,我们在这里将‘0’值替换为 fill_value 参数。

输出

使用 fill_value 添加两个系列的结果系列对象:
0  16.0
1  14.0
2  19.0
3  16.0
4   5.0
dtype: float64

我们可以看到,此输出中没有 NaN 值,这是由于此 fill_value 参数造成的。在此示例中,我们将 0 作为此 fill_value 参数的输入,以便它将用 0 添加缺失值。

示例

import pandas as pd
import numpy as np

sr1 = pd.Series({'a':1,'b':2,'c':3})
print('Series Object 1:',sr1)

sr2 = pd.Series({'c':7,'d':8,'e':9})

print('Series Object 2:',sr2)

result1 = sr1.add(sr2)

print('Resultant series object without Fill_value:', result1)

result2 = sr1.add(sr2, fill_value= 0)

print('Resultant series object with Fill_value 0:', result2)

解释

在下面的例子中,我们使用具有不同索引标签的 Python 字典创建了两个 Pandas 系列对象。

并且我们通过替换 fill_value 参数和不违背参数输入的方式,以两种方式在这两个系列对象之间完成了加法运算。

输出

Series Object 1:
a   1
b   2
c   3
dtype: int64

Series Object 2:
c   7
d   8
e   9
dtype: int64

Resultant series object without Fill_value:
a   NaN
b   NaN
c  10.0
d   NaN
e   NaN
dtype: float64

Resultant series object with Fill_value 0:
a   1.0
b   2.0
c  10.0
d   8.0
e   9.0
dtype: float64

两个系列之间的加法是基于索引标签进行的,如果索引不相同,则 add 函数将通过替换 NaN 自动匹配那些缺失的索引,然后执行加法运算。这就是我们可以在 add() 函数的结果输出中看到 NaN 值的原因。


相关文章