python - python:提取列值大于3的行
问题描述
有一个数据框如下:
id year number
1 2016 3
1 2017 5
2 2016 1
2 2017 5
...
我想提取 groupby id 和 number 列的值在 2016 年和 2017 年都超过 3 的行。
例如在上面的前 4 行中,结果是:
id year number
1 2016 3
1 2017 5
谢谢!
解决方案
>>> great_in_both_years = df.groupby("id").apply(lambda x: (x["number"] >= 3).all())
>>> great_in_both_years
id
1 True
2 False
dtype: bool
>>> df.loc[lambda x: x["id"].map(great_in_both_years)]
id year number
0 1 2016 3
1 1 2017 5
推荐阅读
- laravel - 来自 GuzzleHttp 的 API 服务器阻止请求
- r - R - 过滤表以返回仅包含所有列中的所有搜索词的行
- excel-formula - 如何在excel中计算延迟收入
- opengl - 是否可以创建立方体贴图渲染缓冲区?
- ios - 如何在另一个视图中访问 ForEach 循环之外的索引?
- opencl - 相当于 OpenCL 中的 cudaSetDevice?
- ios - 带有 iOS 14 的 AppsFlyer
- python - 使用 pyodbc 更新 SQL Server
- javascript - 使用 Vue 显示表单的问题
- javascript - 如何在javascript中更改数组元素并获取新数组