下記表のような時系列温度データにつき、2000年、2001年・・・と、各年ごとの値の平均値を計算しています。

日付のstart-endが分かっている場合、

df['2000-01-04':'2000-12-27'].mean()
df['2001-01-05':'2001-12-28'].mean()

などと値を直指定すればいいと思うのですが、データを見ていちいち確認するのではなく、プログラム的にstart/endを判定したい場合、どのようにプログラムを組んだらいいのでしょうか?

df.min()を使えばとも思ったのですが、各年ではなくデータ全体の最小値を抽出してしまいます。

date(index) 気温
2000-01-04 -1℃
2000-01-05 0℃
・
・
2000-12-27 8℃
2001-01-05 2℃
2001-01-06 3℃
・
・
2001-12-28 -1℃