Pandas 中 series.equals() 方法如何处理空值?


在 Series 对象中存在缺失值是很常见的,如果您想比较这种类型的 Series 对象,则普通的比较不起作用,因为 nan != nan,在这种情况下,我们可以使用 equals() 方法。equals() 方法认为相同位置的 Nan 相等。

Pandas series.equals() 方法的基本操作用于比较两个 Series 是否相等。如果两个 Series 具有相同的元素和形状,则返回 True,如果两个 Series 不相等,则返回 False。

示例 1

在下面的示例中,将两个 Series 对象 series1 和 series2 应用于 equals() 方法以比较相等性。

# importing pandas package
import pandas as pd
import numpy as np

# create pandas Series1
series1 = pd.Series([67, 18, np.nan, 50, 39])

print("First series object:",series1)

# create pandas Series2
series2 = pd.Series([67, 18, np.nan, 50, 39])
print("second series object:",series2)

result = series1.equals(series2)

print("Result:", result)

解释

由于 Series 对象完全相同,并且在两个 Series 对象的相同位置存在一个 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

这里两个 Series 对象完全相同,数据类型相同,equals() 方法返回 True 作为结果。此外,您可以看到,如果 NaN 出现在相同的位置,则它们被视为相等。

示例 2

在下面的示例中,通过应用 equals() 方法验证两个 Series 对象 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)

解释

这里的 Series 对象相似,但元素的数据类型不同。

输出

输出如下所示:

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。因为两个 Series 对象中元素的数据类型不同。

更新于: 2022年3月7日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告