1

对于以下数据框,print data.groupby(['date'])['sales'].sum().max()将仅返回给定日期内总销售额的最大值。如何找出最大销售额发生的日期。

   date      brand   price    quantity      sales   vat
31-May-13   Reebok      10      23          230     3.5
31-May-13   Adidas      10      25          250     2.8
31-May-13   Campus      8       21          168     3.5
31-May-13   Nike        10      20          200     6.5
31-May-13   Woods       2       7           14      2.8
01-Jun-13   Reebok      4       27          108     2.2
01-Jun-13   Adidas      7       28          196     3.8
01-Jun-13   Campus      7       41          287     4.2
01-Jun-13   Nike        2       39          78      7.2
01-Jun-13   Woods       5       26          130     3.3
02-Jun-13   Reebok      10      5           50      2.2
02-Jun-13   Adidas      10      15          150     3.8
02-Jun-13   Campus      6       32          192     4.2
02-Jun-13   Nike        7       13          91      7.2
02-Jun-13   Woods       6       30          180     3.3
4

1 回答 1

4

使用.idxmax()代替.max

定义:df.idxmax(self,axis=0,skipna=True) 文档字符串:返回请求轴上第一次出现最大值的索引。NA/空值被排除在外。

参数

axis : {0, 1} 0 表示按行,1 表示按列 skipna :布尔值,默认 True 排除 NA/null 值。如果整个行/列是 NA,则结果将是第一个索引。

退货

idxmax : 系列

笔记

该方法是 DataFrame 版本的ndarray.argmax.

也可以看看

系列.idxmax

In [19]: data.groupby(['date'])['sales'].sum().idxmax()
Out[19]: '31-May-13'
于 2013-06-26T18:56:22.790 回答