Skip to main content
`Ctrl`+`K`

# pandas.Series.compare

Series.compare(other, align_axis=1, keep_shape=False, keep_equal=False, result_names=('self', 'other'))

  Compare to another Series and show the differences.

  This method aligns two Series and highlights only the values that differ between them. Equal values are shown as NaN by default.

  Parameters:
    other Series

      Object to compare with.

    align_axis{0 or ‘index’, 1 or ‘columns’}, default 1

      Determine which axis to align the comparison on.

      - 0, or ‘index’ : Resulting differences are stacked vertically with rows drawn alternately from self and other.

      - 1, or ‘columns’ : Resulting differences are aligned horizontally with columns drawn alternately from self and other.

    keep_shape bool, default False

      If true, all rows and columns are kept. Otherwise, only the ones with different values are kept.

    keep_equal bool, default False

      If true, the result keeps values that are equal. Otherwise, equal values are shown as NaNs.

    result_names tuple, default (‘self’, ‘other’)

      Set the dataframes names in the comparison.

  Returns:
    Series or DataFrame

      If axis is 0 or ‘index’ the result will be a Series. The resulting index will be a MultiIndex with ‘self’ and ‘other’ stacked alternately at the inner level.

      If axis is 1 or ‘columns’ the result will be a DataFrame. It will have two columns namely ‘self’ and ‘other’.

  See also

  `DataFrame.compare`

    Compare with another DataFrame and show differences.

  Notes

  Matching NaNs will not appear as a difference.

  Examples

      >>> s1 = pd.Series(["a", "b", "c", "d", "e"])
      >>> s2 = pd.Series(["a", "a", "c", "b", "e"])

  Align the differences on columns

      >>> s1.compare(s2)
        self other
      1    b     a
      3    d     b

  Stack the differences on indices

      >>> s1.compare(s2, align_axis=0)
      1  self     b
         other    a
      3  self     d
         other    b
      dtype: str

  Keep all original rows

      >>> s1.compare(s2, keep_shape=True)
        self other
      0  NaN   NaN
      1    b     a
      2  NaN   NaN
      3    d     b
      4  NaN   NaN

  Keep all original rows and also all original values

      >>> s1.compare(s2, keep_shape=True, keep_equal=True)
        self other
      0    a     a
      1    b     a
      2    c     c
      3    d     b
      4    e     e