pandas.core.groupby.DataFrameGroupBy.nunique — pandas 2.2.3 documentation (original) (raw)

DataFrameGroupBy.nunique(dropna=True)[source]#

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