Pandas 如何处理使用series.eq()方法比较两个系列对象时的空值
Pandas series.eq()方法用于将给定系列的每个元素与传递的参数(其他系列对象或标量值)进行比较。它会返回对于与其他系列对象(传递的系列对象)中的元素相等的每个元素为True。
eq()方法的输出是一个具有布尔值的系列,并且它执行按元素比较操作,也就是说caller series = other series。在结果系列中,True值表示其他系列对象中的等效值,而False值表示不相等的值。
使用eq()方法处理空值非常简单,只需提供fill_value参数。默认情况下,该参数将对缺失值取None。
示例1
在下面的示例中,我们将看到eq()方法如何处理缺失值。
# importing packages
import pandas as pd
import numpy as np
#create series
sr = pd.Series([np.nan, 76, 20, 51, np.nan, 26, 83, np.nan, 18])
print(sr)
# compare elements with a scalar value 20 and replacing NAN values with 20
result = sr.eq(20, fill_value=20)
print(result)
解释
最初,我们使用整数列表和一些NaN值创建了一个pandas Series。之后,我们使用eq()方法将series对象sr与值20进行比较,并将值20应用于fill_value参数()以处理缺失值。
输出
输出如下所示−
0 NaN
1 76.0
2 20.0
3 51.0
4 NaN
5 26.0
6 83.0
7 NaN
8 18.0
dtype: float64
0 True
1 False
2 True
3 False
4 True
5 False
6 False
7 True
8 False
dtype: bool
首先,eq()方法使用指定的填充值(20)替换缺失的值。之后,它将对调用的序列对象和传递的对象执行比较运算。
示例2
与前一个示例相同,这里的eq()方法将比较两个序列对象,并使用填充值参数指定的值5替换缺失值。
# importing packages
import pandas as pd
import numpy as np
#create series
sr1 = pd.Series([26, np.nan, 18, np.nan, 94, 71, 5, np.nan, 68, 54, 88, 7, np.nan])
print(sr1)
sr2 = pd.Series([26, 29, np.nan, 11, 82, 93, np.nan, 7, 68, 29, 88,
87, np.nan])
print(sr2)
# compare two series objects
result = sr1.eq(sr2, fill_value=5)
print(result)
输出
输出如下:
0 26.0
1 NaN
2 18.0
3 NaN
4 94.0
5 71.0
6 5.0
7 NaN
8 68.0
9 54.0
10 88.0
11 7.0
12 NaN
dtype: float64
0 26.0
1 29.0
2 NaN
3 11.0
4 82.0
5 93.0
6 NaN
7 7.0
8 68.0
9 29.0
10 88.0
11 87.0
12 NaN
dtype: float64
0 True
1 False
2 False
3 False
4 False
5 False
6 True
7 False
8 True
9 False
10 True
11 False
12 False
dtype: bool
上面的输出显示eq()方法返回一个带有布尔值的新系列对象。True值表示两个系列对象中的值相等。此外,我们可以看到空值被替换为5,并使用这个值5进行比较。