首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按年份查找最大值并返回在Pandas DataFrame中出现最大值的日期

按年份查找最大值并返回在Pandas DataFrame中出现最大值的日期
EN

Stack Overflow用户
提问于 2020-11-17 04:42:07
回答 2查看 377关注 0票数 1

假设我有一个从2010年开始每天卖出的糖果数量。对于每一年(2010,2011,2012...2019),我如何才能找到我用熊猫卖出最多糖果的日期?

代码语言:javascript
运行
复制
date        Count
01/01/2010   525
01/02/2010   136
01/03/2010   125
01/04/2010   84
01/05/2010   446
...         
01/01/2011   301
01/02/2011   700
...
11/16/2019   807

我已经尝试过了,它给了我每年的最大值,但我想要每一年的日期和计数。

代码语言:javascript
运行
复制
df.groupby(lambda x: df['date'][x].year)["Count"].max()

date  Count
2010  825
2011  973
2012  900
2013  830
2014  879
2015  690
2016  827
2017  954
2018  1032
2019  968

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-17 04:47:12

将代码更改修复为idxmax

代码语言:javascript
运行
复制
idx = df.groupby(lambda x: df['date'][x].year)["Count"].idxmax()

out = df.loc[idx]
票数 1
EN

Stack Overflow用户

发布于 2020-11-17 04:48:59

假设您的date列由pandas时间戳组成,您可以使用dt日期访问器方法来访问year属性,以根据该属性对年度和进行分组:

代码语言:javascript
运行
复制
gb = df.groupby(df['date'].dt.year)['Count'].sum()
max_year = gb.idxmax()
max_annual_sales = gb.loc[max_year]

如果没有,请先通过df['date'] = pd.to_datetime(df['date'])转换它们。

然后使用idxmax方法得到包含最大年计数的年份索引。最后,使用今年通过gb.loc[max_year] (或直接使用gb.max())找到最大值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64865421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档