如何解决一个 for 循环遍历数据帧并计数
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')
解决方法
In [395]: df
Out[395]:
id count
0 252 0
1 232 1
2 325 1
3 736 2
4 253 3
5 252 2
6 232 3
7 736 2
In [396]: df['return'] = None
In [397]: for c in df['count'].unique():
...: df['return'][df['count'] >= c] = df[df['count'] >= c]['id'].nunique()
...:
...:
In [398]: df
Out[398]:
id count return
0 252 0 5
1 232 1 5
2 325 1 5
3 736 2 4
4 253 3 2
5 252 2 4
6 232 3 2
7 736 2 4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。