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.

  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