pandas series.equals() 方法如何处理空值?
pandasserver side programmingprogramming更新于 2025/5/21 15:07:17
series 对象中缺少值的情况很常见,如果要比较该类型的 series 对象,则普通比较不起作用,因为 nan != nan,在这种情况下,我们可以使用 equals() 方法。equals() 方法认为位于同一位置的 Nan 相等。
pandas series.equals() 方法的基本操作用于比较两个 series 是否相等。如果两个系列具有相同的元素和形状,则返回 True,如果两个系列不相等,则返回 False。
示例 1
在下面的示例中,两个系列对象 series1 和 series2 应用于 equals() 方法以比较相等性。
# 导入 pandas 包
import pandas as pd
import numpy as np
# 创建 pandas Series1
series1 = pd.Series([67, 18, np.nan, 50, 39])
print("First series object:",series1)
# 创建 pandas Series2
series2 = pd.Series([67, 18, np.nan, 50, 39])
print("second series object:",series2)
result = series1.equals(series2)
print("Result:", result)
解释
由于系列对象完全相似,并且在同一位置的两个系列对象中存在 nan 值。
输出
输出如下 −
First series object: 0 67.0 1 18.0 2 NaN 3 50.0 4 39.0 dtype: float64 Second series object: 0 67.0 1 18.0 2 NaN 3 50.0 4 39.0 dtype: float64 Result: True
此处两个系列对象完全相同,数据类型相同,因此 equals() 方法返回 True。此外,您可以看到,如果 NaN 出现在相同位置,则它们被视为相等。
示例 2
在以下示例中,通过应用 equals() 方法验证两个系列对象 series1 和 series2 是否相等。
import pandas as pd
import numpy as np
# create pandas Series1
series1 = pd.Series([92, 68, 65, np.nan])
print("First series object:",series1)
# create pandas Series2
series2 = pd.Series(['92', '68', '65', np.nan])
print("second series object:",series2)
result = series1.equals(series2)
print("Result :", result)
解释
这里的系列对象类似,但是元素的数据类型不同。
输出
输出如下所示 −
First series object: 0 92.0 1 68.0 2 65.0 3 NaN dtype: float64 Second series object: 0 92 1 68 2 65 3 NaN dtype: object Result: False
对于上面给出的示例,相等函数 equals() 返回 False。因为两个系列对象中元素的数据类型不一样。

