在某段时间内计算一年中某天的最大值

时间:2017-03-31 16:52:39

标签: python pandas

我有以下数据框

my_index = ['2005-03-20', '2008-03-20', '2014-03-20', '2007-08-15', '2012-08-15', '2007-12-31', '2011-12-31', '2013-12-31', '2014-12-31']
df = pd.DataFrame([42, 51, 36, 217, 228, -56, -50, -66, -32], index = my_index, columns = ['Temperature'])
df.index = pd.to_datetime(df.index)

看起来像这样:

            Temperature
2005-03-20           42
2008-03-20           51
2014-03-20           36
2007-08-15          217
2012-08-15          228
2007-12-31          -56
2011-12-31          -50
2013-12-31          -66
2014-12-31          -32

我想要的是计算2005-2014期间一年中的最大值期望的输出将是这一个:

       Temperature
03-20           51
08-15          228
12-31          -32

有什么想法吗? THX。

1 个答案:

答案 0 :(得分:3)

您可以使用strftime创建的groupby {/ 1}}:

Series

要过滤boolean indexingnumpy.in1d创建的print (df.groupby(df.index.strftime('%m-%d')).max()) Temperature 03-20 51 08-15 228 12-31 -32 ,因为year也会返回mask

numpy array