>>> import pandas as pd
>>> df = pd.DataFrame({'ID':[51,51,51,24,24,24,31], 'x':[0,1,0,0,1,1,0]})
>>> df
ID x
51 0
51 1
51 0
24 0
24 1
24 1
31 0
对于每个’ID’,’x’的值被记录多次,它是0或1.我想从df中选择那些包含’ID’的行,其中’x’至少为1的两倍.
对于每个’ID’,我设法计算’x’为1的次数
>>> df.groupby('ID')['x'].sum()
ID
51 1
24 2
31 0
但我不知道如何从这里开始.我想要以下输出:
ID x
24 0
24 1
24 1
解决方法:
使用groupby和filter
df.groupby('ID').filter(lambda s: s.x.sum()>=2)
输出:
ID x
3 24 0
4 24 1
5 24 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。