pandas.DataFrame.equals#

DataFrame.equals(other)[源代码]#

测试两个对象是否包含相同元素。

此函数允许两个 Series 或 DataFrame 进行相互比较,以检查它们是否具有相同的形状和元素。相同位置的 NaN 被视为相等。

行/列索引不需要具有相同的类型,只要值被认为是相等的。相应的列和索引必须是相同的 dtype。

参数:
otherSeries 或 DataFrame

第一个要与之比较的另一个 Series 或 DataFrame。

返回:
bool

如果两个对象中的所有元素都相同,则返回 True,否则返回 False。

另请参阅

Series.eq

比较两个长度相同的 Series 对象,并返回一个 Series,其中每个元素在每个 Series 中相等时为 True,否则为 False。

DataFrame.eq

比较两个形状相同的 DataFrame 对象,并返回一个 DataFrame,其中每个元素在每个 DataFrame 中相对应时为 True,否则为 False。

testing.assert_series_equal

如果 left 和 right 不相等,则引发 AssertionError。提供了忽略 dtype、索引和精度等差异的简单接口。

testing.assert_frame_equal

类似于 assert_series_equal,但针对 DataFrame。

numpy.array_equal

如果两个数组具有相同的形状和元素,则返回 True,否则返回 False。

示例

>>> df = pd.DataFrame({1: [10], 2: [20]})
>>> df
    1   2
0  10  20

DataFrame df 和 exactly_equal 的元素和列标签具有相同的类型和值,这将返回 True。

>>> exactly_equal = pd.DataFrame({1: [10], 2: [20]})
>>> exactly_equal
    1   2
0  10  20
>>> df.equals(exactly_equal)
True

DataFrame df 和 different_column_type 具有相同的元素类型和值,但列标签的类型不同,这将仍然返回 True。

>>> different_column_type = pd.DataFrame({1.0: [10], 2.0: [20]})
>>> different_column_type
   1.0  2.0
0   10   20
>>> df.equals(different_column_type)
True

DataFrame df 和 different_data_type 的相同值的元素的类型不同,即使它们的列标签是相同的值和类型,也将返回 False。

>>> different_data_type = pd.DataFrame({1: [10.0], 2: [20.0]})
>>> different_data_type
      1     2
0  10.0  20.0
>>> df.equals(different_data_type)
False

位于相同位置的 NaN 的 DataFrame 比较相等。

>>> df_nan1 = pd.DataFrame({"a": [1, np.nan], "b": [3, np.nan]})
>>> df_nan2 = pd.DataFrame({"a": [1, np.nan], "b": [3, np.nan]})
>>> df_nan1.equals(df_nan2)
True

如果 NaN 值不在相同位置,它们将比较不相等。

>>> df_nan3 = pd.DataFrame({"a": [1, np.nan], "b": [3, 4]})
>>> df_nan1.equals(df_nan3)
False