Вот способ для этого:
# Create sample data
life_exp = pd.DataFrame(data={'data': np.random.rand(100)},
index=pd.date_range(start='1/1/2000', periods=100, freq='MS'))
# Group the data by year and compute the min and max
df = life_exp.groupby(life_exp.index.year).min().rename(columns={'data': 'min'})
df['max'] = life_exp.groupby(life_exp.index.year).max().values
print(df)
Вывод:
min max
2000 0.008992 0.891971
2001 0.279533 0.995257
2002 0.015490 0.846069
2003 0.122584 0.981442
2004 0.027147 0.985625
2005 0.050786 0.906058
2006 0.036598 0.987301
2007 0.020434 0.988755
2008 0.405666 0.939106
Убедитесь, что ваш индекс является индексом даты и времени:
life_exp.Country = pd.to_datetime(life_exp.Country)
life_exp = life_exp.set_index('Country')