如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

2024-05-23

当对 Pandas groupby 操作的结果执行过滤时,它返回一个数据帧。但假设我想执行进一步的分组计算,我必须再次调用 groupby,这似乎有点绕。有更惯用的方法吗?

EDIT:

为了说明我在说什么:

我们无耻地从 Pandas 文档中窃取了一个玩具数据框,并分组:

>>> dff = pd.DataFrame({'A': np.arange(8), 'B': list('aabbbbcc')})
>>> grouped = dff.groupby('B')
>>> type(grouped)
<class 'pandas.core.groupby.DataFrameGroupBy'>

这会返回一个 groupby 对象,我们可以在该对象上进行迭代、执行分组操作等。但是如果我们过滤:

>>> filtered = grouped.filter(lambda x: len(x) > 2)
>>> type(filtered)
<class 'pandas.core.frame.DataFrame'>

我们得到一个数据框。是否有一种很好的惯用方法来获取过滤后的组,而不仅仅是属于过滤后组的原始行?


如果您想组合过滤器和聚合,我能想到的最好方法是使用三元组合过滤器和聚合if inside apply,返回None对于过滤后的组,然后dropna从最终结果中删除这些行:

grouped.apply(lambda x: x.sum() if len(x) > 2 else None).dropna()

如果您想迭代各个组,例如将它们重新组合在一起,您可以使用生成器理解

pd.concat(g for i,g in grouped if len(g)>2)

最终我认为如果groupby.filter可以选择返回 groupby 对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象? 的相关文章

随机推荐

  • org/codehaus/plexus/archiver/jar/JarArchiver(不支持的major.minor版本49.0)-Maven构建错误

    下午大家 我在尝试构建项目时收到上述错误 我很确定这与使用 Java 1 6 编译的 Maven 最新更新有关 而我们尝试构建的项目是 1 4 项目 在此之前的插件工作没有问题 因此我将以下内容添加到 POM xml 文件中以尝试强制使用现
  • 如何处理数字逻辑模拟器中的循环?

    我正在开发一个数字逻辑模拟器 以便稍后在其中构建我自己的 CPU 所以这是一个长期项目 对于没有循环的电路 例如全加器 一切都非常有效 还有像 SR 锁存器这样的电路 其中一个门的输入连接到另一个门的输出 所以我陷入了循环 因为两个门都需要
  • 从直方图计算平均值和百分位数?

    我编写了一个计时器 可以测量任何多线程应用程序中特定代码的性能 在下面的计时器中 它还会在地图中填充花费了 x 毫秒的调用次数 我将使用这张图作为我的直方图的一部分来进行进一步的分析 例如调用花费了这么多毫秒的百分比等等 public st
  • Scala:var List 与 val MutableList

    在 Odersky 等人的 Scala 书中 他们说使用列表 我还没有从头到尾读过这本书 但所有的例子似乎都使用了 val List 据我了解 还鼓励人们使用 vals 而不是 vars 但在大多数应用程序中 使用 var List 或 v
  • 在express js中禁用http方法

    我正在我的 Express 应用程序上进行 nessus 测试 这是我得到的 基于每种方法的测试 HTTP 方法 ACL CHECKOUT COPY DELETE GET HEAD LOCK MERGE MKACTIVITY MKCOL 移
  • SVG线宽问题

    我开始了我的svg学习 我想用svg线做一些技巧吧 但有件事我不明白 我为每个技能创建 2 行 一行是空的 另一行是知识百分比 问题是 前两行的高度是我给出的笔画宽度的一半 其他线都有很好的高度 这是一个 jsbin http jsbin
  • 为什么 str.substr(0,4) 不是函数?

    我正在用 jQuery 制作一个脚本 我得到了以下数字7 2387 我所拥有的只是得到7 23 为此我编写了以下代码 var str 7 2387 var shorter str substr 0 4 但我收到这个错误 all js 55
  • COBOL 程序中出现重叠错误

    科博程序 PROGRAM ID SCHPROG ENVIRONMENT DIVISION INPUT OUTPUT SECTION FILE CONTROL SELECT MYFILE ASSIGN TO INDD ORGANIZATION
  • R:igraph、社区检测、edge. Betweenness 方法、统计/列出每个社区的成员?

    我有一个相对较大的图表 其中顶点 524 边 1125 是现实世界的交易 边是有向的并且具有权重 包含是可选的 我正在尝试调查图中的各个社区 并且本质上需要一种方法 计算所有可能的社区 计算最佳社区数量 返回每个 最佳 社区的成员 成员数量
  • Ruby 中的方法和属性有什么区别?

    你可以给我一个例子吗 属性只是一个捷径 如果你使用attr accessor要创建属性 Ruby 只需声明一个实例变量并为您创建 getter 和 setter 方法 既然你要求一个例子 class Thing attr accessor
  • 机器人探索算法

    我正在尝试为机器人设计一种算法 试图找到位于未知位置的旗帜 该旗帜位于一个包含障碍物的世界中 机器人的任务是夺取旗帜并将其带到他的基地 代表他的起始位置 机器人在每一步只能看到有限的邻域 他事先不知道世界是什么样子 但他有无限的内存来存储已
  • C# SmtpClient编程中如何设置带有中文的附件文件名?

    我的代码如下 ContentType ct new ContentType ct MediaType MediaTypeNames Application Octet ct Name 这是一个很长的中文文件名希望能用它在附件名中 Doc A
  • 只保留 A-Z 0-9 并使用 javascript 从字符串中删除其他字符

    我正在尝试验证字符串以使它们成为有效的网址 我只需要保留 A Z 0 9 并使用以下命令从字符串中删除其他字符javascript or jquery 例如 贝儿餐厅 我需要将其转换为 百丽餐厅 所以字符被删除 只保留 A Z a z 0
  • 格式说明符%02x

    我有一个简单的程序 include
  • 什么可能导致 Firefox 中出现此 HTML/CSS 渲染问题?

    款式 h2 color 71D0FF font size 11px font weight bold margin 0px 0px 5px 0px a box color FFFFFF important cursor pointer di
  • 如何防止输入文本中出现“后重音”

    我相信这是一个简单的问题 但在谷歌上搜索几个小时后我找不到任何答案 也许我无法在搜索中使用正确的单词 P 我有一个 javascript 方法 可以防止用户用数字以外的其他字符填充文本框 如下面的代码所示 它在 KeyDown 事件中使用
  • 对使用“new”创建的数组上“map”的行为感到困惑[重复]

    这个问题在这里已经有答案了 我对结果感到困惑mapping 使用创建的数组new function returnsFourteen return 14 var a new Array 4 gt undefined x 4 in Chrome
  • 如何在 Visual Studio 2013 中使用 Git 的外部 diff 工具?

    我找到了这个帖子 http architects dzone com articles how configure diff and merge这解释了如何让 Visual Studio 2013 在比较 Git 中的文件时使用内置 dif
  • 如何在 Makefile 中获取 make 命令的 pid?

    我想使用此构建特有的临时目录 如何在 Makefile 中获取 make 命令的 pid I tried TEMPDIR tmp myprog 但这似乎存储TEMPDIR as tmp myprog 然后将 eval 作为每个引用此命令的新
  • 如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

    当对 Pandas groupby 操作的结果执行过滤时 它返回一个数据帧 但假设我想执行进一步的分组计算 我必须再次调用 groupby 这似乎有点绕 有更惯用的方法吗 EDIT 为了说明我在说什么 我们无耻地从 Pandas 文档中窃取