python - Groupby 3列,每组只保留最小的5列
问题描述
首先,对不起,我不是英语本地人,但我希望你能理解我的问题;-)
我有一份来自与我合作的有线电视网络提供商的数据列表。
我已将这些信息分组
traffic.groupby(["HUB","FIBER_NODES","WEEK"])
这很好用,我正在获取每个 HUB-NODES-WEEK 组的所有信息。但现在我想检查交通发展。为此,我想获得此数据框中第一周和最后 5 周的平均值之间的差异。
为此,我不想将日历周保留在 1 到 38 之间。我只想保留 1 到 5 或 34 到 38。
我试过了:
traffic.groupby(["HUB","FIBER_NODES","WEEK"]).nlargest(5)
错误:AttributeError:无法访问“DataFrameGroupBy”对象的可调用属性“nlargest”,请尝试使用“apply”方法
下次尝试:
traffic.groupby(["HUB","FIBER_NODES","WEEK"]).apply(lambda grp: grp.nlargest(5,"WEEK"))
这没有用,我仍然有从 1 到 38 的所有时间。
有人知道我接下来可以尝试什么吗?;-)
非常感谢
马可
解决方案
我认为评论中的@jon-clements 有正确的想法。问题是您包含"WEEK"
在 groupby 中。删除它对我有用(在不同的数据上):
traffic.groupby(["HUB","FIBER_NODES"]).apply(lambda grp: grp.nlargest(5,"WEEK"))
(我也希望nlargest
能工作,但显然它还没有为 DataFrame groupbys 实现。:-/)
推荐阅读
- oracle - Oracle PLSQL 类型与内置函数命名相同
- angular - Angular - 如何在模板文件中添加或使用搜索过滤器管道
- html - 如何在 flexbox 中修复图像,忽略容器高度?
- python - .append() 方法在我定义的函数中不起作用
- python - 无法创建 Dataproc 集群
- php - Authorize.net 新生成的密钥在 woo commerce authorize.net 支付网关中不起作用
- html - 与 HTML/CSS 重叠颜色
- php - Google Sheets API:如果一行中有空白单元格,它将返回一个完全空的行
- javascript - 如何在 React Material Autocomplete 中实现无限滚动?
- java - 有没有办法在 Java 中自动进行强制转换?