У меня есть следующий фрейм данных, который я хочу сгруппировать по годам и вернуть максимальное значение (но сохраните значения индекса такими, какие они есть здесь):
import pandas as pd
dct = {
"date": ["2019-01-01", "2019-04-1", "2020-01-01"],
"high": [100, 150, 100],
}
df = pd.DataFrame(dct)
df.set_index("date",inplace=True)
df.index = [pd.Timestamp(i) for i in df.index]
df.index.name = "date"
# date high
# 2019-01-01 100
# 2019-04-01 150
# 2020-01-01 100
При использовании pandas groupby Im могу сгруппировать их по годам, но не получить нужную дату:
func = lambda x: x.year
df["high"].groupby(func).max()
# date high
# 2019 150
# 2020 100
Мой желаемый результат - использовать pandas groupby и получить:
# NOTE : the date index is like the original
# date high
# 2019-04-01 150
# 2020-01-01 100