pandas找到返回的答案的相应行值

时间:2013-06-26 18:52:23

标签: python pandas

对于以下数据框,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

1 个答案:

答案 0 :(得分:4)

使用.idxmax()代替.max

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

参数

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

返回

idxmax:系列

备注

此方法是ndarray.argmax的DataFrame版本。

另见

Series.idxmax

In [19]: data.groupby(['date'])['sales'].sum().idxmax()
Out[19]: '31-May-13'