iha*_*nny 3 python group-by pandas
与如何通过pandas中的两列计算唯一记录相同?,仅限每组.我试过了:
df = pd.DataFrame({'a': [1,1,1,2,2], 'b':[10,10,20,30,30], 'c':[5,7,7,11,17]})
df.groupby('a').groupby(['b', 'c']).ngroups
Run Code Online (Sandbox Code Playgroud)
它抛出AttributeError.
您不需要double groupby:使用drop_duplicateswith ['b', 'c']作为您的子集,仅保留唯一行,然后groupby 'a'并使用size:
df.drop_duplicates(['b', 'c']).groupby('a').size()
a
1 3
2 2
dtype: int64
Run Code Online (Sandbox Code Playgroud)