python - Dataframe groupby和count值满足条件
问题描述
这是我手头的数据框:
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
我想计算小于 5 的唯一值id
。length
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
推荐阅读
- openmdao - 如何选择合适的优化器?
- c# - 合并具有相同主键的行并计算新值的平均值
- php - 从 Wordpress 中的友好 URL 中删除页面名称
- php - 如何在 prestashop 上的 tpl 文件上调用类别封面图片。
- android - 在不修改视口的情况下将形状平移 x 个屏幕像素
- java - 如何在 Android 上的 RecyclerView 中对列表进行排序
- azure - 从 Github 为 Azure VM 加载自定义脚本扩展
- c# - 使用实体框架读取锁定的表
- java - 使用 maven 构建后 .properties 文件的路径
- sql - 根据列删除重复行,但只留下匹配重复的 1 行