Skip to main content
`Ctrl`+`K`

# pandas.core.groupby.DataFrameGroupBy.nunique

DataFrameGroupBy.nunique(dropna=True)

  Return DataFrame with counts of unique elements in each position.

  Parameters:
    dropnabool, default True

      Don’t include NaN in the counts.

  Returns:
    nunique: DataFrame

  Examples

      >>> df = pd.DataFrame({'id': ['spam', 'egg', 'egg', 'spam',
      ...                           'ham', 'ham'],
      ...                    'value1': [1, 5, 5, 2, 5, 5],
      ...                    'value2': list('abbaxy')})
      >>> df
           id  value1 value2
      0  spam       1      a
      1   egg       5      b
      2   egg       5      b
      3  spam       2      a
      4   ham       5      x
      5   ham       5      y

      >>> df.groupby('id').nunique()
            value1  value2
      id
      egg        1       1
      ham        1       2
      spam       2       1

  Check for rows with the same id but conflicting values:

      >>> df.groupby('id').filter(lambda g: (g.nunique() > 1).any())
           id  value1 value2
      0  spam       1      a
      3  spam       2      a
      4   ham       5      x
      5   ham       5      y