Adicionando uma coluna nunique agregada e agrupada ao dataframe do pandas

Quero adicionar uma coluna agregada, agrupada e núnica ao meu quadro de dados do pandas, mas não agregar todo o quadro de dados. Estou tentando fazer isso em uma linha e evitar criar um novo objeto agregado e mesclar isso, etc.

meu df tem faixa, tipo e ID. Quero o número de IDs exclusivos para cada combinação de faixa / tipo como uma nova coluna na tabela (mas não reduza os combos de faixa / tipo no df resultante). Mesmo número de linhas, mais 1 coluna.

algo assim não está funcionando:

df['n_unique_id'] = df.groupby(['track', 'type'])['id'].nunique()

nem é

df['n_unique_id'] = df.groupby(['track', 'type'])['id'].transform(nunique)

este último funciona com algumas funções agregadoras, mas não com outras. o seguinte funciona (mas não faz sentido no meu conjunto de dados):

df['n_unique_id'] = df.groupby(['track', 'type'])['id'].transform(sum)

em R isso é feito facilmente em data.table com

df[, n_unique_id := uniqueN(id), by = c('track', 'type')]

obrigado!

questionAnswers(1)

yourAnswerToTheQuestion