如何在pandas中按每组两列计算唯一记录?

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.

use*_*203 6

您不需要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)