pandas.core.groupby.DataFrameGroupBy.nunique#

DataFrameGroupBy.nunique(dropna=True)[源代码][源代码]#

返回包含每个位置中唯一元素计数的 DataFrame。

参数:
dropna布尔值, 默认为 True

不要在计数中包含 NaN。

返回:
nunique: DataFrame

每个位置中唯一元素的计数。

示例

>>> 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

检查具有相同id但值冲突的行:

>>> 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