![](/img/trans.png)
[英]How to keep the best row in a pandas dataframe satisfying multiple conditions with groupby
[英]Dataframe groupby and count value satisfying conditions
这是我手头的数据框:
df = pd.DataFrame({
'id': [1,1,1,2,2,3,3],
'length': [20, 20, 20, 4, 4, 15,15],
'speed': [17.2,16.5,18, 2.3,2.1,10,9.8]
})
df
id length speed
0 1 20 17.2
1 1 20 16.5
2 1 20 18.0
3 2 4 2.3
4 2 4 2.1
5 3 15 10.0
6 3 15 9.8
我想计算length
小于 5 的唯一id
。
df[df['length']<5].groupby('id')['length'].value_counts()
id length
2 4 2
Name: length, dtype: int64
如何简单地获得长度低于 5 的总 ID? 就像是:
df[where df.length<5]
1
只需在过滤器后使用nunique
:
df[df.length < 5].id.nunique()
# 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.