python - 按 3 列分组,每组只保留最小的 5 列

标签 python pandas

首先,抱歉我不是英语母语,但我希望你能理解我的问题;-)

我有一份 list ,其中包含与我合作的有线网络提供商的数据。

我已将这些信息按

分组
traffic.groupby(["HUB","FIBER_NODES","WEEK"])

这很好用,我正在获取每个 HUB-NODES-WEEK 组的所有信息。 但现在我想检查交通发展。为此,我想获得此数据框中前 5 周和后 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 的想法是正确的。问题是您在 groupby 中包含了 "WEEK"。删除它对我有用(在不同的数据上):

traffic.groupby(["HUB","FIBER_NODES"]).apply(lambda grp: grp.nlargest(5,"WEEK"))

(我也希望 nlargest 可以工作,但显然它还没有为 DataFrame groupbys 实现。:-/)

关于python - 按 3 列分组,每组只保留最小的 5 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58462811/

相关文章:

python - BeautifulSoup.findAll 不打印任何内容

python - 来自聚合结果的 Pandas DataFrame 分组箱线图

python - 从 Pandas 数据帧创建边缘列表

python - 对数据进行分组以完成彼此之间的记录

python - Kubernetes API 服务器

python - 如何在Python Scrapy中的子div中使用特殊的src获取href

python - 枚举 PySpark 中的连续相等值组

Python/Pandas - 在具有年份列名称的数据框中动态计算年度比率

组成 itemgetter 和 attrgetter 的 pythonic 方式?

python - Pyglet:火球射击游戏,每当我按下指定的键时,火球就会不断加速,而不是保持恒定速度