当前位置: 首页 > 面试题库 >

Python Pandas-在groupby之后过滤行

束阳旭
2023-03-14
问题内容

例如,我有下表:

index,A,B
0,0,0
1,0,8
2,0,8
3,1,0
4,1,5

分组后A

0:
index,A,B
0,0,0
1,0,8
2,0,8

1:
index,A,B
3,1,5
4,1,3

我需要的是删除每个组中的行,其中列中的数量B小于组中column的所有行中的最大值B。好吧,我在将这个问题翻译和表达为英语时遇到了问题,因此这里是示例:

B组中列中的行的最大值08

所以我想删除带有索引的行,0并保留带有索引的行12

B组中列中的行的最大值15

所以我想删除带有索引的4行并保留带有索引的行3

我尝试使用熊猫过滤器功能,但是问题是它一次在组中的所有行上运行:

data = <example table>
grouped = data.groupby("A")
filtered = grouped.filter(lambda x: x["B"] == x["B"].max())

因此,理想情况下,我需要一个过滤器,该过滤器会遍历组中的所有行。

感谢帮助!

PS还有没有办法只删除组中的行而不返回DataFrame对象?


问题答案:

您只需要applygroupby对象上使用。我修改了示例数据,使其更加清晰:

import pandas
from io import StringIO

csv = StringIO("""index,A,B
0,1,0.0
1,1,3.0
2,1,6.0
3,2,0.0
4,2,5.0
5,2,7.0""")

df = pandas.read_csv(csv, index_col='index')
groups = df.groupby(by=['A'])
print(groups.apply(lambda g: g[g['B'] == g['B'].max()]))

哪些打印:

         A  B
A index      
1 2      1  6
2 4      2  7


 类似资料:
  • 问题内容: 您如何先分组然后使用Java流应用过滤? 示例 :考虑此类:我想按部门分组,列出薪水大于2000的雇员。 这就是我可以做到的 输出量 由于B部门中没有雇员的薪水高于2000。因此B部门没有密钥: 但是实际上,我想使用空列表作为密钥– 预期产量 我们应该怎么做? 问题答案: nullpointer的答案显示了直接的方法。如果您不能更新到Java 9,没问题,那么这个收集器就没有魔力。这是

  • 问题内容: 如何在$ lookup之后添加过滤器,或者有其他方法可以执行此操作? 我的数据收集测试是: 我选择ID 100并汇总孩子: 我回来了: 但我只希望与“值:1”匹配的子项 最后,我希望得到以下结果: 问题答案: 这里的问题实际上是关于一些不同的东西,根本不需要。但是,对于仅从“$lookup之后过滤”标题到达此处的任何人,这些都是适合您的技术: MongoDB 3.6-子管道 较早-$

  • 我将在一个已经存在的网站中介绍Spring Web Security。现在出现了一个问题: 我希望我的自定义筛选器在Spring Security筛选器链之前在Tomcat筛选器链中执行。我不想让他们成为这个Spring安全过滤器链的一部分。 我所找到的只是Spring Boot中的一个解决方案(请参见“Spring-How to insert a filter before SpringSecu

  • 2)在控制器中执行groupby,然后在map中运行由外部库提供的非并行kmeans。 请告诉我还有别的办法,我宁愿尽可能的拥有一切。

  • 当我使用或方法时,我得到了错误的结果。 例如: 在另一种方法中,我只得到结果1 我得到了正确的结果。 当使用方法时,我得到了错误的结果。 https://github.com/laravel/framework/issues/14123 忘了说,我的laravel版本信息: 项目中的实际问题 我有一张充电记录表。 1.pay日志表 1.1支付日志talbe数据 2.说明 在pay_log表中,1和

  • 主要内容:1.概述,2.ClassLoaderFilter1.概述 在 ProtocolFilterWrapper 中,在服务引用和暴露时,#buildInvokerChain(invoker, key, group) 方法中,基于 Dubbo SPI Active 机制,加载匹配对应的过滤器数组,创建带有过滤器链的 Invoker 对象。代码如下: 2.ClassLoaderFilter 实现 Filter 接口,类加载器切换过滤器实现类。代码如下: