##### `DataFrame.compare(other, align_axis=1, keep_shape=False, keep_equal=False, result_names=('self', 'other'))` **功能简介:** - 用于在两个 DataFrame 之间逐元素比较,并返回一个新的 DataFrame,显示元素之间的差异。 **参数说明:** - `other`:另一个要比较的 DataFrame。 - `align_axis`:可选,指定在比较中对齐的轴。可以是 `0`(默认,按行对齐)或 `1`(按列对齐)。 - `keep_shape`:可选,如果为 `True`,则保持输出 DataFrame 的形状与原始 DataFrame 相同,通过填充 NaN 来对齐。如果为 `False`(默认),则输出 DataFrame 会根据比较结果进行重新构造。 - `keep_equal`:可选,如果为 `True`,则相等的值也会在结果中显示。如果为 `False`(默认),则只显示不相等的值。 - `result_names`:可选,一个包含两个元素的元组,用于指定结果 DataFrame 中两个 DataFrame 的名称。默认为 `('self', 'other')`。 **返回值:** - 返回一个新的 DataFrame,其中显示了两个 DataFrame 之间逐元素的比较结果。 **用法示例:** ```python import pandas as pd # 创建两个示例 DataFrame 进行比较 df = pd.DataFrame( { "col1": ["a", "a", "b", "b", "a"], "col2": [1.0, 2.0, 3.0, np.nan, 5.0], "col3": [1.0, 2.0, 3.0, 4.0, 5.0] }, columns=["col1", "col2", "col3"], ) df2 = df.copy() df2.loc[0, 'col1'] = 'c' df2.loc[2, 'col3'] = 4.0 # 比较列上的差异 df.compare(df2) # 结果赋值 df.compare(df2, result_names=("left", "right")) # 将差异堆叠在行上 df.compare(df2, align_axis=0) # 同时显示相同的值 df.compare(df2, keep_equal=True) # 保留所有原始行和列 df.compare(df2, keep_shape=True) ```