我有一个与此类似的数据帧:
id count
252 0
232 1
325 1
736 2
253 3
252 2
232 3
736 2
我正在尝试获取大于范围(0,3)的“唯一id数”
df[(df['count'] >= 0)].id.nunique()
df[(df['count'] >= 1)].id.nunique()
df[(df['count'] >= 2)].id.nunique()
df[(df['count'] >= 3)].id.nunique()
The returned columns shouuld be:
id count return
252 0 6 the number of unique id that is larger than 0
232 1 5 the number of unique id that is larger than 1
325 1 5
736 2 3
253 3 1
252 0 6
232 1 5
736 2 3
我之所以使用排名是因为我的数据集很大。然而,排名不是从零开始计算的。有没有更简单的方法可以从零开始排名
还有,还有其他方法可以提高代码的效率和运行速度吗
df['return'] = df.groupby('count').id.transform('nunique').rank(asending= True, method = 'max')
相关问题 更多 >
编程相关推荐