python - 当熊猫的最大值达到阈值(或多或少)时保留组
问题描述
我有一个数据框,例如:
Group Col
Grp1 5
Grp1 1
Grp1 1
Grp1 2
Grp1 3
Grp1 3
Grp1 4
Grp2 1
Grp2 1
Grp2 1
Grp3 1
Grp3 2
Grp3 3
Grp4 1
Grp4 3
Grp4 1
Grp4 2
Grp5 3
Grp6 3
这里的想法是只保留最高值在 3 到 4 之间的组,或多或少地得到:
Group Col
Grp3 1
Grp3 2
Grp3 3
Grp4 1
Grp4 3
Grp4 1
Grp4 2
Grp5 3
Grp6 4
Grp1 被删除,因为它的5
最大值2
=3 or 4.
解决方案
与inGroupBy.transform
过滤一起使用:Series.between
boolean indexing
df1 = df[df.groupby('Group')['Col'].transform('max').between(3,4)]
或者Series.isin
如果只想过滤最大值3
或4
组,请使用:
df1 = df[df.groupby('Group')['Col'].transform('max').isin(3,4)]
print (df1)
Group Col
10 Grp3 1
11 Grp3 2
12 Grp3 3
13 Grp4 1
14 Grp4 3
15 Grp4 1
16 Grp4 2
17 Grp5 3
18 Grp6 3
推荐阅读
- click - 如何制作一个点击特定窗口中特定点并且在后台运行的 ahk 项目?
- javascript - 在每个引导列之间添加一个空格
- go - 在一个案例中有多个选项,然后在案例中进行一个循环
- flutter - 使用 Search Delegate (Flutter) 时如何在 buildResult 方法中调用 this.close?
- python - 正则表达式在多行文本中查找包含句子的段落
- sql - PostgreSQL创建触发器:插入操作的语法错误
- mysql - mysql 中的 if 语句触发
- javascript - 从vuex路由到错误页面后如何停止代码执行?
- sql-server-2008 - 尝试提交一段时间以生成数据时,关键字“设置”附近的错误
- python - 关于何时应该在函数中使用全局变量的经验法则