首先创建DatetimeIndex:#if necessary
#df = df.set_index('Date')
#df['Date'] = pd.to_datetime(df['Date'])
print (df)
Store1 Store2 Store3 Store4
Date
2018-06-01 2643 1642 2678 3050
2018-07-16 6442 5413 5784 7684
2018-08-10 4587 5743 3948 6124
2018-08-12 3547 8743 7462 8315
print (df.index)
DatetimeIndex(['2018-06-01', '2018-07-16', '2018-08-10', '2018-08-12'],
dtype='datetime64[ns]', name='Date', freq=None)
然后按^{}转换为月份:
^{pr2}$
按最后一个值筛选,sum和最后一个按最大值^{}获取列名:print (df1.loc[df1.index[-1]].sum())
Store1 8134
Store2 14486
Store3 11410
Store4 14439
dtype: int64
out = df1.loc[df1.index[-1]].sum().idxmax()
print (out)
Store2
谢谢你,@Jon Clements提供了另一个解决方案:out = df.last('M').resample('M').sum().T.idxmax()
#if need scalar output
out = df.last('M').resample('M').sum().iloc[0].idxmax()