Groupby nunique与独特的分类数据

jpp*_*jpp 5 python count dataframe pandas pandas-groupby

我有一个数据帧,并执行groupbyunique通过掩模滤波之后.我的石斑鱼系列是绝对的.我使用的是Python 3.6.0/Pandas 0.19.2.

df1 = pd.DataFrame({'sku': ['A0', 'A0', 'A2', 'A2', 'A3', 'A3'],
                    'ID': ['10', 'T1', 'T1', 'T2', '10', '20']})

df1['sku'] = df1['sku'].astype('category')
res = df1[df1['ID'].str[0] == 'T'].groupby('sku')['ID'].unique()

sku
A0        [T1]
A2    [T1, T2]
A3          []
Name: ID, dtype: object
Run Code Online (Sandbox Code Playgroud)

这按预期工作.现在,nunique我希望[1, 2, 0].

但相反,我看到[1, 1, 0]:

res = df1[df1['ID'].str[0] == 'T'].groupby('sku')['ID'].nunique()

sku
A0    1
A2    1
A3    0
Name: ID, dtype: int64
Run Code Online (Sandbox Code Playgroud)

如果我省略转换为分类,结果如预期:

res = df1[df1['ID'].str[0] == 'T'].groupby('sku')['ID'].nunique()

sku
A0    1
A2    2
Name: ID, dtype: int64
Run Code Online (Sandbox Code Playgroud)

为什么结果会有所不同,取决于石斑鱼是否属于分类?