Я хотел бы посчитать уникальные наблюдения группы в кадре данных pandas и создать новый столбец с уникальным количеством. Важно отметить, что я не хотел бы сокращать строки в кадре данных; эффективно выполнять нечто похожее на оконную функцию в SQL.
df = pd.DataFrame({
'uID': ['James', 'Henry', 'Abe', 'James', 'Henry', 'Brian', 'Claude', 'James'],
'mID': ['A', 'B', 'A', 'B', 'A', 'A', 'A', 'C']
})
df.groupby('mID')['uID'].nunique()
Получит уникальный счетчик на группу, но он суммирует (уменьшает количество строк), я бы хотел сделать что-то вроде:
df['ncount'] = df.groupby('mID')['uID'].transform('nunique')
(это, очевидно, не работает)
Можно достичь желаемого результата, взяв уникальный обобщенный кадр данных и присоединив его к исходному кадру данных, но мне интересно, есть ли более минимальное решение.
Спасибо