假设我有一个从2010年开始每天卖出的糖果数量。对于每一年(2010,2011,2012...2019),我如何才能找到我用熊猫卖出最多糖果的日期?
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
我已经尝试过了,它给了我每年的最大值,但我想要每一年的日期和计数。
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
谢谢你的帮助!
发布于 2020-11-17 04:47:12
将代码更改修复为idxmax
idx = df.groupby(lambda x: df['date'][x].year)["Count"].idxmax()
out = df.loc[idx]
发布于 2020-11-17 04:48:59
假设您的date
列由pandas时间戳组成,您可以使用dt
日期访问器方法来访问year
属性,以根据该属性对年度和进行分组:
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()
)找到最大值。
https://stackoverflow.com/questions/64865421
复制相似问题