pandas - 聚合后的熊猫过滤器
问题描述
是否可以在 groupby 聚合后过滤数据?
我在应用 groupby 函数后聚合了总和,并希望查看总和在某些值之间的行。
这是一个基本代码
A = pd.DataFrame([
[1, 2],
[2, 3],
[1, 6],
[2, 7],
[3, 5],
[2, 9],
[4, 7],
[3, 5],
[3, 9],
[3, 4]
], columns=['id', 'val'])
display(A)
display(A.groupby(['id']).agg({'val': ['sum', 'count']}))
聚合后我想要1count
到4 之间val
解决方案
我不明白你是想要 1 到 4 之间的总和还是计数。所以这就是我如何为这两个选项做的:
import pandas as pd
A = pd.DataFrame([
[1, 2],
[2, 3],
[1, 6],
[2, 7],
[3, 5],
[2, 9],
[4, 7],
[3, 5],
[3, 9],
[3, 4],
[1,2],
[1,2],
[1,2],
[1,2],
[1,2],
], columns=['id', 'val'])
s = A.groupby(['id']).agg({'val': ['sum', 'count']})
# If you want the count
s[(s['val']['count']<=4) & (s['val']['count']>=1)]
# If you want the sum
s[(s['val']['sum']<=4) & (s['sum']['count']>=1)]
推荐阅读
- javascript - jQuery / 如何使用类 XY 定义下一个元素并使用单击功能将其显示更改为“true”?
- swift - 使用 Cocoapods 安装 Firebase 时的 ARC 语义问题
- google-chrome-extension - 我的 Chrome 扩展程序如何监听 Gmail 中打开的撰写窗口?
- angular - 角度中的@observable 前缀
- python - 显示来自相关表的数据 (Django)
- python - 我不想单击输入字段来输入数据。可以这样做吗?
- xml - Xpath:紧跟在元素之后的第一个字母/字符串
- html - BootstrapVue - 未定义属性或方法“数据”......使用范围插槽时
- javascript - 如何根据同一 WordPress 页面上的标题类名称更改 2 个表格行背景颜色
- java - 如何在java中表示这个数学函数