我想在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')
(这显然不起作用)
可以通过将唯一的汇总数据框与原始数据框连接来实现所需的结果,但我想知道是否有更简单的解决方案。
谢谢