使用 series.eq() 方法比较两个 Series 对象时,如何处理空值?
Pandas 的 series.eq() 方法用于将给定 Series 的每个元素与传递的参数(另一个 Series 对象或标量值)进行比较。对于每个等于另一个 Series 对象(传递的 Series 对象)中元素的元素,它将返回 True。
eq() 方法的输出是一个包含布尔值的 Series,它执行逐元素比较操作,这与调用者 Series = 另一个 Series 相同。在结果 Series 中,True 值表示另一个 Series 对象中存在等效值,而 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() 方法用指定的 fill_value(即 20)替换缺失值。之后,它将在被调用 Series 对象和传递的对象之间执行比较操作。
示例 2
与前面的示例相同,这里 eq() 方法将比较两个 Series 对象,并用 fill_value 参数指定的值 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() 方法返回一个包含布尔值的新 Series 对象。在两个 Series 对象中的值相等的地方返回 True 值。此外,我们还可以看到空值被替换为 5,并且使用该值 5 进行了比较。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP