Skip to main content
`Ctrl`+`K`

# pandas.api.typing.DataFrameGroupBy.nunique

DataFrameGroupBy.nunique(dropna=True)

  Return DataFrame with counts of unique elements in each position.

  This method counts the number of distinct values for each column within each group, optionally excluding NaN values.

  Parameters:
    dropna bool, default True

      Don’t include NaN in the counts.

  Returns:
    nunique: DataFrame

      Counts of unique elements in each position.

  See also

  `DataFrame.nunique`

    Count number of distinct elements in specified axis.

  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